Fade i2c attiny84

Fade i2c attiny84 è l’esperimento di controllo dei led attarverso un attiny84 ed il protocollo IIC eseguito dalla Arduino Leonardo.

Attiny84 i2c led

L’esempio da cui puoi partire per realizzare questo progetto è il fade che trovi tra gli esempi basic dell’IDE arduino.

In passato ho già trattato la descrizione di questo sketch che trovo tra gli esempi più significativi che lo staff arduino ci ha messo a disposizione.

Lo schema elettronico Fade i2c attiny84

per rendere semplice il collegamento dei led puoi utilizzare lo schema seguente:

Attiny84 Arduino Led schema

già mostrato e descritto nell’articolo dedicato ai led ed Attiny84.

Ti puoi concentrare sul codice da caricare su Arduino Leonardo o su Arduino Uno senza cambiare nulla lato attiny84, comprendi come questo aspetto dell’uso del protocollo IIC è molto interessante.

Lo sketch Fade i2c attiny84

Lo sketch Fade i2c attiny84 mostrato di seguito lo caricherai sull’arduino:

//Code for the Arduino Master
#include <Wire.h>

#define TARGET_ID 0x08

byte brightness = 0;
byte fadeAmount = 5;
byte green = 0;

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);   // send the address and the write cmnd
  Wire.write(brightness);
  Wire.write(255-brightness);
  Wire.write(green);                      // send three bytes
  Wire.endTransmission(); 
  
  Serial.println( brightness );
  
  brightness = brightness + fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
    green = !green; 
  }
  
  delay(100);
}

Descrizione dello sketch linea per linea

Iniziando dalla linea 02: includi la libreria Wire per gestire la comunicazione i2c;

linea 04: definisci l’ID target a cui l’attiny84 risponde;

linee 06-08: definisci 3 variabili di tipo byte che usi per la gestione dei valori da inviare allo slave;

linea 12: inizializza la libreria Wire;

linea 19: attiva la trasmissione i2c verso l’indirizzo target;

linea 20: invia come primo byte il valore brightness che in questo momento vale 0;

linea 21: invia l’inverso del valore brightness rispetto al valore massimo ( 255 );

linea 22: invia, come terzo byte, il valore di green, in questo momento 0;

linea 23: chiudi la trasmissione;

linea 27: incrementa il valore di brightness del corrispettivo fadeamount ( incremento );

linea 29: verifica se brightness è inferiore a 0 o maggiore a 255 per eseguire le linee successive;

linea 30: inverti il valore di fadeamount;

linea 31: inverti il valore di green;

Come avrai già intuito il led verde, o terzo valore inviato, serve a determinare se sei nel fronte ascendente o discendente. In ascesa il led resterà spento e viceversa in discesa.

Vedrai meglio il funzionamento nel video che ho realizzato durante la fase di test dello sketch:

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/elettronica/fade-i2c-attiny84.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

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