Arduino - Fechadura de Porta com Teclado
Neste tutorial, vamos aprender a fazer um sistema de fechadura de porta com senha usando teclado e fechadura solenoide.
Quando a porta é destravada com a senha correta, ela permanece destravada por 20 segundos e depois é travada novamente de forma automática. O código Arduino suporta várias senhas.
※ Nota:
Também temos outros tutoriais de sistema de fechadura de porta:
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Teclado e a Fechadura Solenoide
Se você ainda não conhece o teclado e a fechadura solenoide (pinagem, como funciona, como programar...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação
- Arduino - Fechadura de porta com teclado, fechadura solenoide

This image is created using Fritzing. Click to enlarge image
Código Arduino - Sistema de fechadura de porta com senha usando teclado, fechadura solenoide
※ Nota:
O endereço I2C do LCD pode variar de acordo com o fabricante. No código, usamos 0x27, que é o endereço especificado pelo fabricante DIYables
Passos Rápidos
- Conecte o Arduino ao PC via cabo USB
- Abra a Arduino IDE, selecione a placa e a porta corretas
- Vá até o ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise “keypad” e encontre a biblioteca keypad de Mark Stanley, Alexander Brevig
- Clique no botão Install para instalar a biblioteca keypad.

- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no Arduino
- Abra o Serial Monitor
- Pressione as teclas 12345 e pressione #
- Pressione as teclas 1234ABC e pressione #
- Observe o estado da lingueta da fechadura durante 20 segundos.
- Veja o resultado no Serial Monitor
Explicação do Código
As senhas válidas são predefinidas no código Arduino.
Uma string, chamada de string de entrada, é usada para armazenar a senha digitada pelos usuários. No teclado, duas teclas (* e #) são usadas para funções especiais: limpar a senha e finalizar a senha. O sistema funciona da seguinte forma:
- Com exceção das duas teclas especiais, se outra tecla for pressionada, ela é adicionada à string de entrada
- Se * for pressionada, a string de entrada é limpa. Você pode usá-la para começar ou recomeçar a digitar a senha
- Se # for pressionada:
- A string de entrada é comparada com as senhas predefinidas. Se ela corresponder a uma das senhas predefinidas, o relé é controlado para destravar a porta.
- Independentemente de a senha estar correta ou não, a string de entrada é limpa para a próxima digitação
- No código acima, para simplificar, usamos a função delay. É melhor usar millis() em vez de delay(). Veja Como usar millis() em vez de delay()
- Você pode adicionar um buzzer piezo para emitir um bipe sempre que uma tecla do teclado for pressionada.
- Nos códigos acima, a porta é travada novamente após 20 segundos. Você pode substituir isso por um sensor de porta. A porta é travada quando o sensor de porta detecta que ela foi fechada pelo usuário.
- No código acima, as senhas estão fixas no código. Na prática, deveria ser possível adicionar/excluir/alterar senhas dinamicamente por meio de um modo especial. Nesse caso, as senhas devem ser salvas na memória EEPROM. A quantidade de senhas que pode ser salva depende do tamanho da EEPROM. O código ficará complicado. Se você quiser construir um sistema assim, oferecemos um serviço de programação. Fique à vontade para entrar em contato conosco.
※ Nota: