O LCD Keypad Shield é um módulo integrado que emprega toda a praticidade dos shields, de um display 16×2 e de um conjunto de pequenos botões push buttons que são utilizados para navegar em menus na diretamente na tela, com funções selecionar e resetar.
A utilização junto ao Arduino é muito simples, dispensando a utilização de complicadas redes de jumpers e conectores, basta conectar o shield sobre a placa Uno e o display estará pronto para utilização. Um único produto reproduz a funcionalidade de três, ocupando mínimo espaço físico.
Devido ao LCD Keypad Shield com botões ser conectado diretamente sobre a face superior do Arduino a possibilidade de falhas nas ligações é nula, além de evitar interrupções de imagens devido a pequenas vibrações no microcontrolador ou na base onde ele encontra-se localizado.
Abaixo estaremos realizando um pequeno teste para demonstrar um pouco da funcionalidade do Shield LCD 16×2, onde criaremos um menu demonstrativo, controlando assim, o backlight do display.
Vídeo do LCD Keypad Shield em Funcionamento
Produtos utilizados Projeto LCD Keypad Shield com Arduino
Para montagem desse projeto são necessários apenas dois produtos, sem necessidade de qualquer tipo de adaptação ou material externo.
Código de Programação
O biblioteca do LCD Keypad Shield, tem a função de exibir um menu de navegação que através do botão SELECT proporciona a escolha de uma das opções apresentadas junto ao display.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
// ALARME COM ARDUINO E SENSOR ULTRASSONICO // USINAINFO https://www.usinainfo.com.br // FACEBOOK https://www.facebook.com/usinainfo.arduino // YOUTUBE https://www.youtube.com/usinainfo // INSTAGRAM @usinainfo #include <LiquidCrystal.h> // Inclui biblioteca "LiquidCristal.h" LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Define Pinos do Display int Menu = 0; // Inicializa valores para Menu int estado = 0; // Inicializa valores para estado void setup() { lcd.begin(16, 2); // Estabelece caracteres do display clearPrintTitle(); } void loop() { MenuPrincipal(); } void MenuPrincipal() { int ValEstado = 0; // Inicializa valores para ValEstado int x = analogRead (0); lcd.setCursor(0,0); // Posiciona Cursor if (x < 80) { // Define valores máximos para UP em ValEstado = 1 } else if (x < 200) { ValEstado = 1; } else if (x < 400){ // Define valores máximos para Down em ValEstado = 2 ValEstado = 2; } else if (x < 600){ // Define ação nula para Left } else if (x < 800){ // Define valores máximos para Select em ValEstado = 3 ValEstado = 3; } if (Menu < 0 || Menu > 4) { Menu = 0; } if (ValEstado != estado) { if (ValEstado == 1) { Menu = Menu - 1; displayMenu(Menu); } else if (ValEstado == 2) { Menu = Menu + 1; displayMenu(Menu); } else if (ValEstado == 3) { selectMenu(Menu); } estado = ValEstado; } delay(5); } void displayMenu(int x) { switch (x) { case 1: clearPrintTitle(); lcd.print ("---> Item 1 <---"); // Imprime na tela a opção do Menu break; case 2: clearPrintTitle(); lcd.print ("---> Item 2 <---"); // Imprime na tela a opção do Menu break; case 3: clearPrintTitle(); lcd.print ("---> Item 3 <---"); // Imprime na tela a opção do Menu break; case 4: clearPrintTitle(); lcd.print ("---> Item 4 <---"); // Imprime na tela a opção do Menu break; } } void clearPrintTitle() { lcd.clear(); lcd.setCursor(0,0); lcd.print(" UsinaInfo "); lcd.setCursor(0,1); } void selectMenu(int x) { switch (x) { case 1: clearPrintTitle(); lcd.print ("Selec. Item 1"); // Imprime na tela opção escolhida break; case 2: clearPrintTitle(); lcd.print ("Selec. Item 2"); // Imprime na tela opção escolhida break; case 3: clearPrintTitle(); lcd.print ("Selec. Item 3"); // Imprime na tela opção escolhida break; case 4: clearPrintTitle(); lcd.print ("Selec. Item 4"); // Imprime na tela opção escolhida break; } } |
Conclusão
Após experimentar este exclusivo produto, capaz de reunir todas as funcionalidade de um Display LCD 16×12 em modelo Shield e com uma quantia considerável de botões que podem ser programados de forma independente, agora está na hora de explorar suas funcionalidades, desenvolva um sistema de controle manual com menus interativos e tudo isto de forma simples, rápida e prática com este simples produto.
O limite para os seus projetos é você mesmo quem faz, uma boa ideia com o produto ideal pode se tornar um belo projeto capaz de impressionar a todos e facilitar a sua vida, com o projeto correto você pode melhorar sua qualidade de vida, melhorar a segurança de sua casa e se divertir com diferentes esquemas de entretenimento.
Ola. Fiz um projeto utilizando este shield lcd, mas agora estou precisando das borrachas dos botoes para colocar no Case. Sabe onde encontro? Obrigado
Bom dia Airton!
Infelizmente desconhecemos a comercialização somente da borracha do pushbutton, comumente o mesmo é comercializado somente na sua forma completa.
Olá, sobra algum pino do arduino para outra aplicação? Por exemplo, leitura de um sinal analógico.
Sim, alguns pinos acabam por não ser utilizados e possuem um local no shield específico que possibilita até a soldagem e uma barra de pinos extra para fácil utilização dos mesmos, os pinos que sobram para utilização são os pinos digitais 0, 1, 2, 3, 11, 12 e 13, pinos analógicos A1, A2, A3, A4 e A5 e pinos de alimentação 5V, 3.3V e GND.
Bom Dia… Excelente a demonstração e o projeto de acionamento dos relês. Inclui neste projeto, um LCD 20 x 4 onde apresenta os comandos, o nome da assinatura, enfim tudo funcionando perfeitamente. Somente ainda não descobri, como fazer funcionar quando desligo o cabo USB e ligo a placa numa fonte, pois aí os comandos não são carregados, mas se voltar a ligar o cabo USB tudo volta ao normal. Vcs teriam alguma dica ?
Boa Tarde Paulo!
Parabéns pelas adaptações, infelizmente não havíamos nos deparado com este problema quando realizamos o desenvolvimento do referente projeto. Ao conectar o USB, o código tem que ser gravado novamente? Tente realizar a alimentação via fonte quando com o USB conectado e após remova-o para verificar se funciona. Se for o caso é algum problema na reinicialização do código. Verifique também a corrente da fonte se é adequada ao projeto.