//mando a distancia por IR capaz de controlar un display
//Desarrollado por DLM
#include <IRremote.h> //llamar a la librería del contol remoto por IR
#include <LiquidCrystal.h> //Incluir la librería del display
#define PIN_RECEIVER 2 // Definimos el Pin para recibir del sensor IR (2)
IRrecv receiver(PIN_RECEIVER); //Asignamos IR receptor lo que entra por 2
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //Comando para asignar los pines del display: //(RS, RW, E, D4,D5, D6, D7)
void setup() //Función que solo se realiza una vez al inicido del programa
{
lcd.begin(16, 2); //Comienzo del display con 16 columnas y 2 filas
lcd.print("<Presiona boton>"); //Escriba en el LCD: Presiona botón
receiver.enableIRIn(); // Comando para comienzo del receptor IR
}
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(); //borra pantalla
lcd.setCursor(1, 0); //posicionar en columna 1, fila 0
lcd.print("Boton pulsado:"); //escribe "Boton 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 " code: "
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;
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");
}
}