- Explicación de trabajo:
- Decodificación de señales de control remoto IR usando Arduino:
- Descripción del circuito:
- Descripción del código:
Anteriormente, hemos cubierto muchos tipos de automatizaciones del hogar utilizando diferentes tecnologías como la automatización del hogar basada en DTMF, la automatización del hogar controlada por PC usando Arduino y la automatización del hogar controlada por Bluetooth. En este proyecto, utilizamos la comunicación inalámbrica basada en infrarrojos para controlar los electrodomésticos. En este proyecto, Arduino se utiliza para controlar todo el proceso. Enviamos algunos comandos al sistema de control utilizando el control remoto IR TV / DVD / MP3 para controlar los electrodomésticos de CA. Después de recibir la señal del control remoto IR, Arduino envía la señal relacionada a los relés que son responsables de encender o apagar los electrodomésticos a través de un controlador de relé.
Explicación de trabajo:
El funcionamiento de este proyecto es fácilmente comprensible. Cuando presionamos cualquier botón del control remoto IR, el control remoto envía un código en forma de tren de pulsos codificados usando una frecuencia de modulación de 38Khz. Estos pulsos son recibidos por el sensor TSOP1738 y leídos por Arduino y luego Arduino decodifica el tren de pulso recibido en un valor hexadecimal y compara ese valor decodificado con el valor hexadecimal predefinido del botón presionado. Si ocurre alguna coincidencia, Arduino realiza una operación relativa y el resultado correspondiente también se muestra en la pantalla LCD de 16x2 utilizando los comandos apropiados. Aquí en este proyecto hemos utilizado 3 bombillas de diferentes colores, para demostración que indica Ventilador, Luz y TV.
Hay muchos tipos de control remoto IR disponibles para diferentes dispositivos, pero la mayoría de ellos funcionan con una señal de frecuencia de 38 KHz. Aquí, en este proyecto, controlamos los electrodomésticos mediante el control remoto de TV IR. Para detectar la señal remota por infrarrojos, utilizamos el receptor de infrarrojos TSOP1738. Este sensor TSOP1738 puede detectar una señal de frecuencia de 38 kHz. El funcionamiento del control remoto por infrarrojos y el TSOP1738 se puede cubrir en detalle en este artículo: Transmisor y receptor de infrarrojos
Componentes:
- Arduino UNO
- TSOP1738
- Control remoto de TV / DVD por infrarrojos
- ULN2003
- Relés 5 voltios
- Bombilla con soporte
- Cables de conexión
- Tabla de pan
- LCD de 16x2
- Fuente de alimentación
- PVT
- IC 7805
Aquí, en este proyecto, hemos utilizado los botones numéricos 7, 8 y 9 del control remoto IR, para controlar el ventilador, la luz y la TV respectivamente, y el botón ON / OFF (botón de encendido) se usa para encender y apagar todos los aparatos simultáneamente.
Aquí hemos utilizado el método de alternancia para ENCENDER y APAGAR un solo electrodoméstico. Método de alternancia No es más que conseguir que si se presiona el botón ni siquiera un número de veces o un número impar de veces. Esto se encuentra al recibir el recordatorio después de dividirlo por 2 (i% 2), si hay algún recordatorio, el dispositivo se encenderá y si el recordatorio es 0, se apagará. Supongamos que se presiona la tecla 7 en el control remoto y luego el control remoto envía una señal a Arduino a través del receptor de infrarrojos TSOP. Luego, Arduino lo decodifica y almacena el valor decodificado en la variable de resultados. Ahora la variable de resultados tiene un valor hexadecimal 0x1FE00FF, después de emparejarlo con el valor hexadecimal predefinido de la clave 7 (ver imagen de arriba), Arduino enciende el ventilador. Ahora, cuando presionamos la misma tecla (tecla 7) nuevamente, IR envía el mismo código. Arduino obtiene el mismo código y coincide con el mismo código que antes, pero esta vez el ventilador se apagó debido a que alteró el bit (i% 2).
Decodificación de señales de control remoto IR usando Arduino:
Aquí hay una lista de códigos de salida decodificados remotos tipo DVD NEC:
Si no conoce la salida decodificada para su control remoto por infrarrojos, puede encontrarla fácilmente, simplemente siga estos pasos:
- Descargue la biblioteca remota IR desde aquí
- Descomprímalo y colóquelo en la carpeta 'Bibliotecas' de Arduino. Luego cambie el nombre de la carpeta extraída a IRremote.
- Ejecute el siguiente programa desde su Arduino y abra la ventana Serial Monitor en Arduino IDE. Ahora presione cualquier botón de control remoto por infrarrojos y vea la salida hexadecimal decodificada correspondiente en la ventana del monitor en serie.
* IRremote: IRrecvDemo - demuestra la recepción de códigos IR con IRrecv * Debe conectarse un detector / demodulador IR a la entrada RECV_PIN. * Versión 0.1 Julio de 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
El programa anterior está tomado de la carpeta de 'ejemplos' de la biblioteca de IRremote, puede ver más ejemplos para aprender más sobre el uso del control remoto IR. Así es como decodificamos la salida remota IR.
Descripción del circuito:
Las conexiones de este circuito son muy simples, aquí se usa una pantalla de cristal líquido para mostrar el estado de los electrodomésticos que están conectados directamente a arduino en modo de 4 bits. Los pines de datos de la pantalla LCD, a saber, RS, EN, D4, D5, D6, D7, están conectados al pin digital arduino número 6, 7, 8, 9, 10, 11. Y el pin de salida de TSOP1738 está conectado directamente al pin digital número 14 (A) de Arduino. Y el pin Vcc está conectado a +5 voltios y el pin GND conectado al terminal de tierra del circuito. Un controlador de relé, a saber, ULN2003, también se utiliza para activar relés. Los relés SPDT 3 de 5 voltios se utilizan para controlar LUZ, VENTILADOR y TV. Y los relés están conectados al pin arduino número 3, 4 y 5 a través del controlador de relé ULN2003 para controlar la LUZ, el VENTILADOR y la TV respectivamente.
Descripción del código:
En la programación de parte de este proyecto En primer lugar en la programación, incluimos una biblioteca para el control remoto IR que está fácilmente disponible en Google. Y definir pin y declarar variables.
#incluir
Y luego incluimos un encabezado para la pantalla de cristal líquido y luego definimos los pines de control y datos para LCD y electrodomésticos.
#incluir
Después de eso, necesitamos inicializar la pantalla LCD y dar la dirección de los pines que se usan para ventilador, luz y TV.
configuración vacía () {Serial.begin (9600); lcd.begin (16,2); pinMode (ventilador, SALIDA); pinMode (Luz, SALIDA); pinMode (TV, SALIDA);
Como ya se explicó, a continuación parte del código se utiliza para comparar el valor hexadecimal recibido con el código hexadecimal ya definido de ese botón. Si coincide, se realiza una operación relativa utilizando las funciones apropiadas que se proporcionan en el código.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); retraso (100); lcd.setCursor (0,0); lcd.print ("TV con luz de ventilador"); if (resultados.valor == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Ventilador, x);