ESP32 - Keypad 1x4

In deze gids ontdekken we hoe u een 1x4 keypad gebruikt met een ESP32. We behandelen:

ESP32 Keypad 1x4

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Toetsenbord 1x4
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Keypad 1x4

Een 1x4 keypad bestaat uit vier membraanknoppen die in een rij zijn geplaatst. Het wordt vaak gebruikt om gebruikers toe te staan gegevens in te voeren, zoals wachtwoorden, menu’s te navigeren of apparaten te bedienen.

Pinout

De 1x4 keypad heeft 5 pinnen. De volgorde van deze pinnen komt niet overeen met de volgorde van de toetslabels.

  • Pin 1: verbonden met toets 2
  • Pin 2: verbonden met toets 1
  • Pin 3: verbonden met toets 4
  • Pin 4: verbonden met toets 3
  • Pin 5: verbonden met alle toetsen en is de gemeenschappelijke pin
Keypad 1x4 Pinout
image source: diyables.io

Bedradingsschema

ESP32 Keypad 1x4 Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code

Elke toets van de 1x4 keypad functioneert als een knop. Dit stelt ons in staat om de functie digitalRead() te gebruiken om de status van elke toets te controleren. Maar, net als bij andere knoppen, kunnen deze toetsen 'bouncen'. Dit betekent dat één enkele druk mogelijk als meerdere drukken wordt geregistreerd. Om dit op te lossen, moeten we elke toets 'debouncen'. Dit voor vier toetsen doen zonder andere delen van de code te onderbreken kan lastig zijn. Gelukkig maakt de ezButton bibliotheek dit eenvoudiger.

#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; }

Snelle Stappen

  • Als dit de eerste keer is dat u een ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in de Arduino IDE.
  • Verbind de ESP32 met de 1x4 keypad.
  • Verbind de ESP32 met uw pc via een USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijvoorbeeld ESP32 Dev Module) en de corresponderende COM-poort.
  • Ga naar het Libraries-icoon in de linkerzijbalk van Arduino IDE.
  • Zoek op “ezButton” en vind de knopbibliotheek van ArduinoGetStarted.com
  • Klik op de Installeren-knop om de ezButton bibliotheek te installeren.
Arduino button library
  • Kopieer de code en open deze in Arduino IDE
  • Klik op de Upload-knop in Arduino IDE om de code naar de ESP32 te uploaden
  • Open de Serial Monitor
  • Druk op elke toets op de 1x4 keypad
  • Controleer de resultaten in de Serial Monitor
COM6
Send
1 2 3 4
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!