Arduino UNO R4 - Keypad 4x4

Deze tutorial leert u hoe u een Arduino UNO R4 met een 4x4 keypad gebruikt. We behandelen de volgende stappen:

Arduino UNO R4 4x4 Keypad

Over 4x4 Keypad

Het keypad heeft 16 membraanknoppen gerangschikt in rijen en kolommen, bekend als een matrix. Elke knop wordt een toets genoemd.

Pinout

Een 4x4 keypad heeft 8 pinnen, verdeeld in twee categorieën: rijen en kolommen.

  • 4 pinnen zijn voor de rijen (R1, R2, R3, R4).
  • 4 pinnen zijn voor de kolommen (C1, C2, C3, C4).
4x4 Keypad Pinout

Bedradingsdiagram

Arduino UNO R4 Keypad 4x4 Bedradingsdiagram

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

#include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1','2','3', 'A'}, {'4','5','6', 'B'}, {'7','8','9', 'C'}, {'*','0','#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup(){ Serial.begin(9600); delay(1000); Serial.println("Keypad 4x4 example"); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); } }

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 opzetten van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Sluit het 4x4 keypad aan op de Arduino Uno R4 volgens het meegeleverde diagram.
  • Verbind de Arduino Uno R4 met uw computer met behulp van 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.
  • Ga naar het Libraries pictogram aan de linkerkant van de Arduino IDE.
  • Typ DIYables_Keypad in het zoekvak en zoek naar de keypad library van DIYables.io.
  • Druk op de Install knop om de keypad library te installeren.
Arduino UNO R4 keypad library
  • Kopieer de bovenstaande code en open deze met de Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino UNO R4 te uploaden.
  • Open de Serial Monitor.
  • Druk op enkele toetsen op het keypad.
  • Controleer de resultaten in de Serial Monitor.
COM6
Send
1 2 3 4 A B C * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Keypad en Wachtwoord

Een veelgebruikte toepassing van een keypad is voor het invoeren van een wachtwoord. In dit geval gebruiken we twee speciale toetsen:

  • Een toets om het invoeren van het wachtwoord te starten of opnieuw te starten. Bijvoorbeeld de "*" toets.
  • Een toets om het invoeren van het wachtwoord te voltooien. Bijvoorbeeld de "#" toets.

Het wachtwoord bestaat uit de andere toetsen, exclusief de twee speciale toetsen. Wanneer een toets wordt ingedrukt:

  • Als de toets niet "*" of "#" is, voeg de toets toe aan het wachtwoord dat de gebruiker invoert.
  • Als de toets "#" is, controleer of het ingevoerde wachtwoord overeenkomt met het ingestelde wachtwoord, en wis vervolgens het ingevoerde wachtwoord.
  • Als de toets "*" is, wis het ingevoerde wachtwoord.

Keypad - Wachtwoord Code

/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-keypad-4x4 */ #include <DIYables_Keypad.h> // DIYables_Keypad library const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns char keys[ROW_NUM][COLUMN_NUM] = { {'1','2','3', 'A'}, {'4','5','6', 'B'}, {'7','8','9', 'C'}, {'*','0','#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // connect to the column pinouts of the keypad DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "1234A"; // change your password here String input_password; void setup(){ Serial.begin(9600); Serial.println("Keypad 4x4 password"); input_password.reserve(32); // maximum input characters is 33, change if needed } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); if(key == '*') { input_password = ""; // clear input password } else if(key == '#') { if(password == input_password) { Serial.println("password is correct"); // DO YOUR WORK HERE } else { Serial.println("password is incorrect, try again"); } input_password = ""; // clear input password } else { input_password += key; // append new character to input password string } } }
  • Voer de bovenstaande code uit.
  • Open de Serial Monitor.
  • Voer de toetsen "1234BC" in en druk vervolgens op "#".
  • Voer de toetsen "1234A" in en druk vervolgens op "#".
  • Controleer de resultaten op de Serial Monitor.
COM6
Send
password is incorrect, try again password is correct
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

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