Utilizzo del telecomando con Arduino

In questo progetto viene mostrato come sia possibile accende e spegnere alcuni led tramite telecomando.

laboratorio
laboratorio
Utilizzo del telecomando con Arduino
Tipo di risorsa Tipo: laboratorio
Materia di appartenenza Materia: Sistemi automatici per le superiori 1
Avanzamento Avanzamento: laboratorio completa al 100%

Per far questo è necessario un sensore a infrarossi, e - naturalmente - un telecomando. Un qualsiasi telecomando. Nel codice che segue viene utilizzato il monitor seriale per visualizzare il codice inviato dal telecomando. Questa funzione non è solo utile in sede di test, ma anche per scrivere il codice stesso, se non si conoscono, a priori, le specifiche del telecomando stesso.

Azionamento di attuatori tramite telecomando

modifica

Il progetto, così come si presenta, accende e spegne alcuni led. Tuttavia ogni led ha un significato. In questa sede rappresenta il controllo verso una lampada, un termostato, o qualsiasi altra cosa si desideri automatizzare. Sarà sufficiente sostituire il led con un relè e si potrà controllare anche un dispositivo ad alta tensione.

Schema di montaggio

modifica

Lo schema seguente rappresenta i collegamenti necessari per far sì che il circuito funzioni. Il microcontrollore fornisce tensione anche al sensore a infrarossi (il componente rappresentato in color nero nella breaboard) il quale restituisce il codice inviato dal telecomando alla scheda.

Dopodiché si collegano i led (in questo caso cinque) con le opportune resistenze per limitare la corrente, come illustrato in figura.

 
Lo schema seguente rappresenta i collegamenti necessari per far sì che il circuito funzioni. descrivendolo, il pin dei 5 V va unito al positivo della breaboard che a suo volta viene collegato al positivo dell'IR. Si fa lo stesso con il pin negativo che parte dalla massa. Dopodiché si collegano i cavi al catodo del led nei pin scelti (in questo caso 2, 3, 4, 5, 6). Per finire si uniscono le resistenze con il negativo della breaboard e l'anodo del led.
// Parametri per la gestione del controllo remoto
int RECV_PIN = 12;
IRrecv irrecv(RECV_PIN);
decode_results results;

// Codici del telecomando
#define code1 16724175
#define code2 16718055
#define code3 16743045
#define code4 16716015
#define code5 16726215

// Uscite di Arduino
#define pin1 2
#define pin2 3
#define pin3 4
#define pin4 5
#define pin5 6

// Parametri in uscita iniziali
boolean i1 = LOW;
boolean i2 = LOW;
boolean i3 = LOW;
boolean i4 = LOW;
boolean i5 = LOW;

void setup()
{
Serial.begin(9600);
// Abilita il controllo remoto
irrecv.enableIRIn();
// Modalità di utilizzo dei pin
pinMode(pin1, OUTPUT);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
  // Mostra ogni dato nel monitor seriale
  Serial.println(results.value, HEX);
  Serial.println(results.value);
  irrecv.resume();

  // Se è un dato atteso modifica l'output corrispondente
  switch (results.value) {
    case code1:
      i1 = !i1;
      digitalWrite(pin1, i1);
      break;
    case code2:
      i2 = !i2;
      digitalWrite(pin2, i2);
      break;
    case code3:
      i3 = !i3;
      digitalWrite(pin3, i3);
      break;
    case code4:
      i4 = !i4;
      digitalWrite(pin4, i4);
      break;
    case code5:
      i5 = !i5;
      digitalWrite(pin5, i5);
      break;
    default:
      break;
  }
}

Espansioni suggerite

modifica

Come anticipato, lo scopo non è accendere o spegnere un led a distanza, ma dare un significato a questa azione. Cosa rappresenta il led? Rispondendo a questa domanda si svilupperanno progetti decisamente più interessanti.