Leonardo IIC Attiny84 descrive la parte della comunicazione che puoi caricare sull’arduino Leonardo per leggere l’I2C sull’indirizzo 0x08

Il precedente articolo era dedicato all’attiny84 usato in modalità slave e ti serve un master che sia adeguato alla ricezione del medesimo numero di byte per ricevere correttamente la comunicazione IIC.
Lo schema dei collegamenti non è variato rispetto al precedente articolo, che ti invito a leggere per comprenderli:

e lato Leonardo puoi collegare l’alimentazione ed i soli pin SDA ed SCL dell’IIC:

Lo sketch Leonardo IIC Attiny84
Lo sketch Leonardo IIC Attiny84 puoi caricarlo sulla board ed utilizzare il monitor seriale per vedere i dati che ti arrivano dall’attiny84:
//Code for the Arduino Master
#include <Wire.h>
#define TARGET_ID 0x08
void setup() {
Wire.begin(); // SDA, SCL
Serial.begin(9600); // start serial for output
Serial.println( "Setup Success" );
}
void loop() {
Wire.requestFrom(TARGET_ID, 10);
while(Wire.available() > 0) {
byte adc0H = Wire.read();
byte adc0L = Wire.read();
byte adc1H = Wire.read();
byte adc1L = Wire.read();
byte adc2H = Wire.read();
byte adc2L = Wire.read();
byte adc3H = Wire.read();
byte adc3L = Wire.read();
byte swh1 = Wire.read();
byte swh2 = Wire.read();
int adc0 = adc0H << 8 | adc0L;
int adc1 = adc1H << 8 | adc1L;
int adc2 = adc2H << 8 | adc2L;
int adc3 = adc3H << 8 | adc3L;
Serial.print( "ADC0: " ); Serial.print( adc0 ); Serial.print( " - " );
Serial.print( "ADC1: " ); Serial.print( adc1 ); Serial.print( " - " );
Serial.print( "ADC2: " ); Serial.print( adc2 ); Serial.print( " - " );
Serial.print( "ADC3: " ); Serial.print( adc3 ); Serial.print( " - " );
Serial.print( "SWH1: " ); Serial.print( swh1 ); Serial.print( " - " );
Serial.print( "SWH2: " ); Serial.print( swh2 ); Serial.print( "\n" );
}
delay(100);
}
La maggior parte dello sketch è identico a tutti quelli che già hai utilizzato per la comunicazione I2C tra processori della famiglia Attiny ed Arduino Leonardo.
La linea 13 è simile a quelle già utilizzate a parte il secondo parametro ( 10 ) che rappresenta il numero di byte che vuoi ricevere dall’attiny84.
Le righe evidenziate sono quelle che devi aggiungere per ricevere e visualizzare a video i dati ricevuti. Nota che sono identiche alle altre presenti nello sketch, puoi duplicarle e modificarne solo i valori.
Il blocco delle linee 32-37: ti permette di scrivere sul monitor seriale le informazioni ricevute dalla Leonardo IIC Attiny84, ciascuna linea riporta tutti 10 byte ricevuti e relativi ai 6 input ( quattro analogici e due digitali ).


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