Πλήκτρο: πώς να χρησιμοποιήσετε αυτό το απλό στοιχείο με το Arduino

πατήστε το κουμπί

Un Το μπουτόν είναι ένα κουμπί που σας επιτρέπει να διακόψετε ή να στείλετε ένα ηλεκτρονικό σήμα. Με αυτό το απλό στοιχείο σε συνδυασμό με άλλα στοιχεία μπορείτε να δημιουργήσετε έργα για ένα πλήθος εφαρμογών. Η χρήση αυτού του τύπου μπουτόν είναι πολύ συχνή όταν πρόκειται για έργα με το Arduino. Και συνδυάζοντας πολλά από αυτά τα κουμπιά μπορείτε να δημιουργήσετε ένα κάπως πιο περίπλοκο πληκτρολόγιο, αν και υπάρχουν ήδη προγραμματιζόμενα πληκτρολόγια για αυτές τις χρήσεις ...

Με τον τρόπο, δεν πρέπει να συγχέετε το κουμπί με ένα διακόπτη. Είναι εντελώς διαφορετικά πράγματα. Η διαφορά είναι ότι ο διακόπτης ή ο διακόπτης ενεργοποιείται ή απενεργοποιείται με κάθε πρέσα που έχει δημιουργηθεί πάνω του. Ενώ το μπουτόν θα παραμείνει μόνο σε μία κατάσταση ενώ ασκείται πίεση σε αυτό. Έχω σχολιάσει ότι μπορεί να στείλει ή να διακόψει, διότι υπάρχουν δύο βασικοί τύποι κουμπιών.

σύμβολο μπουτόν

Υπάρχουν ΟΧΙ ή κανονικά ανοιχτά κουμπιά και NC ή κανονικά κλειστά κουμπιά. Αυτό θα σας ακούγεται επίσης από τα ρελέ. Και ναι, είναι ακριβώς η ίδια λειτουργία. Όταν έχετε ένα NC, θα αφήσει το ρεύμα να περάσει από τα τερματικά του και διακόπτεται μόνο όταν το πατάτε. Από την άλλη πλευρά, το NA δεν αφήνει το ρεύμα να περάσει όταν δεν ασκείται πίεση και θα το αφήσει να περάσει μόνο όταν το πατήσετε.

Γνωρίζοντας ότι, είναι σχεδόν όλα όσα πρέπει να γνωρίζετε για ένα κουμπί για να ξεκινήσετε τη σύνδεση και τον προγραμματισμό σας χρησιμοποιώντας το Arduino. Η αλήθεια είναι ότι είναι ένα τόσο απλό στοιχείο που δεν υπάρχουν πολλά περισσότερα να πούμε για αυτόν τον τύπο μπουτόν.

Ενσωμάτωση κουμπιού με το Arduino

κύκλωμα με Arduino

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

Τρόποι σύνδεσης

pull-up και pull-down

Ένα πράγμα που πρέπει να γνωρίζετε είναι το ζήτημα της αντι-αναπήδησης και πώς να συνδέσετε αυτά τα κουμπιά. Πρώτα πηγαίνουμε στον τρόπο για να τα συνδέσουμε, το οποίο γνωρίζετε ήδη ότι μπορεί να είναι με τις αντιστάσεις pull-up και pull-down:

  • Τραβήξτε- Με αυτήν τη ρύθμιση αντίστασης, όταν πατηθεί το κουμπί, ο μικροελεγκτής ή το Arduino μπορεί να δει ή να διαβάσει ένα μηδέν σε αυτόν τον πείρο. Δηλαδή, το ερμηνεύει ως σήμα LOW.
  • Τραβάω κάτω: Σε αυτήν την περίπτωση είναι το αντίθετο, μπορείτε να διαβάσετε ή να λάβετε ένα σήμα 1 ή ΥΨΗΛΟ μέσω της συνδεδεμένης ακίδας.

Μην το συγχέετε με το NC ή το NA, που είναι κάτι διαφορετικό όπως έχουμε δει στο παρελθόν. Αυτό είναι ανεξάρτητο από τα άλλα ...

Αντι-αναπήδηση

Τα κουμπιά έχουν ένα αναπήδηση όταν πιέζεται. Δηλαδή, όταν πατηθεί ή απελευθερωθεί, υπάρχει μια διακύμανση του σήματος που περνά από τις επαφές του και θα μπορούσε να το κάνει να μεταβεί από HIGT σε LOW κατάσταση ή το αντίστροφο χωρίς να θέλει πραγματικά να συμβεί. Αυτό μπορεί να προκαλέσει ανεπιθύμητο αποτέλεσμα στο Arduino και να το κάνει παράξενα πράγματα, όπως η ενεργοποίηση ενός στοιχείου όταν θέλαμε πραγματικά να το απενεργοποιήσουμε με το κουμπί, κ.λπ. Αυτό συμβαίνει επειδή το Arduino ερμηνεύει τις αναπηδά σαν να είχε πατηθεί περισσότερες από μία φορές ...

Αυτό το αρνητικό αποτέλεσμα έχει μια λύση. Για αυτό, ένας μικρός πυκνωτής πρέπει να εφαρμοστεί στο κύκλωμα αντι-αναπήδησης (μέθοδος υλικού) ή σε λογισμικό (τροποποίηση του πηγαίου κώδικα), είτε έχει χρησιμοποιηθεί μια διαμόρφωση pull-up ή pull-down είτε εάν είναι NC ή NO. Σε όλες αυτές τις περιπτώσεις, η λύση πρέπει να εφαρμοστεί για να αποφευχθούν αυτά τα ριμπάουντ.

