Accensione del LED 13
#include <IRremote.h>
IRrecv ricevitore(A0);
decode_results codice_tasto;
void setup()
{
pinMode(13,OUTPUT);
Serial.begin(9600);
ricevitore.enableIRIn(); // attiva la ricezione
}
void loop() {
if (ricevitore.decode(&codice_tasto)) {
Serial.println(codice_tasto.value, HEX);
ricevitore.resume();
if ( codice_tasto.value == 0x804E58A7){ //tasto 1 sul telecomando
digitalWrite(13, HIGH); // accende il LED
}
if ( codice_tasto.value == 0x804EF807){ //tasto 2 sul telecomando
digitalWrite(13, LOW); // spegne il LED
}
}
}
Analisi del codice
linea 1:
#include <IRremote.h>
includo la libreria IRemote nel mio sketch.
linea 2:
IRrecv ricevitore(A0);
inizializzo la libreria Iremote; dichiaro che il pin A0 è il “receiver” ovvero il pin da cui la libreria leggerà il segnale dal sensore,
il pin A0 viene collegato al piedino OUT del sensore:
linea 3:decode_results codice_tasto;
decodifico il risultato che Arduino riceve dal sensore per ottenere un valore numerico utilizzabile nel confronto.
Costruisco la funzione setup()
- attivo la comunicazione seriale per vedere i valori letti dal sensore sulla Serial Monitor di Arduino quando premo un tasto sul telecomando
- utilizzo il metodo
ricevitore.enableIRIn();
della libreria IRemote perchè legga i valori provenienti dal sensore - imposto, mediante il comando
pinMode(13, OUTPUT);
l’utilizzo del pin 13 di Arduino come output per pilotare il led
Costruisco la funzione loop()
- quando il sensore riceve un segnale proveniente dal mio telecomando scrive sul monitor seriale il valore rilevato
Serial.println(results.value, HEX);
e prosegue mettendo il sensore nuovamente in modalità di ascolto:ricevitore.resume();
- se viene premuto il tasto 1, per cui il valore letto dal sensore sarà uguale a 804E58A7 , porta l’uscita del pin 13 ad HIGH ( 1 ) ed il LED si accenderà
- se viene premuto il tasto 2 , per cui il valore letto dal sensore sarà uguale a 804EF807, porta l’uscita del pin 9 a LOW ( 0 ) ed il LED si spegnerà
I codici dei tasti vanno aggiornati con quelli ottenuti con il telecomando in nostro possesso.