Questo articolo copre:
1: Introduzione al sensore IR
Un ricevitore IR è un dispositivo in grado di rilevare e ricevere segnali a infrarossi (IR). Viene in genere utilizzato nei sistemi di controllo remoto IR per ricevere comandi da un telecomando IR o altri trasmettitori IR. Il ricevitore IR è costituito da un fotodiodo o altro componente sensibile IR che rileva i segnali IR e un circuito demodulatore che decodifica i segnali.
L'uscita dal ricevitore IR è generalmente un segnale digitale che può essere elaborato da un microcontrollore o altro dispositivo elettronico. I ricevitori IR sono comunemente usati in una vasta gamma di elettronica di consumo, tra cui televisori, giocatori di DVD, condizionatori d'aria e altri elettrodomestici, nonché in applicazioni industriali e automobilistiche.
Vale la pena notare che i sensori del ricevitore IR possono essere suscettibili alle interferenze da altre fonti a infrarossi, come la luce solare o altri dispositivi IR. Per evitare questo, si consiglia di puntare il sensore del ricevitore IR direttamente al telecomando IR e di tenere il sensore lontano da altre fonti a infrarossi.
2: pinout del sensore IR
Il sensore del ricevitore IR è un piccolo modulo che in genere ha tre pin:
IL VCC Il pin è collegato a un alimentatore, come il pin 5v sull'arduino, per fornire energia al sensore. IL FUORI Il pin è collegato a un perno di ingresso digitale su Arduino e GND Il pin è collegato al perno di terra sull'Arduino:
3: Sensore IR interfacciante con Arduino
Per utilizzare il sensore del ricevitore IR con un Arduino Uno, una biblioteca chiamata Irrilevante è obbligatorio. Questa libreria può essere scaricata dal sito Web Arduino e consente all'Arduino di decodificare i segnali IR ricevuti dal sensore. Una volta installata la libreria, può essere incluso nello sketch (programma) che viene caricato su Arduino.
Una volta collegato il sensore del ricevitore IR e lo schizzo viene caricato, l'Arduino può iniziare a ricevere e interpretare i segnali da un telecomando IR. I segnali IR possono essere decodificati utilizzando una funzione fornita dalla libreria Irremote e i segnali decodificati possono quindi essere utilizzati per controllare vari dispositivi.
Ad esempio, è possibile utilizzare un segnale IR specifico per accendere o disattivare un dispositivo o per controllare la luminosità o la temperatura.
1: schema
Ecco uno schema di base per collegare un sensore IR a un Arduino:
Sensore IR | Arduino |
---|---|
VCC (potenza) | 5v |
GND (terra) | GND |
Out (output) | D8 |
È importante notare che diversi sensori IR possono avere diversi pinut e tensioni, quindi è importante controllare la scheda tecnica per il sensore specifico che stai utilizzando.
2: installazione della libreria richiesta
Ci sono diverse librerie remote IR disponibili per Arduino. Puoi utilizzare una di queste librerie secondo le tue esigenze e il protocollo remoto IR che stai utilizzando.
Installeremo il Irrilevante Biblioteca di Arminjo.
4: decodifica di un pulsante remoto IR
Sono disponibili più telecomandi IR come per televisori, condizionatori d'aria e sistemi di automazione domestica. Decodificando un telecomando IR possiamo progettare un telecomando universale per tutti questi apparecchi.
Per decodificare un telecomando IR, caricare il codice indicato di seguito e premere i pulsanti sul telecomando IR, quindi osservare il monitor seriale dell'IDE Arduino. Lo schizzo di esempio stamperà il segnale IR in formato esadecimale e il protocollo utilizzato.
Estrai i codici chiave dei pulsanti remoti IR che si desidera utilizzare nel progetto. Utilizzando questi codici chiave e le funzioni della libreria Irremote possiamo controllare le azioni desiderate quando i pulsanti corrispondenti vengono premuti sul telecomando IR.
1: codice
Carica il codice indicato di seguito tramite l'IDE Arduino su Arduino Uno:
#include /*biblioteca remota IR inclusa* /
Irrecv IR (8); /*D8 Arduino Pin definito*/
void setup ()
Ir.abilitarin (); /*Comunicazione IR abilitata*/
Seriale.Inizia (9600); /*Tasso di baud seriale definito*/
void loop ()
Se (ir.decode ()) / *IR Funzione libreria remota per decodificare remoto * /
Seriale.println (ir.DecodeDirdata.decodedrawdata, esagono); /*Stampa valore esagonale*/
ritardo (1000);
Ir.riprendere (); /*Attendi l'ingresso successivo* /
Codice avviato includendo una libreria remota IR. Dopodiché abbiamo definito il perno digitale Arduino in cui verrà letto il segnale IR. Successivamente nel impostare() Parte inizializziamo la comunicazione IR e il tasso di baud è definito.
In ciclo continuo() Parte del codice decodifichiamo il segnale IR ricevuto in formato esadecimale che viene quindi stampato su monitor seriale.
2: output
Dopo aver caricato il codice, abbiamo premuto tre pulsanti rosso, verde e blu sul telecomando IR.
Seguente ESADECIMALE Il codice è ottenuto per il pulsante rosso, verde e blu sul monitor seriale IDE.
Pulsante remoto IR | Codice esagonale |
---|---|
Pulsante rosso | 0xfb04ef00 |
Pulsante verde | 0xFA05EF00 |
Pulsante blu | 0xf906ef00 |
5: controllo del LED usando IR Remote
Per controllare un dispositivo con il telecomando IR, dovrai utilizzare il decodificato ESADECIMALE Segnali nel tuo schizzo. Ad esempio, puoi usare un se altro istruzione per controllare il segnale decodificato e accendere o disattivare un dispositivo specifico. Puoi anche usare i segnali decodificati per controllare la luminosità o la temperatura di un dispositivo.
1: schema
L'immagine data spiega la connessione di tre LED colorati diversi con ricevitore Arduino e IR.
Sensore LED e IR | Arduino Pin |
---|---|
ROSSO | D5 |
VERDE | D6 |
BLU | D7 |
Sensore IR fuori | D8 |
2: codice
Di seguito è riportato il codice Arduino per i LED di controllo telecomandata IR. Il codice può essere caricato nella scheda Arduino Uno aprendo l'IDE Arduino.
#include /*include la libreria remota IR* /
Irrecv IR (8); /*Pin Ir definito*/
int blu = 7; /*LED blu al pin d7*/
int verde = 6; /*LED verde al pin d6*/
int rosso = 5; /*LED rosso al pin d5*/
bool red_state = 1; /*Stato a led rosso*/
Bool Green_State = 1; /*Stato a LED verde*/
bool blue_state = 1; /*Stato a LED blu*/
void setup ()
Ir.abilitarin (); /*La comunicazione Ir abilita*/
pinMode (blu, output); /*Pin LED blu set come output*/
pinMode (verde, output); /*Pin LED verde set come output*/
pinMode (rosso, output); /*Pin LED rosso set come output*/
Seriale.Inizia (9600);
void loop ()
Se (ir.decode ()) /*decode Ir segnale in formato esadecimale* /
Seriale.println (ir.DecodeDirdata.decodedrawdata, esagono);
/*Controlla l'ingresso IR*/
/*Codice LED rosso*/
Se (ir.DecodeDirdata.DecodeDrawData == 0xfb04ef00 && red_state == 1)
DigitalWrite (rosso, alto);
Seriale.println ("led rosso");
Red_state = 0;
altro se (ir.DecodeDirdata.DecodeDrawData == 0xfb04ef00 && red_state == 0)
DigitalWrite (rosso, basso);
Seriale.println ("led Off rosso");
Red_state = 1;
/*Controlla l'output IR*/
Se (ir.DecodeDirdata.DecodeDrawData == 0xFA05EF00 && Green_state == 1)
/*Codice LED verde*/
DigitalWrite (verde, alto);
Seriale.println ("Green Led On");
Green_State = 0;
altro se (ir.DecodeDirdata.DecodeDrawData == 0xFA05EF00 && Green_State == 0)
DigitalWrite (verde, basso);
Seriale.println ("Green Led Off");
Green_State = 1;
/*Controlla il codice IR*/
Se (ir.DecodeDirdata.DecodeDrawData == 0xf906ef00 && blue_state == 1)
/*Codice LED blu*/
DigitalWrite (blu, alto);
Seriale.println ("blu led on");
Blue_state = 0;
altro se (ir.DecodeDirdata.DecodeDrawData == 0xf906ef00 && blue_state == 0)
DigitalWrite (blu, basso);
Seriale.println ("blu led off");
Blue_state = 1;
Ir.riprendere ();
Codice avviato includendo una libreria remota IR. Dopodiché abbiamo definito il perno digitale Arduino in cui verrà letto il segnale IR. Sono definiti i prossimi tre pin per LED. Tutti e tre i LED hanno stati separati in modo da poter utilizzare la funzione di disattivazione all'interno del codice utilizzando la condizione.
Nel impostare() Parte inizializziamo la comunicazione IR e il tasso di baud è definito. Insieme a ciò, tutti e tre i pin a LED sono impostati come output utilizzando pinMode () funzione.
In ciclo continuo() parte del codice se altro la condizione viene utilizzata separatamente per tutti e tre i LED. Tutti e tre i LED sono controllati separatamente usando il codice esadecimale.
Pulsante remoto IR | Codice esagonale |
---|---|
Pulsante rosso | 0xfb04ef00 |
Pulsante verde | 0xFA05EF00 |
Pulsante blu | 0xf906ef00 |
Nota: Ricorda che questi sono il codice esagonale per quello remoto che stiamo usando. Il tuo telecomando può avere un codice esadecimale diverso. Quindi, sostituire il codice con il codice esadecimale che hai ottenuto nel monitor seriale.
3: output
Dopo aver caricato il codice sulla pressione della scheda Arduino, uno dei rispettivi LED a tre pulsanti brillerà. Se premi il pulsante rosso, il LED rosso brillerà e viceversa:
Allo stesso modo, possiamo anche brillare questi LED contemporaneamente. Per disattivare il LED, basta premere nuovamente il pulsante poiché abbiamo utilizzato la condizione di interruttore nel codice Arduino.
Usando lo stesso metodo, possiamo controllare gli apparecchi AC sostituendo i LED con un interruttore di relè.
Conclusione
In sintesi, la decodifica di un telecomando IR con un microcontrollore Arduino è un modo semplice ed economico per controllare vari dispositivi. Collegando un ricevitore IR all'Arduino, caricando uno schizzo e decodificando i segnali IR, è possibile controllare facilmente dispositivi come televisori, condizionatori d'aria e sistemi di automazione domestica.