Leonardo IIC Attiny84

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

Leonardo IIC Attiny84

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:

Attiny84 IIC Leonardo collegamenti

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

Attiny84 IIC Leonardo arduino conn

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 ).

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/leonardo-iic-attiny84.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.