Arduino UNO R4 - Keypad 1x4

In deze handleiding leren we hoe u een 1x4 keypad met een Arduino UNO R4 gebruikt. We behandelen:

Arduino UNO R4 Keypad 1x4

Over Keypad 1x4

Een 1x4 keypad heeft vier knoppen op een rij. Het wordt gebruikt voor het invoeren van codes, navigeren door menu's, of het besturen van interfaces in verschillende projecten.

Pinout

Het 1x4 keypad heeft 5 pinnen. Deze pinnen zijn niet in dezelfde volgorde gerangschikt als de labels op de toetsen.

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

Bedraderingsschema

Arduino UNO R4 Keypad 1x4 Bedraderingsschema

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

Arduino UNO R4 Code

Elke toets op het 1x4 keypad werkt als een knop. We kunnen de digitalRead() functie gebruiken om te controleren hoe elke toets wordt ingedrukt. Maar net als bij elke knop, hebben we het probleem van bouncing - waarbij een enkele druk er uit kan zien als meerdere drukken. Om dit op te lossen, moeten we elke toets debounce. Het debounce van vier toetsen zonder andere delen van de code te stoppen kan lastig zijn. Gelukkig maakt de ezLink library dit eenvoudiger.

#include <ezButton.h> #define KEY_NUM 4 // The number of keys #define PIN_KEY_1 3 // The Arduino UNO R4 pin connected to the key 1 #define PIN_KEY_2 2 // The Arduino UNO R4 pin connected to the key 2 #define PIN_KEY_3 5 // The Arduino UNO R4 pin connected to the key 3 #define PIN_KEY_4 4 // The Arduino UNO R4 pin connected to the key 4 ezButton keypad_1x4[KEY_NUM] = { 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++) { int key_state = keypad_1x4[i].getState(); // the state after debounce if (keypad_1x4[i].isPressed()) return (i + 1); } return 0; }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg dan de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Verbind Arduino UNO R4 met een 1x4 keypad volgens het meegeleverde schema.
  • Verbind het Arduino Uno R4 board met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 board (bijv. Arduino Uno R4 WiFi) en COM-poort.
  • Klik op het Libraries pictogram aan de linkerkant van de Arduino IDE.
  • Type "ezButton" in het zoekvak, en zoek de button library geleverd door "ArduinoGetStarted.com".
  • Druk op de Install knop om de ezButton library toe te voegen.
Arduino UNO R4 button library
  • Kopieer de code en open deze met Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 te verzenden
  • Open Serial Monitor
  • Druk op elke toets van het 1x4 keypad
  • Controleer de resultaten op 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!