Attiny84 arduino led ti mostra lo sketch che puoi caricare sulla leonardo per impartire i comandi all’attiny84 di controllo dei led.
il precedente articolo ti ha permesso di caricare sull’attiny84 uno sketch in grado di accettare le informazioni di controllo dei led da parte dell’arduino Leonardo.
L’arduino Leonardo è utilizzato, in questo caso, come master del progetto.
Lo schema dei collegamenti
Lo schema per collegare l’Attiny84 Arduino Led è identico a quello già visto nel precedente articolo:
ti invito a leggerlo per comprendere le scelte costruttive.
Lo sketch Attiny84 Arduino Led
Lo sketch che puoi caricare sull’arduino leonardo, in questo caso o arduino uno se non possiedi la stessa board è il seguente:
//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.beginTransmission(TARGET_ID); Wire.write(125); Wire.write(125); Wire.write(0); Wire.endTransmission(); delay(1000); Wire.beginTransmission(TARGET_ID); Wire.write(125); Wire.write(0); Wire.write(0); Wire.endTransmission(); delay(1000); Wire.beginTransmission(TARGET_ID); Wire.write(0); Wire.write(0); Wire.write(0); Wire.endTransmission(); delay(1000); Wire.beginTransmission(TARGET_ID); Wire.write(0); Wire.write(0); Wire.write(1); Wire.endTransmission(); delay(1000); Wire.beginTransmission(TARGET_ID); Wire.write(0); Wire.write(125); Wire.write(1); Wire.endTransmission(); delay(1000); Wire.beginTransmission(TARGET_ID); Wire.write(125); Wire.write(125); Wire.write(1); Wire.endTransmission(); delay(1000); } delay(100); }
Descrizione dello sketch
la descrizione dello sketch Attiny84 Arduino Led linea per linea parte dalla linea 02: icludi la libreria Wire per l’i2c;
linea 04: definisci l’indirizzo I2C a cui risponde la componente slave;
linea 08: inizializza la classe Wire con il metodo begin();
linea 15: attiva una trasmissione verso il TARGET_ID;
linea 16: invia un primo byte il cui valore è 125;
linea 17: invia un secondo byte il cui valore è 125;
linea 18: invia un terzo byte il cui valore è 0;
linea 19: chiude la trasmissione avendo inviato 3 byte all’attiny84;
la sequenza di 3 byte inviati dirà all’attiny84 di accendere i primi due led a metà intensità ed il terzo spento:
linee 22-26: invia la sequenza 125,0,0 ossia il primo led al 50% e gli altri due spenti:
linee 29-33: spegni tutti i led inviando la sequenza 0,0,0 nei 3 byte i2c:
linee 36-40: invia la sequenza 0,0,1 in cui accendi solo l’ultimo led:
linee 43-47: invia la sequenza 0,125,1 in questo modo ottieni che il secondo led è acceso al 50% mentre il terzo è accesso alla massima intensità:
linee 50-54: ottieni l’accensione di tutti i led con l’ultima sequenza 125,125,1:
Il video dello sketch
Il video mostra l’alternarsi della sequenza di accensione come descritto nella spiegazione dello sketch: