18 T Tutorial 18: Módulo Sensor Receptor Infrarrojo KY-005 Encender un Led con tu Control remoto. Objetivo Esta práctica nos permitirá controlar dispositivos conectados a la tarjeta Arduino a través de una interfaz infrarroja y usando el control de la televisión podremos encender las luces, ventiladores, o lo que se te ocurra. Descripción de la práctica. Luego de realizar la conexión realizaremos dos ejemplos, el primero vamos a recibir e interpretar el código que se envía a través del infrarrojo por el control, luego de tener esos datos continuaremos con encender un led presionando un botón del control. Materiales 1 Tarjeta Arduino (Uno, Nano o Mega) 1 Modulo receptor Infrarrojo 1 Control Remoto IR 1 Led
18.1 T Conexión. La conexión es realmente muy sencilla. De esta conexión, usaremos el led hasta el segundo ejemplo, el modulo receptor ya trae indicado sus pines S de signal y para GND por lo que el del medio es vcc(5v) y no hay donde perderse, si el led es de 5v puedes usarlo sin resistencia.
Código. Primera parte En la primera parte lo que tenemos que hacer es recibir el código que envía nuestro control remoto, ya que cada control remoto tiene su propia encriptación y cada botón su propio código, luego convertirlo a hexadecimal, para poder almacenarlo, y posteriormente utilizarlo en el segundo ejemplo, para utilizar el emisor y receptor infrarrojo vamos a necesitar una librería llamada IRremote. Ya anteriormente aprendimos como importar una librería. Por lo que pasaremos de una vez al código. AR 18.2 T Lo primero que debemos hacer es insertar la librea para que podamos usar las funciones especiales de esta. Declaramos el pin donde ira conectado el receptor en este caso el pin 11, Luego declaramos el nombre del receptor 11. Y también declaramos el resultado que recibirá de la lectura del IR quien envía un TRUE cuando recibe una señal y un FALSE cuando no recibe nada, y en caso que recibe algo lo almacena en este caso en la variable Código, a la cual podemos llamar luego.
18.2 T Lo siguiente es declarar la comunicación serial a la velocidad de 9600, podemos usar otras entre los estándares como 115200, pero usaremos la que comúnmente se utiliza, y también vamos a declarar que utilizaremos una receptor y no un transmisor, por lo que ponemos irrecv.enableiriin() Por ultimo ponemos vamos programar la tarea que ejecutara este código. Utilizamos una condición If la lectura del sensor es TRUE entonces que imprima un 0x para completar el hexadecimal y seguidamente que imprima el valor del código, y lo convierta a hexadecimal y que luego de leer se reiniciara para poder capturar un nuevo valor. Luego de esto, vamos a subir el código al Arduino y usaremos un control remoto, presionaremos los botones y recibiremos datos en el monitor serial cada botón envía un código diferente, vamos a guardar el código de los botones 1, 2 y Power los guardamos en un archivo de texto. Para luego utilizarlos.
Segunda parte Ahora que ya tenemos el código de cada uno de los botones guardados, los podemos utilizar para decirle al arduino cuando recibas X botón entonces enciende el led AR 18.3 T Vamos a comenzar de la misma forma que en el primer ejemplo, pero ahora agregamos un led. Luego en la declaración vamos a poner una condición if, al igual que en el ejemplo anterior, pero ahora vamos a usar otro tipo de condiciones Switch case. Esta funciona similar al if, primero declaramos el Switch y la variable a la que se aplicara, luego dentro de ella vamos a dividir los diferentes casos en case y el código. Luego escribimos que el led encienda, y por ultimo finalizamos con un break para pasar al segundo caso. Queriendo decir En el caso de que reciba 0x20DF8877 entonces enciende el led. De esta forma añadimos el próximo caso cerramos el Switch y al final del loop ponemos un irrecv.resumen para borrar y poder leer un nuevo código.
18.4 T Sección de preguntas. 1 Por qué debemos usar la librería IRremote? 2 Para qué sirve la variable IRecv? 3 Para qué sirve la función Switch? 1 La librería IRremote nos facilita el uso de los IR, nos ofrece funciones que vienen con pedazos de código internamente y estas funciones las utilizamos de manera sencilla, haciendo que nuestro código sea más compacto, ahorrándonos muchos procesos. 2 Esta variable nos permite declarar el nombre del receptor infrarrojo para poder llamarlo más adelante. 3 Esta función es similar a If, o While nos permite escribir condiciones y ejecutar tareas en cada caso, de forma sencilla.