«

»

Lug 19

Stampa Articolo

Leonardo master ADC i2C joystick switch

Leonardo master ADC i2C joystick switch segue l’articolo di Lunedì in cui hai letto come programmare un Attiny85 per leggere i suoi due ingressi analogici e l’ingresso digitale 1 e trasferire le informazioni in IIC

Attiny85 slave ADC i2C joystick switch schema

lo schema dei collegamenti lo trovi qui su e non è cambiato rispetto a quanto già realizzato per la parte slave della Leonardo master ADC i2C joystick switch.

Nota che sullo schema i collegamenti positivo e negativo sono stati portati dal basso all’alto della breadboard perchè l’attiny85 riceve alimentazione positiva dal pin 8 e negativa dal pin 4.

Lo schema deve tenere in considerazione la posizione dei pin SDA ed SCL sui pin D2 e D3 della scheda leonardo, in contrapposizione con l’arduino uno che presenta tali funzioni sui pin A4 ed A5:

SDA SCL arduino boards

Lo sketch Leonardo master ADC i2C joystick switch

Lo sketch che puoi utilizzare come test del Leonardo master ADC i2C joystick switch è simile a quello già analizzato in altri articoli dedicati all’attiny85 ed alla comunicazione I2C.

In questo esempio l’unica considerazione che devi osservare è il numero di byte da richiedere via IIC allo slave, attiny85: 

//Code for the Arduino Master
#include <Wire.h>

#define TARGET_ID 0x08

void setup() {
 Wire.begin(); // join i2c bus (address optional for master)
 Serial.begin(9600); // start serial for output
 Serial.println( "Setup Success" );
}
 
void loop() {
  Wire.requestFrom(TARGET_ID, 5);
 
  while(Wire.available() > 0) {
    byte adc2H = Wire.read();
    byte adc2L = Wire.read();
    byte adc3H = Wire.read();
    byte adc3L = Wire.read();
    byte swh1  = Wire.read();

    int adc2 = adc2H << 8 | adc2L;
    int adc3 = adc3H << 8 | adc3L;
    
    Serial.print( "ADC2: " );    Serial.print( adc2 );
    Serial.print( " - ADC3: " ); Serial.print( adc3 );
    Serial.print( " - SWH: " );  Serial.println( swh1 );
   }
 
delay(100);
}

iniziando dalla linea 04: dove definisci l’indirizzo in Hex ( esadecimale ) del tuo slave I2C Attiny85;

linea 13: definisci il numero di byte da richiedere all’attiny85, in questo esempio 5 byte è la lunghezza del messaggio che lo slave ti invierà;

linee 16-20: leggi i singoli valori ed assegnali a delle variabili, di tipo byte, che userai per ricostruire i dati provenienti dagli ADC e dal pulsante;

linee 25-27: invia sul monitor seriale i valori letti.

Il risultato usando il Joystick sarà:

Leonardo master ADC i2C joystick switch center

quando la Leonardo master ADC i2C joystick switch ha il joystick in posizione centrale e non premuto.

Se sposti il joystick in su vedrai:

Leonardo master ADC i2C joystick switch up

e spostando il joystick in giù otterrai:

Leonardo master ADC i2C joystick switch down

poi a destra:

Leonardo master ADC i2C joystick switch right

ed a sinistra

Leonardo master ADC i2C joystick switch left

infine premi il joystick in giù:

Leonardo master ADC i2C joystick switch switch

Ora sei in grado di acquisire i tuoi segnali analogici mediante attiny85 ed inviarli in IIC al tuo device.

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/leonardo-master-adc-i2c-joystick-switch.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>