Controle de LEDs com Arduino e Exibição de Status em LCD 16x2

 

Controle de LEDs com Arduino e Exibição de Status em LCD 16x2

Introdução

Controlar LEDs enquanto exibe seu status em um display LCD 16x2 é um projeto excelente para aprender sobre saídas digitais, comunicação com periféricos e feedback visual em sistemas embarcados. Este artigo demonstra como criar um sistema onde um LCD exibe o estado ("LIGADO" ou "DESLIGADO") de LEDs controlados por botões ou programação.

O Hardware:

O código:

//--------------------------------------------------------------

//  Aulas Online - Arduino
//  Programa/hardware: 006 - Ligando um LED com status no LCD
//  Autor: Clodoaldo Silva
//  Revisão: 25Abr2020
//---------------------------------------------------------------
//---------------------------------------------------------------
//inclui a biblioteca do LCD
//http://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay
#include <LiquidCrystal.h>
//---------------------------------------------------------------
//---------------------------------------------------------------
//DEFINIÇÕES DO HARDWARE DE DESENVOLVIMENTO
//Entradas
#define Liga A3
#define Desliga A2

//Saídas
#define LED_01 13

//DEFINE PINOS PARA LCD JÁ NA BIBLIOTECA
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
/*
   Respectivamente
   LCD RS pin to digital pin 12
   LCD Enable pin to digital pin 11
   LCD R/W pin to ground
   LCD D4 pin to digital pin 5
   LCD D5 pin to digital pin 4
   LCD D6 pin to digital pin 3
   LCD D7 pin to digital pin 2
*/
//---------------------------------------------------------------
//---------------------------------------------------------------
//Definindo variáveis
bool X = 0; //variável auxiliar
//---------------------------------------------------------------
//---------------------------------------------------------------
void setup()
{
  // Inicializa o LCD com 16 colunas e 2 linhas
  lcd.begin(16, 2);

  //Configurando os pinos definidos como entrada.
  pinMode(Liga, INPUT);
  pinMode(Desliga, INPUT);

  //Configurando os pinos definidos como saídas.
  pinMode(LED_01, OUTPUT);
  //---------------------------------------------------------------
  //---------------------------------------------------------------
  // Mostra informações iniciais no display
  lcd.setCursor(0, 0); //escreve na primeira linha coluna, primeira linha
  lcd.print("Arduino-Online  ");
  delay(2000);
  //---------------------------------------------------------------
}
//---------------------------------------------------------------
//---------------------------------------------------------------

void loop()
{
  if (digitalRead(Liga) == HIGH) // Se a chave estiver pressionada o pino receberá 0.
  {
    X = 1;
  }
  if (X == 1)
  {
    digitalWrite(LED_01, HIGH);
    lcd.setCursor(0, 0);
    lcd.print("LED Ligado....  ");
  }
  if (digitalRead(Desliga) == HIGH)
  {
    X = 0;
  }
  if (X == 0)
  {
    digitalWrite(LED_01, LOW);
    lcd.setCursor(0, 0);
    lcd.print("LED Desligado...");
  }
}

Aplicações Práticas

  1. Sistemas de Automação Residencial:

    • Controle de iluminação com feedback visual

    • Monitoramento de dispositivos acionados

  2. Prototipagem Industrial:

    • Painéis de status para máquinas

    • Indicação visual de processos

  3. Educação Tecnológica:

    • Ensino de lógica de programação

    • Introdução a interfaces homem-máquina


Variações e Melhorias

  1. Adicionar Menu Interativo:

    • Usar um encoder rotativo para selecionar LEDs

  2. Implementar Temporizadores:

    • Exibir contagem regressiva para desligamento automático

  3. Conexão com IoT:

    • Integrar com WiFi/Bluetooth para controle remoto


Conclusão

Este projeto combina conceitos fundamentais de Arduino: saídas digitais, entrada de dados e comunicação com displays. A inclusão do LCD 16x2 eleva a aplicação, permitindo criar sistemas com feedback visual profissional - uma habilidade essencial para projetos mais complexos de automação e robótica.

Desafie-se a expandir: substitua os LEDs por relés para controle de dispositivos de alta potência ou adicione sensores para criar um sistema automático baseado em condições ambientais!

Comentários

Postagens mais visitadas