Arduino e telecomando infrarossi

Vediamo come possiamo accendere/spegnere una semplice bajour oppure un qualsiasi “apparecchio” che si colleghi alla rete elettrica di casa, tramite Arduino, un sensore ricevitore ad infrarossi, un normale telecomando ad infrarossi come ad esempio quello della TV o dello stereo ecc… ed una scheda (fatta in casa) con uno o più relè.

Io per questo esempio ho usato un normalissimo portalampada E27 con due fili volanti ed una spina, voi se non avete a portata di mano qualcosa del genere, potete usare tranquillamente una normalissima bajour, sostituendogli l’interruttore con il relè della scheda.

Per quanto riguarda invece il ricevitore infrarossi l’ho recuperato da un vecchio lettore DVD da TV.

I collegamenti

Ho collegato il primo piedino del ricevitore infrarossi al pin dove andrò a leggere il segnale infrarossi ricevuto dal telecomando,
il secondo al pin Gnd,
ed il terzo al pin 5V (di solito funzionano tra 2.7V e 5.5V ).

Adesso prepariamo l’IDE di Arduino per poter lavorare con gli infrarossi, quindi andiamo su questo sito e scarichiamo la libreria IRremote, poi scompattiamo l’archivio scaricato e mettiamo la cartella appena estratta dentro la cartella “libraries” di Arduino.

Come facciamo adesso a dire ad Arduino, come capire quale tasto del telecomando abbiamo schiacciato??

Grazie alla libreria che abbiamo scaricato in precedenza, possiamo tranquillamente decodificare il segnale ricevuto dal telecomando, in un codice esadecimale associato.

Adesso per scoprire quali codici sono associati ad ogni singolo tasto del nostro telecomando, caricate questo sketch su Arduino e lanciate il serial monitor per catturare i codici del vostro telecomando:

#include <IRremote.h> 


int receiver = 11;  
IRrecv irrecv(receiver);  
decode_results results; 


void setup() 
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop() 
{
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    delay(500);
    irrecv.resume(); 
  }
}

Adesso provate a schiacciate un tasto e vedrete stampato a video il codice corrispondente.
Io ad esempio con il mio telecomando, schiacciando sul tasto 1 leggo 0x97BBEEEF e schiacciando sul tasto 2 invece leggo 0x93B864D.

Che poi ho scelto come tasti per accendere e spegnere la luce.

Adesso che abbiamo individuato i codici corrispondenti ai tasti di nostro interesse, dobbiamo dire ad Arduino “Quando ricevi il seguente codice aziona il relè”. Quindi caricate lo sketch qui sotto indicando nel codice il pin di output dove è collegato il relè……. io ho scelto il pin 7:

#include <IRremote.h>


#define relay 7
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;


void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(relay, OUTPUT);
}

void loop() 
{
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }

  // se ho schiacciato il tasto 1 sul mio telecomando accendo la luce
  if ( results.value == 0x97BBEEEF ) {
    digitalWrite(relay, HIGH);
  }

  // se ho schiacciato il tasto 2 sul mio telecomando spengo la luce
  if ( results.value == 0x93B864D ) {
    digitalWrite(relay, LOW);
  }
}

La scheda relè autocostruita

A questo link invece trovate l’articolo che spiega come collegare il relè ad Arduino.

Ed in fine ho realizzato questo piccolo video: