Keypad 4×4 με Arduino

Μάθετε πως μπορείτε να χρησιμοποιήσετε το keypad 4x4 για arduino

Σε αυτό το tutorial θα δούμε την λειτουργία ενός keypad 4×4 με arduino. Πρόκειται για ένα keypad το οποίο έχει πλήκτρα αριθμητικά, σύμβολα και γράμματα.

Συγκεκριμένα έχει αριθμούς από το 0 έως 9, #, *, A, B, C, D τα οποία μπορούμε να πιέσουμε και να ελέγξουμε την ροή του προγράμματός μας.

Τα πληκτρολόγια η keypad είναι ένας πολύ ωραίος τρόπος αλληλεπίδρασης μεταξύ των χρηστών και του προγράμματος.

Υπάρχουν διαφορετικά Keypad τα οποία αν καλοσκεφτείτε είναι στην ουσία διακόπτες όπου πιέζοντας κάποιο πλήκτρο, στην πραγματικότητα κλείνετε έναν διακόπτη.

4×4 Πληκτρολόγιο Arduino

Μπορούμε για παράδειγμα να ενεργοποιήσουμε μία κλειδαριά ή ένα φως, μετά από επιτυχή εισαγωγή ενός μυστικού κωδικού.

Πως λειτουργεί το Πληκτρολόγιο arduino 4×4 ;

Πριν μπούμε στο project θα πρέπει να καταλάβουμε πως ακριβώς λειτουργεί το συγκεκριμένο keypad 4×4 για arduino και πως μπορούμε να βρούμε ποια καλώδια αντιστοιχούν σε κάθε αριθμό, σύμβολο ή χαρακτήρα.

Αν δεν υπήρχε η βιβλιοθήκη που θα χρησιμοποιήσουμε παρακάτω για το πληκτρολόγιο μας, τα πράγματα θα ήταν ζόρικα.

Θα έπρεπε να σκεφτούμε με βάση το παρακάτω διάγραμμα ποιες επαφές κλείνουν σε κάθε πάτημα πλήκτρου. Σίγουρα θα χρειαζόμασταν περισσότερες εισόδους προς το Arduino.

Διάγραμμα διακοπτών στο πληκτρολόγιο

To project

Θα χρησιμοποιήσουμε το πληκτρολόγιο για να εισάγουμε έναν κωδικό ο οποίος θα ανοίγει μία ηλεκτρική πόρτα, ενεργοποιώντας ένα ρελέ. Ο χρήστης θα έχει τη δυνατότητα να εισάγει τον κωδικό με μόνο τρεις προσπάθειες. Θα υπάρχουν τρία LED και σε κάθε αποτυχημένη προσπάθεια θα ανάβει και από ένα.

Αν ο χρήστης εισάγει τον κωδικό 3 φορές λάθος το σύστημα κλειδώνει, και ξεκλειδώνει μόνο με τον κωδικό του διαχειριστή.

Όταν ο χρήστης θα δώσει τον σωστό κωδικό θα ανάψει ένα πράσινο LED το οποίο υποδηλώνει ότι η πόρτα έχει ανοίξει.

Και με αυτό το σκεπτικό θα φτιάξουμε ένα πληκτρολόγιο με arduino

Υλικά

  • Arduino (οποιαδήποτε έκδοση, στο βίντεο χρησιμοποιούμε mega 2560)
  • 2x LED
  • 2x Αντιστάσεις 330Ω
  • καλώδια
  • Keypad 4×4
  • Breadboard

Αν έχετε αντιστάσεις αλλά δεν ξέρετε την τιμή τους, μπορείτε να

Το σχέδιο

Παρακάτω είναι το σχέδιο που πρέπει να υλοποιήσετε αν θέλετε να κάνετε ακριβώς το πρόγραμμα που φαίνεται στο βίντεο. Έχει φτιαχτεί με την εφαρμογή Fritzing την οποία μπορείτε να κατεβάσετε από εδώ.

Σχέδιο Fritzing

Κώδικας

Θα χρησιμοποιήσουμε μία βιβλιοθήκη η οποία μας επιτρέπει να χρησιμοποιήσουμε τα πλήκτρα με έναν πιο εύκολο τρόπο στον κώδικα.

Την βιβλιοθήκη μπορείτε να την κατεβάσετε από το παρακάτω link και να την εισάγετε στο Arduino.

Για να την εισάγετε, στο Arduino IDE ακολουθήστε

Σχέδιο > Συμπερίληψη βιβλιοθήκης > Προσθήκη βιβλιοθήκης ZIP

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
    {'1','2','3', 'A'},
    {'4','5','6', 'B'},
    {'7','8','9', 'C'},
    {'*','0','#', 'D'}
};

byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
String password;
String correctpassword="1333*";
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
int unlockLed = 10;
int lockLed = 11; 

void setup(){
    Serial.begin(9600);
    Serial.println("Type Password, then press * to Unlock");
    pinMode(unlockLed, OUTPUT);
    pinMode(lockLed, OUTPUT);
    digitalWrite(lockLed, HIGH);
}

void loop(){
    char key = keypad.getKey();
    if (key) {
        Serial.print(key);
        password += String(key);
    }
    if (key == '*')
    {
      Serial.println();
      if (password==correctpassword)
      {
        Serial.println("Password Correct!!");
        digitalWrite(lockLed, LOW);
        delay(150);
        digitalWrite(unlockLed, HIGH);
        Serial.println("AutoLocking door in 5sec");
        delay(5000);
        password="";
        digitalWrite(unlockLed, LOW);
        delay(150);
        digitalWrite(lockLed, HIGH);
      }
      else
      {
        Serial.println("Wrong Password, try again");
        password="";
        digitalWrite(unlockLed, LOW);
        delay(150);
        digitalWrite(lockLed, HIGH);
      }
    }
}
28 Σεπτεμβρίου, 2020

1 απαντήσεις σε "Keypad 4x4 με Arduino"

  1. θα βοηθούσε πολύ αν τα σχόλια στον κώδικα ήταν στα Ελληνικά
    Ευχαριστώ πολύ.

Αφήστε ένα σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται.

Σχεδιασμός © GetCert. Με επιφύλαξη παντός δικαιώματος.