Arduino (L8): Telecomando Infrarossi (accendere/spegnere led)

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

loading...

Lascia un commento

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