Πίνακας περιεχομένων:

Χρήση αριθμητικών πληκτρολογίων με Arduino: 4 βήματα
Χρήση αριθμητικών πληκτρολογίων με Arduino: 4 βήματα

Βίντεο: Χρήση αριθμητικών πληκτρολογίων με Arduino: 4 βήματα

Βίντεο: Χρήση αριθμητικών πληκτρολογίων με Arduino: 4 βήματα
Βίντεο: «Μαθαίνω & Διδάσκω Προγραμματισμό με Python» 2024, Νοέμβριος
Anonim
Χρήση αριθμητικών πληκτρολογίων με Arduino
Χρήση αριθμητικών πληκτρολογίων με Arduino

Τα αριθμητικά πληκτρολόγια μπορούν να παρέχουν μια απλή εναλλακτική λύση τελικού χρήστη για διάφορες διεπαφές για τα έργα σας. 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 - τα πάντα για κατασκευαστές και λάτρεις των ηλεκτρονικών ειδών, με δωρεάν παράδοση σε όλο τον κόσμο.

Συνιστάται: