terça-feira, 27 de junho de 2017

Programa controle de LCD com controle remoto de TV

      Pessoal, este programa pode controlar um display lcd a partir de um controle remoto comum de tv. Um exemplo da montagem do circuito sem o led está a baixo:
 Resultado de imagem para arduino display i2c

A principio, estamos usando apenas 4 teclas do controle, sendo que as teclas 4 e 3 ligam e desligam um led conectado na porta pwm 3 do arduino. Veja o sketch:

// Programa controle remoto de tv com display LCD no arduino;

int brilho = 0;
int tempo = 5;
int estado = 1;
float tencao = 0;

// PARAMETROS DO LCD ****************************************

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADOR 0x3F // <<
#define BACKLIGHT_PIN 3
#define En 2
#define Rw 1
#define Rs 0
#define D4 4
#define D5 5
#define D6 6
#define D7 7
LiquidCrystal_I2C lcd(I2C_ADOR,En,Rw,Rs,D4,D5,D6,D7);

// **********************************************************

#include <IRremote.h>

int RECV_PIN = 13;
int  comando = 0;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  lcd.begin (16,2);
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
  irrecv.enableIRIn(); // Start the receiver
}

void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, DEC);
    comando = results.value, DEC;
    Serial.print("Comando = ");
    Serial.println(comando);

// Inicio dos if's das teclas do controle:


  if(comando == -32641)
  {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Voce apertou a");
  lcd.setCursor(0,1);
  lcd.print("tecla 1 ");
  lcd.setCursor(15,1);
  //lcd.blink();
  }
   
   if(comando == 16575)
  {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Voce apertou a");
  lcd.setCursor(0,1);
  lcd.print("tecla 2");
  lcd.setCursor(15,1);
  //lcd.blink();
  }
   
  if(comando == -16321)
  {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Voce apertou a");
  lcd.setCursor(0,1);
  lcd.print("tecla 3");
  lcd.setCursor(15,1);
  //lcd.blink();
  }

if(comando == 8415)
  {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Tecla 4");
  lcd.setCursor(0,1);
  lcd.print("led ligado");
  lcd.setCursor(15,1);
  //lcd.blink();
  analogWrite(3,255);
  }

if(comando == -24481)
  {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Tecla 5");
  lcd.setCursor(0,1);
  lcd.print("led desligado");
  lcd.setCursor(15,1);
  //lcd.blink();
  analogWrite(3,0);
  }
   
  irrecv.resume(); // Receive the next value
   
  }
  delay(100);
}

Nenhum comentário:

Postar um comentário