//mando a distancia por IR capaz de controlar un display
//Desarrollado por DLM
#include <IRremote.h> //Llamar a la librería del control remoto por IR
#include <LiquidCrystal.h> //Incluir la librería del display
#define PIN_RECEIVER 2 //Definimos el Pin para recibir sensor IR (2)
IRrecv receiver(PIN_RECEIVER); //Asignamos IR receptor lo que entra por el Pin 2
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //Comando para asignar los pines del display:
void setup() //Función para realizarse solo una vez al inicio del programa
{
lcd.begin(16, 2); //Cominezo del display con 16 columnas y 2 filas
lcd.print("<Presiona boton>"); //Escribir en el LCD: Presiona botón
receiver.enableIRIn(); // Comando para comienzo del receptor infrarojos
}
void loop() //Función que se repite siempre hasta la desconexión
{
//Si chequeamos el receptor y recibimos señal (funciones que vamos a crear)
if (receiver.decode()) {
translateIR();
receiver.resume();
}
}
void lcdPrint(char* text) //Creamos la función lcdPrint (caracter + un texto)
{
lcd.clear(); //borrar pantalla
lcd.setCursor(1, 0); //posicionar en columna 1, fila 0
lcd.print("Boton pulsado:"); //Escribe botón pulsado
lcd.setCursor(0, 1); //posicionar en columna 0, fila 1
lcd.print(text); //Escribe el texto de la variable text
lcd.print(" codigo:"); //escribe "código"
lcd.print(receiver.decodedIRData.command);
}
void translateIR() //Declaramos la función translateIR
{
//Cambia según lo que reciba a través del sensor IR
switch (receiver.decodedIRData.command) {
case 162: //en caso de que sea 162
lcdPrint("ON"); //Escribe ON
break; //rompe el caso
case 226: //en caso de que sea 226
lcdPrint("MENU"); //Escribe MENU
break; //rompe el caso
case 34:
lcdPrint("TEST");
break;
case 2:
lcdPrint("MAS");
break;
case 194:
lcdPrint("BACK");
break;
case 224:
lcdPrint("PREV.");
break;
case 168:
lcdPrint("PLAY");
break;
case 144:
lcdPrint("NEXT");
break;
case 104:
lcdPrint("num:0");
break;
case 152:
lcdPrint("MENOS");
break;
case 176:
lcdPrint("C");
break;
case 48:
lcdPrint("num:1");
break;
case 24:
lcdPrint("num:2");
break;
case 122:
lcdPrint("num:3");
break;
case 16:
lcdPrint("num:4");
break;
case 56:
lcdPrint("num:5");
break;
case 90:
lcdPrint("num:6");
break;
case 66:
lcdPrint("num:7");
break;
case 74:
lcdPrint("num:8");
break;
case 82:
lcdPrint("num:9");
break;
default:
lcd.clear();
lcd.print(receiver.decodedIRData.command);
lcd.print(" other button");
}
}