Molto spesso ci ritroviamo a dover lavorare con dei telecomandi ad infrarosso o a doverne provare soltanto l'efficienza.
Per la prova di funzionamento ci sono due metodi adatti alla maggior parte degli utenti:
- Fare uso di una radiolina ad onde medie: attivando i pulsanti del telecomando dovreste ascoltare il treno di impulsi sul ricevitore radio;
- Fare uso di un moderno telefono cellulare: premendo i pulsanti del telecomando si dovrebbero vedere a video, sullo schermo del telefono, gli impulsi di luce emessi.
Il problema, soprattutto se stiamo realizzando un progetto IoT, è conoscere i codici del telecomando, in modo da utilizzarli sul ricevitore per implementare le funzioni che a noi servono: Avvio/Arresto di motori, luci, servo, attuatori a relé ed altro. Infatti, non tutti i telecomandi hanno gli stessi codici.
Questo programma vi aiuta in questa ricerca e facilita la visualizzazione a monitor dei suddetti codici.
Successivamente, basta copiarli, memorizzarli in un file "DOC" o "TXT" e tenerli in evidenza per ogni ulteriore uso.
Ricordate! Ogni famiglia di telecomandi lavora in modo diverso ed è quindi molto utile conoscerne i codici ed il funzionamento. Alcuni ripetono il comando se si indugia sul pulsante, altri trasmettono codici diversi.
Per un corretto caricamento del programma, scollegare il pin RX e ricollegarlo a fine caricamento.
Buon lavoro!
/*----------------------------------------------- Inizio Programma -------------------------------
* Arduino con test di ricezione Infrarosso.
* Programma elaborato da Achille De Santis 27-10-2019.
*
* Utile per riconoscere a monitor i codici di comando del trasmettitore/telecomando.
* Rileva gli impulsi sul LED connesso al piedino 13, senza aggiunta di altri componenti;
* Rivela e visualizza a monitor i codici dei comandi.
* A causa dei ritardi e del tipo di telecomando potremmo riceverli in due modi diversi;
* niente paura: il comando viene trasmesso a "burst", l'importante è che uno (il primo) sia giusto.
* Scegliere i codici dei comandi ed inserirli nelle istruzioni degli attuatori.
* Collegare la seriale, avviare il programma ed aprire il monitor seriale.
* I codici ricevuti verranno visualizzati a monitor.
* Per "sincronizzare" al meglio i comandi agire sul delaytime.
* Per una corretta decodifica, i comandi devono essere impulsivi. Si risparmia anche sul consumo della pila!
*/
#include <IRremote.h> // usa la libreria
// ------------------ I/O -----------------------------
#define RX 0 // pin 1 (segnale) del ricevitore IR; ad Arduino, digital pin 0
#define U 13 // rivelatore dei comandi
// ----------------------------------------------------
IRrecv irrecv(RX); // creo una istanza di 'irrecv'
decode_results results;
void setup()
{
Serial.begin(9600); // serial monitor output
irrecv.enableIRIn(); // abilita la ricezione IR
pinMode(U, OUTPUT); // Pin di monitor output; segnala l'arrivo dei codici di comando
visualizza(U); // accende una volta il LED, come test di uscita.
}
void visualizza(int p)
{ digitalWrite(p, HIGH); delay(100); digitalWrite(p, LOW); }
void loop()
{
if (irrecv.decode(&results)) // se riceve un segnale IR
{
Serial.println(results.value, HEX); // lo mostra sul serial monitor in esadecimale
// visualizza(U); // il piedino 13 è monitorato dal suo LED "a bordo" ma se si cambia // uscita... un LED può servire.
delay(50); // IMPORTANTE! Blocca segnali spuri e "sincronizza". Da verificare // ed adattare. Con LG è perfetto!!!
irrecv.resume(); // si predispone a ricevere il codice successivo.
}
}