Για παράδειγμα, κυκλώματα pull-up και pull-down με το πυκνωτής κατά της αναπήδησης θα μοιάζουν με αυτό:

ριμπάουντ

Ενώ μέθοδος λογισμικού Θα μπορούσε να δει σε αυτό το απόσπασμα κώδικα:

if (digitalRead (κουμπί) == ΧΑΜΗΛΗ) // Ελέγξτε εάν το κουμπί έχει πατηθεί
{
πατημένο = 1; // Η μεταβλητή αλλάζει την τιμή
}
εάν (digitalRead (κουμπί) == ΥΨΗΛΟΣ && πατημένος == 1)
{
// Εκτελέστε την επιθυμητή ενέργεια
πατημένο = 0; // Η μεταβλητή επιστρέφει στην αρχική της τιμή
}

Απλό παράδειγμα έργου

anti-bounce με το κουμπί και το Arduino

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

Μόλις συνδεθεί σωστά, το επόμενο πράγμα είναι να γράψετε τον κωδικό στο Arduino IDE για να προγραμματίσετε τον πίνακα και να αρχίσετε να πειραματίζεστε με τα κουμπιά. Ένα απλό παράδειγμα κώδικα για τον έλεγχο του κυκλώματός μας θα ήταν το εξής:

// Παράδειγμα σκίτσου για τον έλεγχο του κουμπιού
int pin = 2;
int κατάσταση;
παλλόμενο int = 0;
άκυρη ρύθμιση ()

{
pinMode (2, ΕΙΣΟΔΟΣ); // Για να διαβάσετε τον παλμό κάνοντας την είσοδο pin

pinMode (13, OUTPUT); // Για το LED

Serial.begin (9600);
}
κενός βρόχος ()

{
εάν (digitalRead (2) == ΥΨΗΛΟΣ)

{

καρφίτσα = 2;

antiBounce (); // Κλήση στη λειτουργία κατά της αναπήδησης

}
}
// Λειτουργία αντι-αναπήδησης λογισμικού
άκυρο αντι-αναπήδησης ()

{
ενώ (digitalRead (pin) == LOW);
κατάσταση = digitalRead (13);
digitalWrite (κατάσταση 13,!);
ενώ (digitalRead (pin) == ΥΨΗΛΟΣ);

}


5 σχόλια, αφήστε τα δικά σας

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

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Εικόνα κράτησης θέσης Marcelo Castillo dijo

    Δροσερός!!! Ευχαριστώ πολύ, έφτιαξα ένα CNC και παράδοξα τα κουμπιά ήταν το πιο δύσκολο για μένα να συντονίσω.

  2.   Liliana dijo

    Γεια! Συμβουλεύομαι ως αρχάριος, σε σχέση με το GND… .. το μαύρο καλώδιο δεν πρέπει να βγαίνει από την αρνητική γραμμή, η οποία βρίσκεται πάνω από αυτήν που φαίνεται στο διάγραμμα 2;

  3.   Γιάννης dijo

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

  4.   Ομάρ Ρομέρο Ρίνκον dijo

    Γεια σας, κάνω ένα έργο με τρία κουμπιά και 5 LED με την ακόλουθη σειρά.
    1 κουμπί στέλνει σήμα σε 2 LED, τα οποία έχω ονομάσει 1 και 2.
    το δεύτερο pushbotton στέλνει σήμα σε 3 LED, που ονομάζονται 2,3 και 4.
    Το τρίτο pushbotton μου στέλνει ένα σήμα σε άλλα 3 LED, που ονομάζονται 3,4, 5 και XNUMX.

    Κατάφερα να κάνω αυτή τη σειρά, έχω μόνο ένα πρόβλημα, όταν πατάω 2 κουμπιά, στέλνει ένα ψευδές σήμα στο LED που θα πρέπει να παραμείνει αναμμένο με αποτέλεσμα να αναβοσβήνει κατά διαστήματα, το έχω ελέγξει βάζοντας καθυστέρηση (2 δευτερολέπτων, που είναι αυτό που χρειάζομαι για να μείνουν τα LED και μετά να σβήσουν. τότε η ερώτηση μου είναι πώς μπορώ να βάλω τη λειτουργία millis στο πρόγραμμά μου, δεν καταλαβαίνω πώς λειτουργεί το millis, θέλω να μάθω αν μπορείτε να με βοηθήσετε κάνοντας ένα παράδειγμα για 3 κουμπιά που χρησιμοποιούν millis σε καθένα από αυτά, χρειάζομαι millis για να μπορώ να πατήσω τα κουμπιά ανά πάσα στιγμή χωρίς να καθυστερήσω το arduino.

    1.    Ισαάκ dijo

      Hola Omar,
      Σας συνιστώ να δείτε το σεμινάριο Arduino:
      https://www.hwlibre.com/programacion-en-arduino/
      Και μπορείτε επίσης να δείτε το άρθρο μας για το millis ():
      https://www.hwlibre.com/millis-arduino/
      Ένα χαιρετισμό.