Per creare interazione con l’utente è possibile usare il pulsante, di cui ci siamo già occupati in una precedente guida, e il più comodo telecomando a infrarossi per una gestione a distanza.
Il telecomando Infrarossi fornito nello starter kit è di tipo piatto alimentato da una pila a bottone.
Cosa serve?
- Arduino Uno o compatibile
- Breaboard
- Led
- Telecomando IR
- Ricevitore IR
- PC con software Arduino
Come fare?
Inseriamo il ricevitore IR in una parte libera della breadboard. Il primo piedino da sinistra corrisponde al pin digitale, quello centrale alla massa e l’ultimo ai 5V di Arduino.
Riconoscere il telecomando IR
Collegare Arduino al pc e caricare il seguente programma:
#include <IRremote.h>
int RECV_PIN = 3; //cambiare questo pin in base al pin a cui è collegato il sensore (che non sia 5v o gnd)
IRrecv irrecv (RECV_PIN) ;
decode_results results;
void setup ()
{
Serial.begin(9600);
irrecv.enableIRIn ();
}
void loop () {
if (irrecv.decode(&results)) {
Serial.println(results.value,HEX);
irrecv.resume();
}
}
Al termine aprire il monitor seriale, premere un pulsante del telecomando ir rivolto verso il ricevitore ir e segnare il codice corrispondente ad ogni pulsante.
Ad esempio se premiamo 1 verrà mostrato 9716BE3F, mentre con 2 3D9AE3F7 e così via.
Accendiamo un led col telecomando IR
Aggiungiamo un led direttamente sul pin digitale numero 13 di Arduino (positivo) e massa (negativo).
Carichiamo il seguente programma, facendo attenzione a modificare il codice corrispondente al pulsante del telecomando precedentemente annotato.
#include <IRremote.h>
#define LED1 13
int RECV_PIN = 3;
IRrecv irrecv(RECV_PIN);
decode_results results;
String stato;
void setup()
{
pinMode(13, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results))
{
// Serial.println(results.value);
if(results.value == 0x9716BE3F) { // INSERIRE CODICE TELECOMANDO
Serial.println(“Led 1 ACCESO”);
digitalWrite (LED1,HIGH);
}
if(results.value == 0x3D9AE3F7) { //0x è la parte fissa del codice, non rimuoverla
Serial.println(“Led 1 SPENTO”);
digitalWrite (LED1,LOW);
}
irrecv.resume();
}
}
Importante, al momento di scrivere questa guida è necessario aggiornare la libreria IR Remote del software Arduino in quanto il non upgrade, genererebbe il seguente errore: ‘TKD2’ was not declared in this scope.
Andare su questo sito, scaricare, e spostare la cartella decompressa nella directory libreries di Arduino. Rinominare quella già presente e cambiare il nome a quella scaricata col nome ufficiale. Riavviare Arduino così il problema non si ripresenterà.
Ciao,
E se volessi accendere e spegnere il led con lo stesso bottone del telecomando come dovrei fare?
Grazie mille per la sua attenzione,
Alessio