Menu com Botões no LCD 16x2

🧾 Descrição:

Chegamos à aplicação final desta série com o LCD!
Agora vamos criar um menu interativo com três botões:

  • Um botão para navegar para baixo nas opções,

  • Um botão para navegar para cima,

  • E outro para selecionar a opção desejada.

O display mostrará opções como:

  • "Ver temperatura"

  • "Iniciar motor"

  • "Configurações"

Ao selecionar uma, o LCD exibirá uma mensagem correspondente.


📦 Materiais necessários:

  • Arduino Uno

  • Display LCD 16x2

  • 3 botões (push buttons)

  • 3 resistores de 10k Ohm

  • Protoboard e cabos jumper


🧠 Conceitos abordados:

  • Controle de menus em sistemas embarcados

  • Lógica de seleção com arrays de strings

  • Atualização dinâmica do display LCD

  • Uso de switch-case para ações distintas




💻 Código:


#include <Adafruit_LiquidCrystal.h> Adafruit_LiquidCrystal lcd_1(0); const int botaoCima = 2; const int botaoBaixo = 3; const int botaoSeleciona = 4; String opcoes[] = {"Ver temp.", "Iniciar motor", "Config."}; int indiceAtual = 0; bool menuAtivo = true; void setup() { lcd_1.begin(16, 2); pinMode(botaoCima, INPUT); pinMode(botaoBaixo, INPUT); pinMode(botaoSeleciona, INPUT); atualizarMenu(); } void loop() { if (digitalRead(botaoBaixo) == HIGH) { indiceAtual = (indiceAtual + 1) % 3; atualizarMenu(); delay(300); } if (digitalRead(botaoCima) == HIGH) { indiceAtual = (indiceAtual - 1 + 3) % 3; atualizarMenu(); delay(300); } if (digitalRead(botaoSeleciona) == HIGH) { executarAcao(indiceAtual); delay(500); } } void atualizarMenu() { lcd_1.clear(); lcd_1.setCursor(0, 0); lcd_1.print("Menu:"); lcd_1.setCursor(0, 1); lcd_1.print(opcoes[indiceAtual]); } void executarAcao(int indice) { lcd_1.clear(); switch (indice) { case 0: lcd_1.print("Temp: 24.5 C"); break; case 1: lcd_1.print("Motor Iniciado!"); break; case 2: lcd_1.print("Ajustando..."); break; } delay(2000); atualizarMenu(); }

🔧 Dica de montagem:

  • Siga o mesmo esquema dos exemplos anteriores para os botões com resistores pull-down.

  • Os botões podem ser usados com pinos digitais 2, 3 e 4, e um fio extra pode ser adicionado para GND comum entre eles.


✨ Conclusão da série:

Com esta última aplicação, você agora domina:

  • Leitura de botões,

  • Exibição dinâmica de texto no LCD,

  • Controle de fluxo com menus interativos.








E isso é apenas o começo!


👀 Spoiler do que vem por aí:

🔍 Não perca! No próximo conteúdo, vamos explorar como esse mesmo menu pode ser elevado a um novo nível, com submenus inteligentes, leitura de sensores em tempo real, e até ações de controle direto no hardware. Prepare-se para transformar seu LCD 16x2 em um verdadeiro painel interativo multifunção. Fique por aqui e confira — você vai se surpreender! 💡🔧

⚡️ Não perca! Vai transformar seus projetos em interfaces profissionais de verdade.
Siga o blog e continue nessa jornada com a gente!

Comentários

Postagens mais visitadas deste blog

contador 9999 com pic 16f628

CNC fotos cordenadas x y z dicas

codigo assembler braço mecanico para 5 motores