ESP32 - Teclado 1x4

Neste guia, vamos descobrir como usar um teclado 1x4 com um ESP32. Vamos ver:

ESP32 com Teclado 1x4

Sobre o Teclado 1x4

Um teclado 1x4 tem quatro botões de membrana alinhados em uma linha. Ele é muito usado para permitir que os usuários insiram dados, como senhas, naveguem em menus ou controlem dispositivos.

Pinagem

O teclado 1x4 tem 5 pinos. A ordem desses pinos não corresponde à ordem dos rótulos das teclas.

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

Diagrama de Ligação

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

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Código ESP32

Cada tecla do teclado 1x4 funciona como um botão. Isso nos permite usar a função digitalRead() para verificar o estado de cada tecla. Mas, assim como outros botões, essas teclas podem sofrer 'bounce' (trepidação). Isso significa que um único toque pode ser detectado como vários toques. Para corrigir isso, precisamos fazer o debounce de cada tecla. Fazer isso para quatro teclas sem interromper outras partes do código pode ser difícil. Felizmente, a biblioteca ezButton facilita esse trabalho.

#include <ezButton.h> #define KEY_NUM 4 // the number of keys #define PIN_KEY_1 26 // The ESP32 pin GPIO26 connected to the key 1 #define PIN_KEY_2 25 // The ESP32 pin GPIO25 connected to the key 2 #define PIN_KEY_3 14 // The ESP32 pin GPIO14 connected to the key 3 #define PIN_KEY_4 27 // The ESP32 pin GPIO27 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

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
  • Conecte o ESP32 ao teclado 1x4.
  • Conecte a placa ESP32 ao seu PC por meio de um cabo USB
  • Abra a Arduino IDE no seu PC.
  • Selecione a placa ESP32 correta (ex.: ESP32 Dev Module) e a porta COM.
  • Vá até o ícone Libraries na barra esquerda da Arduino IDE.
  • Pesquise “ezButton” e encontre a biblioteca de botão de ArduinoGetStarted.com
  • Clique no botão Install para instalar a biblioteca ezButton.
Biblioteca de botão para Arduino
  • Copie o código e abra-o na Arduino IDE
  • Clique no botão Upload na Arduino IDE para enviar o código ao ESP32
  • Abra o Serial Monitor
  • Pressione cada tecla do teclado 1x4
  • Confira os resultados no Serial Monitor
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
1 2 3 4
Ln 11, Col 1
ESP32 Dev Module 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!