🔢 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:

  1. O display exibe "Digite a senha:"

  2. O usuário digita 4 números no teclado

  3. Se a senha estiver correta, o sistema libera o acesso e aciona o servo (ou simula a abertura)

  4. Senha errada: mostra "Acesso negado" e reinicia

  5. Feedback visual na tela durante toda a operação


📘 Biblioteca necessária:

Para usar o teclado, você precisa da biblioteca:


Keypad.h

para o servo ,voce precisa da biblioteca

#include <Servo.h>

Você pode instalar pela IDE do Arduino:
Sketch > Incluir Biblioteca > Gerenciar Bibliotecas... > Pesquisar por "Keypad"

observar o servo e aposiaça fechada






✅ 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! ⏰🏠📟



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