Configurando controle remoto IR no Arduino com display LCD

Eletrônica

Neste projeto, mostraremos como decodificar os sinais de controle remoto IR de qualquer controle remoto usando o Arduino e o código de exibição no LCD.

Os controles remotos que usamos em nossa casa são basicamente feitos de transmissões IR, por exemplo, controle remoto de TV, controle remoto de DVD, controle remoto de sistema de som etc. Ao decodificar esses sinais podemos saber qual é o código único da chave. Conhecendo os códigos podemos implementar várias aplicações onde podemos controlar com o mesmo controle remoto.

configuração dos pinos

Configuração dos pinos

Esquema de ligação dos pinos

Esquema de ligação

No vídeo a seguir poderá ver todo o processo de ligação dos pinos.


Código Completo



#include<LiquidCrystal.h>
#include <IRremote.h>
 
int RECV_PIN = 6;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(11, 10, 5, 4, 3, 2);
int i=0;

byte Heart[] = {
  B00000,
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000};

byte Z1[] = {
  B01111,
  B00001,
  B00010,
  B00100,
  B01000,
  B01111,
  B00000,
  B00000};

byte Z2[] = {
  B00000,
  B00000,
  B00000,
  B00111,
  B00001,
  B00010,
  B00100,
  B00111};
void setup() {
 lcd.createChar(1, Heart);
  lcd.createChar(2, Z1);
  lcd.createChar(3, Z2);
Serial.begin (9600);
irrecv.enableIRIn();
lcd.begin(16, 2);
lcd.print("Starting System");
delay(2000);
lcd.clear();
lcd.print("System on");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
    lcd.print("Press Button");
lcd.setCursor(0, 1);
    lcd.print("To Get Value");

    
}
void loop(){
  if (irrecv.decode(&results)){
switch(results.value)
     {        
  case 0xF720DF://1 Button
    Serial.print("Button Pressed 1 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 1"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("How Are You");
break;          
  
        
  case 0xF7A05F://2 Button
    Serial.print("Button Pressed 2 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 2"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("What to Do?");
break;              

  case 0xF7609F://3 Button
    Serial.print("Button Pressed 3 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 3"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("Good Morning");
break;

case 0xF7E01F://4 Button
    Serial.print("Button Pressed 4 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 4"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("Good Afternon");
break;

case 0xF710EF://5 Button
    Serial.print("Button Pressed 5 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 5"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("Custom Icon");
break;


case 0xF7906f://6 Button
 Serial.print("Button Pressed 6 Passing Text to LCD");
    lcd.begin(16, 2);
  lcd.print("  I ");
  lcd.write(1);
  lcd.print(" ARDUINO");
  lcd.setCursor(0,1);
  lcd.print("  I sleep ");
  lcd.write(2);
  lcd.write(3);
  break;


     case 0xF7D028://5 Button
    Serial.print("Button Pressed 6 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 6"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("Good Night");
break;


case 0xF750AF://7 Button
    Serial.print("Button Pressed 7 Passing Text to LCD");
    lcd.begin(16, 2);
    lcd.print("Button Press 7"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("Animate Text");
break;

case 0xF7D02F://8 Button
    Serial.print("BLinking");
    
    lcd.begin(16, 2);
    
    lcd.print("BLinking"); // Button 2  
    lcd.setCursor(0, 1);
    lcd.print("    Text    ");
    lcd.noBlink();
    delay(2000);
    lcd.blink();
  delay(2000);

case 0xF730CF://9 Button
    Serial.print("Scroll");
    
    lcd.setCursor(15,0);
  lcd.print("I LOVE");
  delay(500);
  for(i=0;i<20;i++)
  {
    lcd.scrollDisplayLeft();
    delay(150);
  }
  lcd.clear();
  lcd.setCursor(15,0);
  lcd.print("ARDUINO");
  delay(500);
  for(i=0;i<22;i++)
  {
    lcd.scrollDisplayLeft();
    delay(150);
  }
  lcd.clear();


break;
     default:
Serial.print("Undefined code received: 0x");
Serial.println(results.value, HEX);
lcd.begin(16, 2);
    lcd.print("Undefined Button");
  lcd.setCursor(0, 1);
    lcd.print(results.value, HEX);
  break;
}
irrecv.resume();
}
}

Fonte
https://www.hackster.io/agarwalkrishna3009/arduino-text-lcd-display-receive-infrared-remote-code-3f642e
Mais Dicas