Arduino - Teclado 1x4

Neste tutorial, vamos aprender a usar um teclado 1x4 com um Arduino. Em detalhes, vamos aprender:

Arduino Teclado 1x4

Sobre o Teclado 1x4

Um teclado 1x4 é formado por quatro botões de membrana organizados em uma única linha. Ele é muito usado para entrada do usuário em projetos como digitação de senha, navegação em menus ou interfaces de controle.

Pinagem

O teclado 1x4 tem 5 pinos, que não correspondem diretamente aos rótulos das teclas em ordem. Especificamente:

  • Pino 1: conecta à tecla 2
  • Pino 2: conecta à tecla 1
  • Pino 3: conecta à tecla 4
  • Pino 4: conecta à tecla 3
  • Pino 5: é um pino comum que conecta a todas as teclas
Pinagem do Teclado 1x4
image source: diyables.io

Diagrama de Ligação

Diagrama de Ligação do Arduino com Teclado 1x4

This image is created using Fritzing. Click to enlarge image

Código Arduino

Cada tecla do teclado 1x4 funciona como um botão. Isso significa que podemos usar a função digitalRead() para verificar o estado de cada tecla. Porém, na prática, como em qualquer botão, precisamos lidar com o problema do bouncing (trepidação), em que um único toque pode ser detectado por engano como vários toques. Para evitar isso, precisamos fazer o debounce de cada tecla. Essa tarefa fica difícil quando tentamos fazer o debounce de quatro teclas sem bloquear outras partes do código. Felizmente, a biblioteca ezButton simplifica esse processo.

#include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 3 // The Arduino pin connected to the key 1 #define PIN_KEY_2 2 // The Arduino pin connected to the key 2 #define PIN_KEY_3 5 // The Arduino pin connected to the key 3 #define PIN_KEY_4 4 // The Arduino pin connected to the key 4 ezButton keypad_1x4[] = { ezButton(PIN_KEY_1), ezButton(PIN_KEY_2), ezButton(PIN_KEY_3), ezButton(PIN_KEY_4) }; void setup() { Serial.begin(9600); for (byte i = 0; i < KEY_NUM; i++) { keypad_1x4[i].setDebounceTime(100); // set debounce time to 100 milliseconds } } void loop() { int key = getKeyPressed(); if (key) { Serial.print("The key "); Serial.print(key); Serial.println(" is pressed"); } } int getKeyPressed() { for (byte i = 0; i < KEY_NUM; i++) keypad_1x4[i].loop(); // MUST call the loop() function first for (byte i = 0; i < KEY_NUM; i++) { // get key state after debounce int key_state = keypad_1x4[i].getState(); // the state after debounce if (keypad_1x4[i].isPressed()) return (i + 1); } return 0; }

Passos Rápidos

  • Conecte o Arduino ao teclado 1x4
  • Conecte o Arduino ao PC por meio do cabo USB
  • Abra o Arduino IDE, selecione a placa e a porta corretas
  • Vá até o ícone Libraries na barra esquerda do Arduino IDE.
  • Pesquise “ezButton” e encontre a biblioteca de botão da ArduinoGetStarted.com
  • Clique no botão Install para instalar a biblioteca ezButton.
Biblioteca de botão para Arduino
  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Abra o Serial Monitor
  • Pressione as teclas do teclado 1x4 uma por uma
  • Veja o resultado no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
1 2 3 4
Ln 11, Col 1
Arduino Uno on COM15
2

※ 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!