Ir ao conteúdo

Código IDE Arduino com LCD e IR


Ir à solução Resolvido por .if,

Posts recomendados

  • Membro VIP
Postado

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)
 }
}

  • Membro VIP
  • Solução
Postado

Vejamos se entendi e uma minimalização
 

boolean estado;
void loop()
{
//...
if (results.value == 0x2FD807F) estado^=1;//POWER
lcd.setBacklight(estado);
//...
}

😁

 

 

 

  • Curtir 1
  • Membro VIP
Postado

@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

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!