Buenas a todos Arduineros y Arduineras!!!
Hace un tiempo que quería hacer este ejemplo ya que considero que puede tener muchas posibilidades. Aunque en este ejemplo solo vamos a leer los códigos de un mando a distancia, lo bueno es que puede ser casi cualquier mando a distancia tanto de TV, DVD, etc. Con esto ¿qué podemos hacer? Podemos, por ejemplo, encender luces conectadas a relés, subir y bajar unas persianas, abrir una puerta... en fin todo lo que se os pueda ocurrir.
Librería IRremote
Para realizar este ejemoplo solo vamos a necesitar la librería llamada IRremote.hAVISO: esta librería me ha dado problemas ya que se supone que ya viene incluida en el IDE de Arduino, pero no se por que no funciono, leyendo en foros descubrí que la mejor solución es reinstalar la librería.
Para esto lo primero que tenemos que hacer es eliminar estos archivos que están alojados en las rutas:
libraries\RobotIRremote\IRremoteTools.cpp
y
libraries\RobotIRremote\IRremoteTools.h
Estos archivos están alojados en la carpeta de librerías de Arduino IDE que no es la misma que la carpeta donde se alojan las librerías que cargamos nosotros al añadir una librería comunes.

Dicho esto, solo nos queda conectar el receptor de infrarrojos en Arduino y comenzar a recibir datos de nuestro mando. Para conectarlo hay que mirar que tipo de IR tenemos, en nuestro caso es el VS1838B y la numeración de sus pines es:
- 1 - OUT
- 2 - GND
- 3 - VSS (+5v)
A la hora de crear el ejemplo en Fritzing solo me deja este tipo de sensor IR que en lo único que se diferencia es en la posición de las conexiones.
Una vez tenemos esto abrimos el IDE de Arduino y empezamos con este sencillo programa:
#include "IRremote.h"
// Declarar Constantes
const int receiverPin = 11;
// Declarar objetos
IRrecv irrecv(receiverPin); // Creamos una instancia para 'irrecv'
decode_results results; // Creamos una instancia para 'decode_results'
void setup()
{
Serial.begin(115200);
Serial.println(F("Lector de infrarojos Infotronikblog"));
// Activar el receptor
irrecv.enableIRIn();
}
// Función principal
void loop()
{
// Cuando recibe una señal IR
if (irrecv.decode(&results))
{
// Imprime el código de cada botón
Serial.println(results.value, HEX);
// Recibe el siguiente valor
irrecv.resume();
delay(100);
}
}
Salida del monitor serial con el IDE de Arduino
Como se puede observar en la salida del monitor serial tendremos un código diferente para cada tecla del control remoto.
Otros articulos relacionados que te pueden interesar:
- Ver Arduino infrarrojos 4 relés desde Github
- Arduino Ejemplos: El modulo NRF2401 comunicación bidireccional
Saludos!!!
mas incendiao la casa
ResponderEliminarCon el mando a distancia?
Eliminar