// 06/08/2025
// IR Control Fortune Messages
// Arduino
// MJ
#include <IRremote.h>
#include <LiquidCrystal.h>
#define RECV_PIN 8
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int IrValue, dt=650;
String msg1 = "Una sonrisa abrira\npuertas cerradas hoy.";
String msg2 = "La paciencia es la\nclave del exito total.";
String msg3 = "Una gran idea puede\ncambiar tu destino.";
String msg4 = "Hoy es el dia ideal\npara empezar de cero.";
String msg5 = "Las respuestas llegan\ncuando menos esperas.";
String msg6 = "Tu energia positiva\ninspira a otros.";
String msg7 = "Un viaje inesperado\nte cambiara la vida.";
String msg8 = "Aprovecha cada error\ncomo una leccion.";
String msg9 = "La suerte favorece a\nlos que se esfuerzan.";
String msg0 = "Hoy recibirás una\nbuena noticia.";
void setup(){
IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK);
lcd.begin(16, 2);
Serial.begin(9600);
Serial.println("Welcome Matthias | Circuito de la Fortuna");
Serial.println("Ponga a prueba su día, y descubra lo que le depara el destino hoy.");
lcd.setCursor(0, 0);lcd.print(" Circuito de");
lcd.setCursor(0, 1);lcd.print(" la Fortuna");
delay(800);
}
void loop(){
lcd.clear();
while(IrReceiver.decode()==0){
lcd.setCursor(0, 0);lcd.print("Waiting ... ");
lcd.setCursor(14, 1);lcd.print("MJ");
}
lcd.clear();
lcd.print("Fortuna dice: ");
delay(dt);
IrValue=IrReceiver.decodedIRData.command;
Serial.print("Decoded: ");
Serial.print(IrValue);
if (IrValue == 48) { // Boton 1
Serial.println(" | Button 1.");
showMessage(msg1);
} else if (IrValue == 24) { // Boton 2
Serial.println(" | Button 2.");
showMessage(msg2);
} else if (IrValue == 122) { // Boton 3
Serial.println(" | Button 3.");
showMessage(msg3);
} else if (IrValue == 16) { // Boton 4
Serial.println(" | Button 4.");
showMessage(msg4);
} else if (IrValue == 56) { // Boton 5
Serial.println(" | Button 5.");
showMessage(msg5);
} else if (IrValue == 90) { // Boton 6
Serial.println(" | Button 6.");
showMessage(msg6);
} else if (IrValue == 66) { // Boton 7
Serial.println(" | Button 7.");
showMessage(msg7);
} else if (IrValue == 74) { // Boton 8
Serial.println(" | Button 8.");
showMessage(msg8);
} else if (IrValue == 82) { // Boton 9
Serial.println(" | Button 9.");
showMessage(msg9);
} else if (IrValue == 0) { // Boton 0
Serial.println(" | Button 0.");
showMessage(msg0);
} else {
lcd.setCursor(0, 1);
Serial.println(" | E R R O R");
lcd.print("Error Code 500");
delay(dt);
}
IrReceiver.resume();
}
void showMessage(String msg){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(msg.substring(0, 16));
lcd.setCursor(0,1);
lcd.print(msg.substring(16));
delay(dt);
for(int i=0; i<8; i++){
lcd.scrollDisplayLeft();
delay(125);
}
for(int i=0; i<8; i++){
lcd.scrollDisplayRight();
delay(125);
}
}