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.


Il blog mauroalfieri.it ed i suoi contenuti sono distribuiti con Licenza