Crie um Menu Controlado por Encoder Rotativo no LCD Nokia 5110 com Arduino UNO
Componentes e Materiais
- Arduino UNO
- Encoder Rotativo
- LCD Nokia 5110
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Neste tutorial, aprendemos a construir nosso próprio menu para o popular display LCD Nokia 5110, tornando nossos projetos mais amigáveis e capazes.
O projeto exibe um menu simples no display. Com o encoder rotativo, navego para cima/baixo e seleciono itens pressionando o botão central. Ao pressionar, outra tela aparece para alterar o valor de uma variável. Pressionando novamente, volto ao menu principal. O menu tem 6 itens, com rolagem automática (exibem-se 3 por vez). Assista ao vídeo anexo para ver o funcionamento. Você pode modificá-lo para menus mais complexos.
Passo 1: Obtenha Todas as Peças
- Arduino Uno
- Display LCD Nokia 5110
- Encoder Rotativo
- Protoboard pequena
- Fios
Custo total inferior a $10. Links na descrição do vídeo.
Passo 2: Display LCD Nokia 5110
Meu display favorito para projetos Arduino. Originalmente tela de celular, usa controlador PCD8544 (CMOS de baixo consumo). Consome apenas 0.4mA ligado (backlight desligado) e <0.06mA em modo sleep! Interface serial facilita uso com Arduino (apenas 8 fios). Custo ~$4.
Passo 3: Encoder Rotativo
Dispositivo eletromecânico que converte posição angular em código digital. Usado em controles industriais, robótica, mouses, etc. Este encoder barato tem botão embutido (5 fios). Custo ~$1.50.
Passo 4: Montando o Projeto
Display: Reset→D3, D2→D4, D3→D5, D4→D11, D5→D13. VCC→3.3V Arduino. Backlight→D7 (controle por software). GND→GND.
Encoder: GND→GND, VCC→3.3V, SW→A2, DT→A1, CLK→A0.
Diagrama esquemático disponível na descrição do vídeo.
Passo 5: O Código do Projeto
Usamos 4 bibliotecas:
A função drawMenu() desenha o menu na tela, chamada a cada poucos ms. Variáveis globais importantes:
page: qual tela UI está ativa (1=menu principal, 2=ajuste de variável)menuitem: item selecionado (1=primeiro item destacado)frame: qual parte do menu aparece (6 itens, 3 visíveis por vez)
Variáveis para itens do menu facilitam personalização:
String menuItem1 = "Contraste";
String menuItem2 = "Volume";
String menuItem3 = "Idioma";
String menuItem4 = "Dificuldade";
String menuItem5 = "Luz: LIGADA";
String menuItem6 = "Reset";
boolean backlight = true; int contrast = 60; int volume = 50;
String language[3] = {"EN", "ES", "EL"}; int selectedLanguage = 0;
String difficulty[2] = {"FÁCIL", "DIFÍCIL"}; int selectedDifficulty = 0;
No loop(), chamamos drawMenu(), lemos encoder e verificamos botão. Navegação: encoder muda menuitem, botão altera page. Na tela secundária, encoder ajusta valor da variável. Código tem ~400 linhas, complexo mas compreensível na prática.
Passo 6: Testando o Projeto
Carregando o código, o menu funciona: navegação com eixo do encoder, seleção com botão. Ótimo para tornar projetos mais amigáveis!
Melhorias futuras: usar interrupções em vez de polling constante, reduzindo consumo e limpando código. Vídeo sobre interrupções em breve.
Código
Trecho de Código #2
String menuItem1 = "Contraste";
String menuItem2 = "Volume";
String menuItem3 = "Idioma";
String menuItem4 = "Dificuldade";
String menuItem5 = "Luz: LIGADA";
String menuItem6 = "Reset";
boolean backlight = true; int contrast = 60; int volume = 50;
String language[3] = {"EN", "ES", "EL"}; int selectedLanguage = 0;
String difficulty[2] = {"FÁCIL", "DIFÍCIL"}; int selectedDifficulty = 0;
Links GitHub
Processo de manufatura
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Construa um Osciloscópio Arduino de 20 kHz em LCD Nokia 5110 – Guia DIY Fácil
- Crie Animações e Jogos Envolventes em LCD com Arduino UNO
- Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
- Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
- Servidor Web Arduino Uno WiFi: Controle LED via Navegador
- Construa um Voltímetro DIY com Arduino e Display Nokia 5110 – Guia Passo a Passo
- Roda de Medição Precisa DIY com Arduino Nano e Encoder Rotativo
- Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR
- Construa um Rádio FM Compacto com Arduino Nano e RDA5807M