- Gerar link
- X
- Outros aplicativos
🔢 Aplicação 10 – Cofre Digital com LCD 16x2 e Teclado 4x4
🎯 Objetivo:
Criar um sistema completo com:
-
Teclado matricial 4x4
-
Tela interativa LCD 16x2
-
Entrada de senha personalizada
-
Acesso negado ou liberado com feedback visual
-
Controle de uma saída (como LED ou buzzer para simular abertura)
📦 Materiais necessários:
-
Arduino Uno
-
Display LCD 16x2 com módulo I2C
-
Teclado matricial 4x4
-
servo motor para simular abertura
🔍 Funcionalidade:
-
O display exibe "Digite a senha:"
-
O usuário digita 4 números no teclado
-
Se a senha estiver correta, o sistema libera o acesso e aciona o servo (ou simula a abertura)
-
Senha errada: mostra "Acesso negado" e reinicia
-
Feedback visual na tela durante toda a operação
📘 Biblioteca necessária:
Para usar o teclado, você precisa da biblioteca:
Keypad.hpara o servo ,voce precisa da biblioteca#include <Servo.h>
Você pode instalar pela IDE do Arduino:
Sketch > Incluir Biblioteca > Gerenciar Bibliotecas... > Pesquisar por "Keypad"
✅ Código completo para Arduino:
#include <Keypad.h> #include <Adafruit_LiquidCrystal.h> #include <Servo.h> Adafruit_LiquidCrystal lcd_1(0); Servo servo; // Objeto para controle do servo const int pinoSaida = 13; // Pino onde o servo está conectado String senhaCorreta = "1234"; String senhaDigitada = ""; const byte linhas = 4; const byte colunas = 4; char teclas[linhas][colunas] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pinosLinhas[linhas] = {9, 8, 7, 6}; byte pinosColunas[colunas] = {5, 4, 3, 2}; Keypad teclado = Keypad(makeKeymap(teclas), pinosLinhas, pinosColunas, linhas, colunas); void setup() { lcd_1.begin(16, 2); servo.attach(pinoSaida); servo.write(0); // Posição inicial lcd_1.clear(); lcd_1.print("Digite a senha:"); lcd_1.setCursor(0, 1); } void loop() { char tecla = teclado.getKey(); if (tecla) { if (tecla == '*') { senhaDigitada = ""; lcd_1.clear(); lcd_1.print("Digite a senha:"); lcd_1.setCursor(0, 1); } else if (tecla == '#') { verificarSenha(); } else if (senhaDigitada.length() < 4) { senhaDigitada += tecla; lcd_1.print("*"); } } } void verificarSenha() { lcd_1.clear(); if (senhaDigitada == senhaCorreta) { lcd_1.print("Acesso Liberado"); servo.write(180); // Gira até o final delay(3000); servo.write(0); // Volta à posição inicial } else { lcd_1.print("Acesso Negado"); delay(2000); } senhaDigitada = ""; lcd_1.clear(); lcd_1.print("Digite a senha:"); lcd_1.setCursor(0, 1); }
🧠 O que você aprende com este projeto:
-
Leitura de teclado matricial 4x4
-
Comparação de strings (senha digitada)
-
Uso de LCD como interface segura
-
Controle de saídas com base em senha
🛠️ Expansões possíveis:
-
Mudar a senha dinamicamente via menu
-
Adicionar alarme sonoro em caso de 3 tentativas erradas
-
Usar EEPROM para salvar configurações
-
Exibir animações no LCD durante a digitação
✨ Spoiler do próximo conteúdo:
Prepare-se para algo ainda mais avançado: no próximo conteúdo, vamos unir RTC (Relógio em Tempo Real), teclado e LCD para criar um sistema de agendamento inteligente com hora marcada para ações automáticas. Um passo real rumo à automação doméstica com Arduino! ⏰🏠📟
- Gerar link
- X
- Outros aplicativos
Comentários
Postar um comentário
Faça seu comentário referente a este assunto