Ir ao conteúdo
  • Cadastre-se

Código IDE Arduino com LCD e IR


MicSG
Ir à solução Resolvido por .if,

Posts recomendados

  • Membro VIP

Olá.

Tive a ideia de controlar se o LCD  liga ou não o backlight por um controle remoto. Meu LCD está junto de um conversor I2C. Fiz as ligações carreguei o código e o LCD ligou. Apertei ao botão do controle remoto e o backlight do LCD acendeu mas ao apertar novamente para a luz do LCD desligar não aconteceu nada.

O código está abaixo:

 

#include <Wire.h> //INCLUSÃO DE BIBLIOTECA

#include <LiquidCrystal_I2C.h> //INCLUSÃO DE BIBLIOTECA
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); //ENDEREÇO DO I2C E DEMAIS INFORMAÇÕES

#include <IRremote.h>            // Biblioteca IRemote
int RECV_PIN = 11;                                 // Arduino pino D11 conectado no Receptor IR
IRrecv irrecv(RECV_PIN);                           // criando a instância
decode_results results;                            // declarando os resultados


int funcaoa = 0; // valor instantaneo enviado pelo botão
int funcaob = 0; // valor guardado

int botao = 0;
int estado=0; // guarda o valor 0 ou 1 (HIGH ou LOW)
 
void setup(){
 Serial.begin(9600); 
 lcd.begin (16,2); //SETA A QUANTIDADE DE COLUNAS(16) E O NÚMERO DE LINHAS(2) DO DISPLAY
 irrecv.enableIRIn();                             // Inicializa a recepção de códigos 
}
 
void loop(){

 results.value = 0;
  if (irrecv.decode(&results))                     // se algum código for recebido
  {
    Serial.println(results.value, HEX);            // imprime o HEX Code
    irrecv.resume();                               // reinicializa o receptor
  }
funcaoa= botao; // ler o valor enviado pelo botão: "HIGH" ou "LOW"

if (results.value == 0x2FD807F) //POWER
  {
    botao = HIGH;
  }
  
 if ((funcaoa == HIGH) && (funcaob == LOW))
 {
 estado = 1 - estado;
 delay(500); // 
 }
 
 funcaob=funcaoa;
 if (estado == 1) 
 {
 lcd.setBacklight(HIGH); //LIGA O BACKLIGHT (LUZ DE FUNDO)
 }
 
 else 
 {
  lcd.setBacklight(LOW); //LIGA O BACKLIGHT (LUZ DE FUNDO)
 }
}

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Isadora Ferraz Deu certo. Valeu.

Agora o código ficou assim:

 

#include <Wire.h> //INCLUSÃO DE BIBLIOTECA

#include <LiquidCrystal_I2C.h> //INCLUSÃO DE BIBLIOTECA
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); //ENDEREÇO DO I2C E DEMAIS INFORMAÇÕES

#include <IRremote.h>            // Biblioteca IRemote
int RECV_PIN = 11;                                 // Arduino pino D11 conectado no Receptor IR
IRrecv irrecv(RECV_PIN);                           // criando a instância
decode_results results;                            // declarando os resultados
boolean estado;

void setup(){
 Serial.begin(9600); 
 lcd.begin (16,2); //SETA A QUANTIDADE DE COLUNAS(16) E O NÚMERO DE LINHAS(2) DO DISPLAY
 irrecv.enableIRIn();                             // Inicializa a recepção de códigos 
}

void loop()
{
results.value = 0;
  if (irrecv.decode(&results))                     // se algum código for recebido
  {
    Serial.println(results.value, HEX);            // imprime o HEX Code
    irrecv.resume();                               // reinicializa o receptor
  }
if (results.value == 0x2FD807F) estado^=1;{//POWER
lcd.setBacklight(estado);
}
}

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!