«

»

Set 18

Stampa Articolo

Attiny84 Arduino Led

Attiny84 arduino led ti mostra lo sketch che puoi caricare sulla leonardo per impartire i comandi all’attiny84 di controllo dei led.

Attiny84 Arduino 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:

Attiny84 Arduino Led schema

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:

Attiny84 Arduino Led green

linee 29-33: spegni tutti i led inviando la sequenza 0,0,0 nei 3 byte i2c:

Attiny84 Arduino Led

linee 36-40: invia la sequenza 0,0,1 in cui accendi solo l’ultimo led:

Attiny84 Arduino Led yellow

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à:

Attiny84 Arduino Led blue yellow

linee 50-54: ottieni l’accensione di tutti i led con l’ultima sequenza 125,125,1:

Attiny84 Arduino Led all leds lights

Il video dello sketch

Il video mostra l’alternarsi della sequenza di accensione come descritto nella spiegazione dello sketch:


Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/attiny84-arduino-led.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>