En este proyecto, aprenderemos a controlar varios de nuestros proyectos de Arduino con un control remoto de TV.
Este proyecto es la continuación de una práctica anterior, realizaremos los mismos ejemplos pero modificados para que funcionen con un control remoto de TV. Recomiendo echar un vistazo a la anterior práctica desde este enlace.
Recordemos que la señal enviada por un control remoto corresponde a un tren de pulsos infrarrojos cada vez que se presiona una tecla. Los pulsos forman un patrón que es único para cada tecla del control, así el dispositivo receptor reconoce dicho patrón y responde a él. Sin embargo, estos trenes de pulsos se envían de forma modulada a través de una onda portadora con el fin de evitar ruido e interferencias. Aquí es donde nacen los protocolos, varios fabricantes han optado por desarrollar el suyo, como Sony, Philips, NEC, Sharp, etc.
Utilizaremos en esta práctica el receptor infrarrojo KY-022, que además de ser un receptor compatible con muchos fabricantes, nos demodula y amplifica la señal recibida, ahorrándonos así un gran trabajo. La conexión con el Arduino es sencilla, el - va al GND del Arduino, VCC se conecta a 5V y el pin de señal (S) se conecta a algún pin digital.
Nuestro primer ejemplo consiste en probar el receptor y el control. La librería que descargamos tiene un ejemplo que nos permite probar controles remotos de distintas marcas, nos muestra el protocolo y también el código específico de cada tecla. El ejemplo se llama "IRrecvDumpV2" y lo abrimos como se ve en la siguiente captura de pantalla:
A través del monitor serie, observamos qué código recibe el Arduino al presionar algunas teclas del control. Sólo se necesita conectar el receptor al Arduino para realizar la prueba
Nuestro segundo ejemplo consiste en controlar 10 LEDs de acuerdo a la señal que llega al receptor y posteriormente al Arduino. Esto se realizará teniendo en cuenta los códigos propios de cada tecla del control. El programa analiza la señal recibida y por medio de un switch-case decide acción qué realizar. El diagrama de conexiones es el siguiente:
Este proyecto es la continuación de una práctica anterior, realizaremos los mismos ejemplos pero modificados para que funcionen con un control remoto de TV. Recomiendo echar un vistazo a la anterior práctica desde este enlace.
Utilizaremos en esta práctica el receptor infrarrojo KY-022, que además de ser un receptor compatible con muchos fabricantes, nos demodula y amplifica la señal recibida, ahorrándonos así un gran trabajo. La conexión con el Arduino es sencilla, el - va al GND del Arduino, VCC se conecta a 5V y el pin de señal (S) se conecta a algún pin digital.
Materiales
- Receptor infrarrojo KY-022
- Control remoto de TV (cualquier marca)
- 10 LEDs de cualquier color
- 10 resistencias de 220 ohms
- 1 servomotor
- Protoboard
- Cables
- Tarjeta Arduino
Nuestro primer ejemplo consiste en probar el receptor y el control. La librería que descargamos tiene un ejemplo que nos permite probar controles remotos de distintas marcas, nos muestra el protocolo y también el código específico de cada tecla. El ejemplo se llama "IRrecvDumpV2" y lo abrimos como se ve en la siguiente captura de pantalla:
Probemos entonces con un control remoto marca Sony como el que se ve a continuación
Los códigos que se obtuvieron de este control se pueden ver a continuación:
Tecla
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
Código
|
0x10
|
0x810
|
0x410
|
0xC10
|
0x210
|
0xA10
|
0x610
|
0xE10
|
0x110
|
Tecla
|
OK
|
Arriba
|
Abajo
|
Izquierda
|
Derecha
|
•
|
0
|
CC
|
Código
|
0xA70
|
0x2F0
|
0xAF0
|
0x2D0
|
0xCD0
|
0x5CE9
|
0x910
|
0xAE9
|
Nuestro segundo ejemplo consiste en controlar 10 LEDs de acuerdo a la señal que llega al receptor y posteriormente al Arduino. Esto se realizará teniendo en cuenta los códigos propios de cada tecla del control. El programa analiza la señal recibida y por medio de un switch-case decide acción qué realizar. El diagrama de conexiones es el siguiente:
El funcionamiento se ve así:
El código de este ejemplo se puede descargar desde aquí: https://drive.google.com/open?id=1tu1FVVdEsO3vIiRBTg46OPOl9xhCoh5P
Nuestro tercer ejemplo consiste en controlar el movimiento de un servo por medio del control remoto. Resulta que si mantenemos presionada cualquier tecla del control, la señal que se recibe corresponde a 0xFFFFFFFF como se vio en el monitor serie, pero justo antes, llega la señal correspondiente a la tecla que se está presionando. Entonces, si queremos saber a qué tecla pertenece la señal 0xFFFFFFFF, debemos mirar la señal inmediatamente anterior recibida. Esto sirve para que se pueda mantener presionada una tecla y hacer girar el servo constantemente hacia la posición deseada.
En este ejemplo, también utilizamos un switch-case para que el programa decida qué acción realizar de acuerdo a la señal recibida. El esquema correspondiente a este ejemplo es el siguiente:
En este ejemplo, también utilizamos un switch-case para que el programa decida qué acción realizar de acuerdo a la señal recibida. El esquema correspondiente a este ejemplo es el siguiente:
El código de este ejemplo se puede descargar desde aquí: https://drive.google.com/open?id=1EOpygKlARPGNj0sfajqw0pX_M-0k5KQj
Hola, me gusta. Como se puede combinar los leds y el servo,Gracias
ResponderBorrar