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
Sistemas de Automação Residencial:
Controle de iluminação com feedback visual
Monitoramento de dispositivos acionados
Prototipagem Industrial:
Painéis de status para máquinas
Indicação visual de processos
Educação Tecnológica:
Ensino de lógica de programação
Introdução a interfaces homem-máquina
Variações e Melhorias
Adicionar Menu Interativo:
Usar um encoder rotativo para selecionar LEDs
Implementar Temporizadores:
Exibir contagem regressiva para desligamento automático
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
Postar um comentário