Arduino Nano ESP32 - Teclado

Este tutorial mostra como usar o Arduino Nano ESP32 com um teclado. Em detalhes, vamos aprender:

Sobre o Teclado

Teclado

O teclado é composto por um grupo de botões organizados em uma matriz (linhas e colunas). Um botão representa uma tecla. Existem muitos tipos de teclado. O teclado 3x4 (12 teclas) e o teclado 4x4 (16 teclas) são os dois mais usados em projetos DIY.

Pinagem do Teclado

Os pinos do teclado são divididos em dois grupos: linha e coluna.

  • O teclado 3x4 tem 7 pinos:
    • R1, R2, R3, R4: pinos de linha
    • C1, C2, C3: pinos de coluna
  • O teclado 4x4 tem 8 pinos:
    • R1, R2, R3, R4: pinos de linha
    • C1, C2, C3, C4: pinos de coluna
    Pinagem do Teclado

    Como o Teclado Funciona

    Veja como o teclado funciona

Diagrama de Ligação entre o Teclado e o Arduino Nano ESP32

Diagrama de ligação do teclado com Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32

Teclado 3x4

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Teclado 4x4

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3, D2}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
  • Abra o Library Manager clicando no ícone Library Manager na barra de navegação à esquerda da Arduino IDE
  • Digite keypad na caixa de pesquisa e procure a biblioteca de teclado de Mark Stanley, Alexander Brevig
  • Clique no botão Install para instalar a biblioteca de teclado.
Biblioteca de teclado do Arduino Nano ESP32
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça upload do código para a placa Arduino Nano ESP32 clicando no botão Upload na Arduino IDE
  • Abra o Serial Monitor na Arduino IDE
Como abrir o Serial Monitor na Arduino IDE
  • Pressione algumas teclas do teclado
  • Veja o resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
1 2 3 4 * #
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Teclado e Senha

O teclado é muito usado para autenticar alguém por senha. Neste tutorial, uma senha válida é definida previamente no código. Quando um usuário digita a senha no teclado, ela é comparada com a senha predefinida:

  • Se for igual, o acesso é concedido.
  • Se não for, o acesso é negado.

Para usar senha com o teclado, especificamos duas teclas especiais:

  • Uma tecla para começar a digitar a senha. Por exemplo, a tecla "*"
  • Uma tecla para terminar de digitar a senha. Por exemplo, a tecla "#"

A senha digitada por um usuário será armazenada em uma string, chamada de string da senha digitada. Quando uma tecla é pressionada:

  • Se a tecla digitada for "*", limpe a string da senha digitada para começar uma nova senha
  • Se a tecla digitada NÃO for "*" nem "#", adicione a tecla à string da senha digitada.
  • Se a tecla digitada for "#", compare a string da senha digitada com a senha predefinida.

Teclado - Código da Senha

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 3 // three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {D9, D8, D7, D6}; // The Arduino Nano ESP32 pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {D5, D4, D3}; // The Arduino Nano ESP32 pin connected to the column pins of the keypad Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // change your password here String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // clear input password } else if (key == '#') { if (password == input_password) { Serial.println("The password is correct, ACCESS GRANTED!"); // DO YOUR WORK HERE } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }
  • Execute o código acima
  • Abra o Serial Monitor na Arduino IDE
Como abrir o Serial Monitor na Arduino IDE
  • Pressione as teclas "123456" e pressione "#"
  • Pressione as teclas "7890" e pressione "#"
  • Veja o resultado no Serial Monitor. Ele fica como abaixo:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!