Arduino Nano - Teclado

Este tutorial ensina você a conectar o Arduino Nano a um teclado 3x4 e 4x4 e a programá-lo. O tutorial também apresenta o método e o código Arduino para verificar a a senha digitada pelos usuários no teclado.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Teclado 3x4 and 4x4 Kit
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Teclado

Keypad

Um teclado é composto por teclas dispostas em uma matriz. Cada botão individual é chamado de tecla. Existem teclados de vários estilos. Dois dos mais usados em projetos DIY são o teclado 3x4 (12 teclas) e o teclado 4x4 (16 teclas).

Pinagem do Teclado

Os pinos são divididos em duas categorias: linhas e colunas.

  • Um teclado 3x4 tem sete pinos: quatro deles são pinos de linha, identificados como R1, R2, R3 e R4. Os outros três são pinos de coluna, identificados como C1, C2 e C3.
  • Um teclado 4x4 tem 8 pinos: quatro deles são pinos de linha, identificados como R1, R2, R3 e R4. Os outros quatro são pinos de coluna, identificados como C1, C2, C3 e C4.
Keypad pinout

Diagrama de Ligação

The wiring diagram between Arduino Nano and Keypad

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Código Arduino Nano

Código Arduino Nano para Teclado 3x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; 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); } }

Código Arduino Nano para Teclado 4x4

#include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; 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

  • Clique no ícone Libraries na barra à esquerda da Arduino IDE.
  • Pesquise por “keypad” e localize a biblioteca keypad criada por Mark Stanley e Alexander Brevig.
  • Em seguida, pressione o botão Install para concluir a instalação da biblioteca keypad.
Arduino Nano keypad library
  • Copie o código acima e abra-o na Arduino IDE.
  • Clique no botão Upload da Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Abra o Serial Monitor.
  • Pressione algumas teclas do teclado.
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
3 6 9 4 * #
Ln 11, Col 1
Arduino Nano on COM15
2

Teclado e Senha

Um uso comum do teclado é a digitação de senhas. Duas teclas especiais são usadas para isso:

  • Uma tecla para iniciar ou reiniciar a digitação da senha, como a tecla "*"
  • Uma tecla para encerrar a digitação da senha, como a tecla "#"

A senha será uma string formada por todas as teclas, exceto as duas teclas especiais.

Quando uma tecla é pressionada:

  • Se a tecla não for "*" nem "#", adicione a tecla à string de senha digitada pelo usuário.
  • Se a tecla for "#", compare a string digitada pelo usuário com as senhas autorizadas para determinar se a senha digitada está correta e, em seguida, limpe a string de senha digitada pelo usuário.
  • Se a tecla for "*", apague a string de senha digitada pelo usuário.

Teclado - Código de Senha

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-keypad */ #include <Keypad.h> const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 3; // three columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password = "1234"; // 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("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }

Passos Rápidos

  • Execute o código acima.
  • Abra o Serial Monitor.
  • Pressione as teclas "123456" seguidas da tecla "#".
  • Pressione as teclas "1234" seguidas da tecla "#".
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
password is incorrect, try again password is correct
Ln 11, Col 1
Arduino Nano 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!