Arduino - Keypad 1x4

In deze handleiding leren we hoe u een keypad 1x4 met een Arduino gebruikt. In detail leren we:

Arduino Keypad 1x4

Hardware benodigd

1×Arduino Uno R3
1×USB 2.0-kabel type A/B
1×Toetsenbord 1x4
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

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 één rij gerangschikt zijn. Het wordt vaak gebruikt voor gebruikersinvoer in projecten zoals het invoeren van een toegangscode, menunavigatie of bedieningsinterfaces.

Pinout

De 1x4 keypad heeft 5 pinnen, die niet direct overeenkomen met de toetsenlabels in volgorde. Specifiek:

  • 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: is een gemeenschappelijke pin die met alle toetsen verbonden is
Keypad 1x4 Pinout
image source: diyables.io

Aansluitschema

Arduino Keypad 1x4 Aansluitschema

This image is created using Fritzing. Click to enlarge image

Arduino Code

Elke toets op de 1x4 keypad functioneert als een knop. Dit betekent dat we de functie digitalRead() kunnen gebruiken om de status van elke toets te controleren. Echter, in de praktijk, net als bij elke knop, moeten we rekening houden met het probleem van bouncing (contactschommelingen), waarbij een enkele toetsaanslag per ongeluk als meerdere aanslagen wordt geregistreerd. Om dit te voorkomen moeten we elke toets debounce. Dit is een uitdaging wanneer we vier toetsen moeten debouncen zonder dat andere delen van de code worden geblokkeerd. Gelukkig maakt de ezButton library dit proces eenvoudig.

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

Snelle Stappen

  • Verbind de Arduino met het keypad 1x4
  • Verbind de Arduino met de pc via de USB-kabel
  • Open de Arduino IDE en selecteer de juiste board en poort
  • Navigeer naar het icoon Libraries in de linker balk van de Arduino IDE
  • Zoek naar “ezButton” en vind de button library van ArduinoGetStarted.com
  • Klik op de knop Installeren om de ezButton library te installeren
Arduino knop library
  • Kopieer de bovenstaande code en open deze met de Arduino IDE
  • Klik op de knop Uploaden in de Arduino IDE om de code naar de Arduino te uploaden
  • Open de Seriële Monitor
  • Druk de toetsen op het keypad 1x4 één voor één in
  • Bekijk het resultaat in de Seriële 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!