- Explicació de treball:
- Descodificació de senyals de control remot IR mitjançant Arduino:
- Descripció del circuit:
- Descripció del codi:
Anteriorment, hem tractat molts tipus de domòtica mitjançant diferents tecnologies com la domòtica basada en DTMF, la domòtica controlada per PC mitjançant Arduino i la domòtica controlada per Bluetooth. En aquest projecte, utilitzem la comunicació sense fils basada en IR per controlar els electrodomèstics. En aquest projecte, Arduino s'utilitza per controlar tot el procés. Enviem algunes ordres al sistema de control mitjançant el comandament IR TV / DVD / MP3 per controlar els electrodomèstics de CA. Després de rebre el senyal del control remot IR, Arduino envia el senyal relacionat als relés que s’encarreguen d’encendre o apagar els electrodomèstics mitjançant un controlador de relé.
Explicació de treball:
El treball d’aquest projecte és fàcilment comprensible. Quan premem qualsevol botó de control remot IR, el comandament remot envia un codi en forma de tren de polsos codificats mitjançant una freqüència de modulació de 38 KHz. Aquests polsos són rebuts pel sensor TSOP1738 i llegits per Arduino i després Arduino descodifica el tren de polsos rebut en un valor hexadecimal i compara aquest valor descodificat amb el valor hexadecimal predefinit del botó premut. Si es produeix cap coincidència, Arduino realitza una operació relativa i el resultat corresponent també es mostra a la pantalla LCD de 16x2 mitjançant les ordres adequades. Aquí, en aquest projecte, hem utilitzat 3 bombetes de diferents colors, per a demostracions que indiquen Ventilador, Llum i TV.
Hi ha molts tipus de comandaments a distància IR disponibles per a diferents dispositius, però la majoria treballen al voltant del senyal de freqüència de 38 KHz. Aquí en aquest projecte controlem els electrodomèstics mitjançant el control remot de TV IR. Per detectar el senyal remot IR, fem servir el receptor IR TSOP1738. Aquest sensor TSOP1738 pot detectar un senyal de freqüència de 38 KHz. El funcionament del control remot IR i el TSOP1738 es pot tractar en detall en aquest article: Transmissor i receptor IR

Components:
- Arduino UNO
- TSOP1738
- Comandament de TV IR / DVD
- ULN2003
- Relés de 5 volts
- Bombeta amb suport
- Connexió de cables
- Taula de pa
- LCD de 16x2
- Font d'alimentació
- PVT
- IC 7805
Aquí, en aquest projecte, hem utilitzat el botó numèric 7, 8 i 9 del comandament a distància IR, per controlar el ventilador, la llum i la TV respectivament i el botó ON / OFF (botó d’encesa) s’utilitza per encendre i apagar tots els aparells simultàniament.
Aquí hem utilitzat el mètode de commutació per activar i desactivar el sol electrodomèstic. Commuta el mètode no és res més que aconseguir-ho, tant si es prem el botó fins i tot el nombre de vegades o el senar de vegades. Això es troba obtenint el recordatori després de dividir-lo per 2 (i% 2), si hi ha algun recordatori, el dispositiu s’encendrà i, si el recordatori és 0, s’apagarà. Suposem que la tecla 7 es prem al control remot i que el remot envia un senyal a Arduino a través del receptor IR TSOP. A continuació, Arduino el descodifica i emmagatzema el valor descodificat a la variable de resultats. Ara la variable de resultats té un valor hexadecimal 0x1FE00FF, després de coincidir-la amb el valor hexadecimal predefinit de la clau 7 (vegeu la imatge superior), Arduino engega el ventilador. Ara, quan tornem a prémer la mateixa tecla (tecla 7), l'IR envia el mateix codi. Arduino obté el mateix codi i coincideix amb el mateix codi que abans, però aquesta vegada el ventilador s'ha apagat per canviar el bit (i% 2).
Descodificació de senyals de control remot IR mitjançant Arduino:
A continuació es mostra una llista d’un codis de sortida descodificats remots de tipus DVD NEC:

Si no coneixeu la sortida descodificada del vostre comandament a distància IR, es pot trobar fàcilment. Només heu de seguir aquests passos:
- Descarregueu la biblioteca remota IR des d’aquí
- Descomprimiu-lo i col·loqueu-lo a la carpeta Arduino 'Biblioteques'. A continuació, canvieu el nom de la carpeta extreta a IRremote.
- Executeu el programa següent des del vostre Arduino i obriu la finestra del monitor sèrie a Arduino IDE. Ara premeu qualsevol botó de control remot IR i veureu la sortida hexadecimal corresponent descodificada a la finestra del monitor sèrie.
* IRremote: IRrecvDemo: demostra la recepció de codis IR amb IRrecv * S'ha de connectar un detector / demodulador IR a l'entrada RECV_PIN. * Versió 0.1 de juliol de 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
El programa anterior es troba a la carpeta "exemples" de la biblioteca IRremote; podeu consultar més exemples per obtenir més informació sobre l'ús del comandament a distància IR. Així és com vam descodificar la sortida remota IR.
Descripció del circuit:
Les connexions d’aquest circuit són molt senzilles, aquí s’utilitza una pantalla de cristall líquid per mostrar l’estat dels electrodomèstics que està directament connectat a l’arduino en mode de 4 bits. Els pins de dades de la pantalla LCD, RS, EN, D4, D5, D6, D7, estan connectats al pin digital arduino número 6, 7, 8, 9, 10, 11. I el pin de sortida de TSOP1738 es connecta directament al pin digital número 14 (A) d'Arduino. I el pin Vcc està connectat a un pin de +5 volts i GND connectat a la terminal de terra del circuit. Un controlador de relés ULN2003 també s'utilitza per conduir relés. Els relés SPDT 3 de 5 volts s’utilitzen per controlar LIGHT, FAN i TV. I els relés estan connectats al pin arduino número 3, 4 i 5 mitjançant el controlador de relés ULN2003 per controlar LIGHT, FAN i TV respectivament.

Descripció del codi:
En la programació de part d’aquest projecte En primer lloc, en la programació, incloem una biblioteca per a control remot IR que és fàcilment disponible a Google. I definiu variables de fixació i declaració.
#incloure
A continuació, incloem una capçalera per a la visualització de cristalls líquids i, a continuació, definim les dades i els pins de control per a LCD i electrodomèstics.
#incloure
Després d'això, hem d'inicialitzar la pantalla LCD i donar la direcció del pin que s'utilitza per al ventilador, la llum i el televisor.
configuració nul·la () {Serial.begin (9600); lcd.begin (16,2); pinMode (Ventilador, SORTIDA); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Com ja s'ha explicat, a continuació s'utilitza una part del codi per comparar el valor hexadecimal rebut amb el codi hexadecimal ja definit d'aquest botó. Si coincideix, es realitza una operació relativa utilitzant les funcions adequades que es donen al codi.
bucle buit () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); retard (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);
