- Components necessaris
- Com funciona la comunicació IR?
- Esquema de connexions
- Programació per al descodificador remot IR Arduino
- Desar les dades del descodificador remot IR al full Excel
La comunicació IR (infrarojos) és una tecnologia de comunicació sense fils senzilla, de baix cost i àmpliament utilitzada. La llum IR és una mica similar a la llum visible, excepte que la longitud d'ona és una mica més llarga. Aquesta propietat d’IR fa que sigui indetectable a l’ull humà i sigui perfecta per a la comunicació sense fils.
Hi ha moltes aplicacions on cal descodificar els senyals IR per operar alguns dispositius amb control remot IR. Així doncs, en aquest tutorial utilitzarem el receptor IR TSOP1838 per construir un descodificador remot IR mitjançant Arduino. El codi hexadecimal de cada botó es registrarà al full de Microsoft Excel. Aquest senzill descodificador de control remot IR es pot utilitzar en projectes com el robot de control remot IR, la domòtica i altres projectes controlats per IR.
Anteriorment, vam utilitzar el comandament a distància IR i el receptor TSOP per crear moltes aplicacions útils com:
- Circuit dimmer controlat a distància per IR
- Domòtica IR controlada a distància mitjançant Arduino
- Domòtica IR controlada a distància mitjançant microcontrolador PIC
- CA controlada per telèfon mòbil mitjançant Arduino i Bluetooth
Components necessaris
- Arduino Uno / Arduino Nano
- Receptor IR (TSOP1838)
- Jumper Wires
- Taula de pa
Com funciona la comunicació IR?
Igual que altres sistemes de comunicacions, la comunicació per infrarojos també té un transmissor i un receptor. El transmissor té l’aspecte d’un LED, però produeix llum a l’espectre IR en lloc de l’espectre visible. Mentre que el receptor IR és un fotodiode incrustat amb un preamplificador que canvia la llum IR en un senyal elèctric. Per a la comunicació IR, el transmissor i el receptor han d’estar apuntats entre si. Per obtenir més informació sobre el circuit de transmissor i receptor d’IR, seguiu l’enllaç.
Quan es prem un botó remot, el LED IR (transmissor) emet llum infraroja. Aquesta llum la rep el receptor que normalment és un fotodiode o fototransistor. Però la llum IR també és emesa pel sol, les bombetes i qualsevol altra cosa que produeixi calor. Això pot interferir el senyal del transmissor, de manera que, per evitar-ho, el senyal del transmissor es modula mitjançant una freqüència portadora entre 36 kHz i 46 kHz. En rebre el senyal, el receptor IR demodula el senyal i el converteix en binari abans d’enviar-lo al microcontrolador.
Aquí fem servir un comandament a distància de TV per enviar senyals IR i TSOP1838 amb Arduino per rebre-les.

A més, comproveu aquí diverses aplicacions basades en IR, incloent el circuit de control remot de TV Jammer i el circuit de prova IR.
Esquema de connexions
A continuació es mostra el diagrama de circuits del descodificador remot IR que utilitza Arduino:

Les connexions són molt senzilles, ja que el sensor del receptor IR només té tres pins, Vs, GND i Data. Connecteu el pin Vs i GND del receptor IR al pin GND d'Arduino de 3,3V i el pin de dades al pin digital 2 d'Arduino.

Programació per al descodificador remot IR Arduino
El codi complet del descodificador IR Arduino es dóna al final de la pàgina.
Per descodificar IR Remote, primer, hem de descarregar i afegir una biblioteca IR a Arduino IDE. Podeu descarregar la biblioteca IR Remote des d’aquí. Després de descarregar el fitxer, obriu el vostre ID Arduino i aneu a Sketch> Inclou biblioteca> Biblioteca Add.Zip . Seleccioneu el fitxer de la biblioteca i feu clic a "Obre".
Inicieu el codi incloent el fitxer de biblioteca IR Remote.
#incloure
Després, definiu el pin Arduino on heu connectat el pin de dades del receptor IR. En el meu cas, està connectat al pin D2 d’Arduino.
int IRPIN = 2;
Després, creeu una instància per al pin del receptor IR.
IRrecv irrecv (IRPIN);
A la següent línia, definiu un objecte per a la classe decode_results , el receptor IR el farà servir per enviar la informació descodificada.
resultat decode_results;
Dins de la configuració () funció, iniciar la comunicació en sèrie, i iniciar el receptor IR cridant a l' IRrecv funció enableIRIn ().
configuració nul·la () {Serial.begin (9600); Serial.println ("Habilitar IRin"); irrecv.enableIRIn (); Serial.println ("IRin habilitat"); Initialize_streamer (); }
A la funció loop () , irrecv.decode comprova constantment si hi ha un nou senyal i, si es rep un senyal nou, el codi de senyal rebut s’emmagatzemarà en una funció result.value .
bucle buit () {if (irrecv.decode (& result)) {Serial.print ("Valor:"); Serial.println (result.value, HEX); Write_streamer (); irrecv.resume (); } retard (500); }
Per enviar dades a un full Excel des d’Arduino, fem servir PLX-DAQ. Mitjançant la funció Write_streamer () , estem enviant les dades en sèrie amb un patró específic tal com es mostra el valor al monitor sèrie. Les línies clau s’expliquen a continuació:
void Write_streamer () {Serial.print ("DADES"); // escriviu sempre "DATA" per indicar el següent com a Data Serial.print (","); // Passar a la següent columna amb un "," Serial.print (result.value, HEX); // Emmagatzemar la data a Excel Serial.print (","); // Passar a la següent columna amb un "," Serial.println (); // Final de fila passa a la fila següent}
Un cop el maquinari i el programa estiguin preparats, és hora de carregar-lo a la vostra placa Arduino Nano. Després de carregar el codi, apunteu el comandament a distància cap al receptor IR i premeu els botons del comandament. El codi hexadecimal de cada botó s'imprimirà al monitor sèrie.
Desar les dades del descodificador remot IR al full Excel
Ara per enviar dades a un full d'Excel, utilitzarem PLX-DAQ. És un programari de complement d'Excel que us ajuda a escriure valors des d'Arduino fins a directament en un full d'Excel al vostre ordinador portàtil o PC. Utilitzeu l'enllaç per descarregar el fitxer. Després de descarregar-lo, extreu el fitxer i feu clic al fitxer.exe per instal·lar-lo. Es crearà una carpeta anomenada PLX-DAQ al vostre escriptori.
Ara obriu el fitxer "Full de càlcul PLX-DAQ" des de la carpeta de l'escriptori. Si les macros estan desactivades a l'Excel, veureu un bloc de seguretat com es mostra a la imatge següent:

Feu clic a Opcions-> Activa el contingut -> Finalitza -> D'acord per habilitar les macros. Després d'això, obtindreu la pantalla següent:

Ara seleccioneu la velocitat de transmissió com a "9600" i el port al qual està connectat el vostre Arduino i, a continuació, feu clic a Connecta per iniciar la transmissió de dades. Els vostres valors haurien de començar a registrar-se com es mostra a la imatge següent.

Així es pot construir fàcilment un descodificador IR Arduino per convertir els senyals remots IR en codi HEX equivalent.
A continuació es mostra el codi Arduino complet amb un vídeo de demostració.
