Πίνακας περιεχομένων:
- Βήμα 1: Ξεκινώντας
- Βήμα 2: Χρήση πληκτρολογίου 12 ψηφίων
- Βήμα 3: Χρήση πληκτρολογίου 16 ψηφίων
- Βήμα 4: Παράδειγμα έργου - Σύστημα πρόσβασης PIN
Βίντεο: Χρήση αριθμητικών πληκτρολογίων με Arduino: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Τα αριθμητικά πληκτρολόγια μπορούν να παρέχουν μια απλή εναλλακτική λύση τελικού χρήστη για διάφορες διεπαφές για τα έργα σας. Or αν χρειάζεστε πολλά κουμπιά, μπορούν να σας εξοικονομήσουν πολύ χρόνο σε σχέση με την κατασκευή. Θα συνεχίσουμε να τις συνδέουμε, χρησιμοποιώντας τη βιβλιοθήκη Arduino και στη συνέχεια θα ολοκληρώσουμε με ένα χρήσιμο σκίτσο παραδείγματος.
Βήμα 1: Ξεκινώντας
Από όπου και αν προμηθευτείτε τα πληκτρολόγιά σας, βεβαιωθείτε ότι μπορείτε να λάβετε το φύλλο δεδομένων - καθώς αυτό θα διευκολύνει τη ζωή όταν τα συνδέετε. Για παράδειγμα - η εικόνα σε αυτό το βήμα.
Το φύλλο δεδομένων είναι σημαντικό καθώς θα σας πει ποιες ακίδες ή συνδέσεις στο πληκτρολόγιο είναι για τις γραμμές και τις στήλες. Εάν δεν έχετε το φύλλο δεδομένων - θα πρέπει να καθορίσετε μη αυτόματα ποιες επαφές είναι για τις γραμμές και τις στήλες.
Αυτό μπορεί να γίνει χρησιμοποιώντας τη λειτουργία συνέχειας ενός πολύμετρου (του βομβητή). Ξεκινήστε τοποθετώντας έναν αισθητήρα στον πείρο 1, τον άλλο αισθητήρα στον ακροδέκτη 2 και πατήστε τα πλήκτρα ένα προς ένα. Σημειώστε πότε ένα κουμπί ολοκληρώνει το κύκλωμα και μετά μεταβείτε στον επόμενο πείρο. Σύντομα θα μάθετε ποιο είναι ποιο. Για παράδειγμα, στο παράδειγμα οι ακίδες 1 και 5 είναι για το κουμπί "1 ″, 2 και 5 για" 4 ″, κλπ …
Σε αυτό το σημείο, κάντε λήψη και εγκατάσταση της βιβλιοθήκης του πληκτρολογίου Arduino. Τώρα θα δείξουμε πώς να χρησιμοποιήσετε και τα δύο πληκτρολόγια σε απλά παραδείγματα.
Βήμα 2: Χρήση πληκτρολογίου 12 ψηφίων
Θα χρησιμοποιήσουμε το μικρό μαύρο πληκτρολόγιο, ένα μη συμβατό με Arduino και μια οθόνη LCD με διεπαφή I2C για σκοπούς προβολής. Εάν δεν έχετε LCD, μπορείτε πάντα να στείλετε το κείμενο στη σειριακή οθόνη.
Συνδέστε την οθόνη LCD και, στη συνέχεια, συνδέστε το πληκτρολόγιο στο Arduino με τον ακόλουθο τρόπο: Γραμμή πληκτρολογίου 1 σε ψηφιακό Arduino σειρά 5 Πληκτρολόγιο σειρά 2 σε ψηφιακό Arduino 4 Σειρά πληκτρολογίου 3 σε ψηφιακό Arduino 3 Σειρά πληκτρολογίου 4 σε ψηφιακή Arduino ψηφιακή στήλη 1 2 σε ψηφιακό Arduino 8 Στήλη πληκτρολογίου 2 έως Arduino digital 7Keypad στήλη 3 έως Arduino digital 6 Εάν το πληκτρολόγιό σας είναι διαφορετικό από το δικό μας, λάβετε υπόψη τις γραμμές στο σκίτσο από:
// ορισμός τύπου πληκτρολογίου
Όπως πρέπει να αλλάξετε τους αριθμούς στις συστοιχίες rowPins [ROWS] και colPins [COLS]. Εισάγετε τους αριθμούς ψηφιακών ακίδων που είναι συνδεδεμένοι με τις γραμμές και τις στήλες του πληκτρολογίου αντίστοιχα.
Επιπλέον, τα πλήκτρα πίνακα αποθηκεύουν τις τιμές που εμφανίζονται στην οθόνη LCD όταν πιέζεται ένα συγκεκριμένο κουμπί. Μπορείτε να δείτε ότι το ταιριάξαμε με το φυσικό πληκτρολόγιο που χρησιμοποιήθηκε, ωστόσο μπορείτε να το αλλάξετε σε ό, τι χρειάζεστε. Αλλά προς το παρόν, εισαγάγετε και ανεβάστε το ακόλουθο σκίτσο μόλις είστε ικανοποιημένοι με τις εκχωρήσεις αριθμών σειράς/καρφιτσών:
/ * Αριθμητικό πληκτρολόγιο και I2C LCD https://tronixstuff.com Χρησιμοποιεί τη βιβλιοθήκη πληκτρολογίου για το Arduino https://www.arduino.cc/playground/Code/Keypad από τον Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // for I2C LCD #include "LiquidCrystal_I2C.h" // for I2C bus LCD module // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C LCD (0x27, 16, 2); // ρυθμίστε τη διεύθυνση LCD σε 0x27 για οθόνη 16 χαρακτήρων και 2 γραμμών
// ορισμός τύπου πληκτρολογίου
const byte ROWS = 4; // τέσσερις σειρές const byte COLS = 3; // τρεις στήλες πλήκτρα char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // σύνδεση με τα pinouts των γραμμών του πλήκτρου byte του πληκτρολογίου colPins [COLS] = {8, 7, 6}; // σύνδεση με τα pinouts στηλών του πληκτρολογίου
int count = 0;
Πληκτρολόγιο πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κλειδιά), rowPins, colPins, ROWS, COLS);
void setup ()
{lcd.init (); // αρχικοποιήστε το lcd lcd.backlight (); // ενεργοποιήστε τον οπίσθιο φωτισμό LCD}
κενός βρόχος ()
{char key = keypad.getKey (); if (κλειδί! = NO_KEY) {lcd.print (κλειδί); μετρά ++; if (count == 17) {lcd.clear (); μετρά = 0; }}}
Και τα αποτελέσματα του σκίτσου εμφανίζονται στο βίντεο. Έτσι, τώρα μπορείτε να δείτε πώς τα πατήματα κουμπιών μπορούν να μεταφραστούν σε δεδομένα για χρήση σε ένα σκίτσο. Θα επαναλάβουμε τώρα αυτήν την επίδειξη με το μεγαλύτερο πληκτρολόγιο.
Βήμα 3: Χρήση πληκτρολογίου 16 ψηφίων
Θα χρησιμοποιήσουμε το μεγαλύτερο πληκτρολόγιο 4 × 4, ένα Arduino Uno-συμβατό και για αλλαγή της I2C LCD από το Akafugu για σκοπούς προβολής. Και πάλι, εάν δεν έχετε LCD, μπορείτε πάντα να στείλετε το κείμενο στη σειριακή οθόνη. Συνδέστε την οθόνη LCD και, στη συνέχεια, συνδέστε το πληκτρολόγιο στο Arduino με τον ακόλουθο τρόπο:
- Σειρά πληκτρολογίου 1 (καρφίτσα οκτώ) στο Arduino digital 5
- Γραμμή πληκτρολογίου 2 (pin 1) στο Arduino digital 4
- Γραμμή πληκτρολογίου 3 (pin 2) στο Arduino digital 3
- Γραμμή πληκτρολογίου 4 (pin 4) στο Arduino digital 2
- Στήλη πληκτρολογίου 1 (pin 3) στο Arduino digital 9
- Στήλη πληκτρολογίου 2 (pin 5) στο Arduino digital 8
- Στήλη πληκτρολογίου 3 (pin 6) στο Arduino digital 7
- Στήλη πληκτρολογίου 4 (pin 7) στο Arduino digital 6
Τώρα για το σκίτσο - σημειώστε πώς έχουμε προσαρμοστεί για το μεγαλύτερο αριθμητικό πληκτρολόγιο: η επιπλέον στήλη στα πλήκτρα char του πίνακα η επιπλέον καρφίτσα στον πίνακα colPins και το byte COLS = 4.
/ * Αριθμητικό πληκτρολόγιο και I2C LCD https://tronixstuff.com Χρησιμοποιεί τη βιβλιοθήκη πληκτρολογίου για το Arduino https://www.arduino.cc/playground/Code/Keypad από τον Mark Stanley, Alexander Brevig */
#include "Keypad.h"
#include "Wire.h" // για I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal LCD (12, 11, 5, 4, 3, 2).
const byte ROWS = 4; // τέσσερις σειρές
const byte COLS = 4; // τέσσερις στήλες char char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // σύνδεση με τα pinout των σειρών των πλήκτρων byte του πληκτρολογίου colPins [COLS] = {9, 8, 7, 6}; // σύνδεση με τα pinouts στηλών του πληκτρολογίου int count = 0;
Πληκτρολόγιο πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κλειδιά), rowPins, colPins, ROWS, COLS);
void setup ()
{Serial.begin (9600); lcd. αρχή (16, 2); lcd.print ("Δοκιμή πληκτρολογίου!"); καθυστέρηση (1000)? lcd.clear (); }
κενός βρόχος ()
{char key = keypad.getKey (); if (κλειδί! = NO_KEY) {lcd.print (κλειδί); Serial.print (κλειδί); μετρά ++; if (count == 17) {lcd.clear (); μετρά = 0; }}}
Και πάλι μπορείτε να δείτε τα αποτελέσματα του παραπάνω σκίτσου στο βίντεο.
Τώρα για ένα παράδειγμα έργου, το οποίο είναι ίσως η πιο ζητούμενη χρήση του αριθμητικού πληκτρολογίου…
Βήμα 4: Παράδειγμα έργου - Σύστημα πρόσβασης PIN
Η πιο ζητούμενη χρήση για ένα αριθμητικό πληκτρολόγιο φαίνεται να είναι μια εφαρμογή τύπου "PIN", όπου το Arduino έχει οδηγίες να κάνει κάτι με βάση τον σωστό αριθμό που έχει εισαχθεί στο πληκτρολόγιο. Το παρακάτω σκίτσο χρησιμοποιεί το υλικό που περιγράφεται για το προηγούμενο σκίτσο και υλοποιεί ένα εξαψήφιο σύστημα εισαγωγής PIN.
Οι ενέργειες που πραγματοποιούνται μπορούν να εισαχθούν στις συναρτήσεις correctPIN () και λάθος PIN (). Και ο κωδικός PIN έχει οριστεί στον πίνακα char PIN του πίνακα [6]. Με λίγη επιπλέον εργασία θα μπορούσατε επίσης να δημιουργήσετε τη δική σας λειτουργία αλλαγής PIN.
// Διακόπτης PIN με 16ψήφιο αριθμητικό πληκτρολόγιο // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal LCD (12, 11, 5, 4, 3, 2).
const byte ROWS = 4; // τέσσερις σειρές
const byte COLS = 4; // τέσσερις στήλες char char [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // συνδεθείτε με τα pinout των γραμμών των byP πληκτρολογίου byP [COLS] = {9, 8, 7, 6}; // σύνδεση με τα pinouts στηλών του πληκτρολογίου
Πληκτρολόγιο πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κλειδιά), rowPins, colPins, ROWS, COLS);
κωδικός PIN [6] = {
"1", "2", "A", "D", "5", "6"}. // η μυστική μας (!) προσπάθεια char char [6] = {'0', '0', '0', '0', '0', '0'}; // χρησιμοποιείται για σύγκριση int z = 0;
void setup ()
{Serial.begin (9600); lcd. αρχή (16, 2); lcd.print ("Κλείδωμα PIN"); καθυστέρηση (1000)? lcd.clear (); lcd.print ("Εισαγάγετε PIN …"); }
void correctPIN () // κάντε αυτό εάν έχει εισαχθεί σωστό PIN
{lcd.print (" * Correct PIN *"); καθυστέρηση (1000)? lcd.clear (); lcd.print ("Εισαγάγετε PIN …"); }
void falsePIN () // κάντε το αν εισαχθεί εσφαλμένο PIN
{lcd.print (" * Δοκιμάστε ξανά *"); καθυστέρηση (1000)? lcd.clear (); lcd.print ("Εισαγάγετε PIN …"); }
void checkPIN ()
{int σωστό = 0; int i? για (i = 0; i <6; i ++) {
εάν (προσπάθεια == PIN )
{σωστό ++; }} if (correct == 6) {correctPIN (); } else {falsePIN (); }
για (int zz = 0; zz <6; zz ++) {προσπάθεια [zz] = '0'; }}
void readKeypad ()
{char key = keypad.getKey (); εάν (κλειδί! = NO_KEY) {προσπάθεια [z] = κλειδί; z ++; διακόπτης (κλειδί) {περίπτωση '*': z = 0; Διακοπή; θήκη '#': z = 0; καθυστέρηση (100)? // για επιπλέον debounce lcd.clear (); checkPIN (); Διακοπή; }}}
κενός βρόχος ()
{readKeypad (); }
Το έργο παρουσιάζεται στο βίντεο.
Έτσι, τώρα έχετε τη δυνατότητα να χρησιμοποιήσετε πληκτρολόγια δώδεκα και δεκαέξι κουμπιών με τα συστήματά σας Arduino. Είμαι βέβαιος ότι θα βρείτε κάτι χρήσιμο και ενδιαφέρον χρησιμοποιώντας τα πληκτρολόγια στο εγγύς μέλλον.
Αυτή η ανάρτηση σας φέρνει το pmdway.com - τα πάντα για κατασκευαστές και λάτρεις των ηλεκτρονικών ειδών, με δωρεάν παράδοση σε όλο τον κόσμο.
Συνιστάται:
Αποστολή αριθμητικών δεδομένων από το ένα Arduino στο άλλο: 16 βήματα
Αποστολή αριθμητικών δεδομένων από το ένα Arduino στο άλλο: Εισαγωγή από τον David Palmer, CDIO Tech. στο Aston University. Χρειάστηκε ποτέ να στείλετε μερικούς αριθμούς από το ένα Arduino στο άλλο; Αυτό το Instructable δείχνει πώς. Μπορείτε εύκολα να δοκιμάσετε ότι λειτουργεί απλά πληκτρολογώντας μια σειρά αριθμών για αποστολή στο S
Σχεδίαση έντασης φωτός με χρήση της Arduino και της Python's Arduino Master Library: 5 βήματα
Σχεδίαση έντασης φωτός με χρήση Arduino και Python's Arduino Master Library: Το Arduino είναι ένα οικονομικό αλλά εξαιρετικά αποδοτικό και λειτουργικό εργαλείο, ο προγραμματισμός του στο Embedded C καθιστά τη διαδικασία των έργων κουραστική! Η μονάδα Arduino_Master της Python απλοποιεί αυτό και μας επιτρέπει να εκτελούμε υπολογισμούς, να αφαιρούμε τιμές σκουπιδιών
Υπέρυθρο θερμόμετρο μη επαφής με βάση το Arduino - Θερμόμετρο IR με χρήση Arduino: 4 βήματα
Υπέρυθρο θερμόμετρο μη επαφής με βάση το Arduino | Θερμόμετρο με βάση το IR χρησιμοποιώντας Arduino: Γεια σας παιδιά σε αυτά τα εκπαιδευτικά θα κάνουμε ένα θερμόμετρο χωρίς επαφή χρησιμοποιώντας arduino. Δεδομένου ότι μερικές φορές η θερμοκρασία του υγρού/στερεού είναι πολύ υψηλή ή πολύ χαμηλή και στη συνέχεια είναι δύσκολο να έρθετε σε επαφή με αυτό και να το διαβάσετε θερμοκρασία τότε σε αυτό το σκηνικό
Οθόνη LCD I2C / IIC - Χρήση LCD SPI στην οθόνη LCD I2C Χρήση μονάδας SPI σε IIC με Arduino: 5 βήματα
Οθόνη LCD I2C / IIC | Χρησιμοποιήστε μια οθόνη SPI στην οθόνη I2C LCD χρησιμοποιώντας μονάδα SPI σε IIC με Arduino: Γεια σας παιδιά, καθώς ένα κανονικό SPI LCD 1602 έχει πάρα πολλά καλώδια για να συνδεθεί, οπότε είναι πολύ δύσκολο να το διασυνδέσετε με το arduino, αλλά υπάρχει μια μονάδα διαθέσιμη στην αγορά που μπορεί μετατρέψτε την οθόνη SPI σε οθόνη IIC, οπότε πρέπει να συνδέσετε μόνο 4 καλώδια
Neopixel Ws2812 Rainbow LED Glow With M5stick-C - Εκτέλεση Rainbow σε Neopixel Ws2812 Χρήση M5stack M5stick C Χρήση Arduino IDE: 5 Βήματα
Neopixel Ws2812 Rainbow LED Glow With M5stick-C | Running Rainbow on Neopixel Ws2812 Using M5stack M5stick C Using Arduino IDE: Γεια σας παιδιά σε αυτά τα εκπαιδευτικά θα μάθουμε πώς να χρησιμοποιούμε LED neopixel ws2812 ή led strip ή led matrix ή led με m5stack m5stick-C πίνακα ανάπτυξης με Arduino IDE και θα φτιάξουμε ένα μοτίβο ουράνιου τόξου με αυτό