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
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:
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à:
quando la Leonardo master ADC i2C joystick switch ha il joystick in posizione centrale e non premuto.
Se sposti il joystick in su vedrai:
e spostando il joystick in giù otterrai:
poi a destra:
ed a sinistra
infine premi il joystick in giù:
Ora sei in grado di acquisire i tuoi segnali analogici mediante attiny85 ed inviarli in IIC al tuo device.