Πώς να συνδέσετε ένα χειριστήριο στο Arduino

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

Πώς να συνδέσετε ένα χειριστήριο στο Arduino
Πώς να συνδέσετε ένα χειριστήριο στο Arduino

Βίντεο: Πώς να συνδέσετε ένα χειριστήριο στο Arduino

Βίντεο: Πώς να συνδέσετε ένα χειριστήριο στο Arduino
Βίντεο: Πώς να ελέγξετε τον ενεργοποιητή χρησιμοποιώντας το Arduino - Robojax 2024, Νοέμβριος
Anonim

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

Joystick με δύο άξονες και ένα κουμπί
Joystick με δύο άξονες και ένα κουμπί

Είναι απαραίτητο

  • - Arduino;
  • - χειριστήριο δύο αξόνων
  • - 3 αντιστάσεις με ονομαστική τιμή 220 Ohm.
  • - 1 RGB ή 3 συμβατικά LED.

Οδηγίες

Βήμα 1

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

Σχηματικό διάγραμμα Joystick
Σχηματικό διάγραμμα Joystick

Βήμα 2

Συνδέστε το χειριστήριο σύμφωνα με το παρακάτω διάγραμμα. Συνδέστε τις αναλογικές εξόδους X και Y του χειριστηρίου στις αναλογικές εισόδους A1 και A2 του Arduino, η έξοδος του κουμπιού SW στην ψηφιακή είσοδο 8. Το χειριστήριο τροφοδοτείται από τάση +5 V.

Διάγραμμα καλωδίωσης Joystick για το Arduino
Διάγραμμα καλωδίωσης Joystick για το Arduino

Βήμα 3

Για να δούμε ξεκάθαρα πώς λειτουργεί το χειριστήριο, ας γράψουμε ένα τέτοιο σκίτσο. Ας δηλώσουμε τις ακίδες, ορίστε τους τρόπους λειτουργίας για αυτούς. Παρατηρήστε ότι στη διαδικασία εγκατάστασης (), ορίζουμε την είσοδο switchPin σε υψηλό επίπεδο. Αυτό επιτρέπει την ενσωματωμένη pull-up αντίσταση σε αυτήν τη θύρα. Εάν δεν το ενεργοποιήσετε, τότε όταν δεν πατηθεί το κουμπί χειριστηρίου, η 8η θύρα Arduino θα κρεμάσει στον αέρα και θα πιάσει τις παραλαβές. Αυτό θα οδηγήσει σε ανεπιθύμητα, χαοτικά ψευδώς θετικά.

Στη διαδικασία βρόχου (), ελέγχουμε συνεχώς την κατάσταση του κουμπιού και το προβάλλουμε χρησιμοποιώντας την ένδειξη LED στην έξοδο 13. Λόγω της έλξης της εισόδου του διακόπτη Pin, το LED ανάβει συνεχώς και όταν πατηθεί το κουμπί, σβήνει και όχι το αντίστροφο.

Στη συνέχεια, διαβάζουμε τις αναγνώσεις των δύο ποτενσιόμετρων του χειριστηρίου - την έξοδο των αξόνων Χ και Υ. Το Arduino έχει ADC 10-bit, οπότε οι τιμές που διαβάζονται από το χειριστήριο κυμαίνονται από 0 έως 1023. Στη μεσαία θέση του χειριστηρίου, όπως μπορείτε να δείτε στην εικόνα, οι τιμές στην περιοχή 500 είναι περίπου στη μέση του εύρους.

Ένα σκίτσο για να δείξει τη λειτουργία του χειριστηρίου
Ένα σκίτσο για να δείξει τη λειτουργία του χειριστηρίου

Βήμα 4

Συνήθως ένα χειριστήριο χρησιμοποιείται για τον έλεγχο των ηλεκτρικών κινητήρων. Γιατί όμως να μην το χρησιμοποιήσετε για τον έλεγχο της φωτεινότητας ενός LED, για παράδειγμα; Ας συνδέσουμε ένα RGB LED (ή τρία συνηθισμένα LED) σε ψηφιακές θύρες 9, 10 και 11 του Arduino σύμφωνα με το παραπάνω διάγραμμα, χωρίς να ξεχνάμε, φυσικά, για τις αντιστάσεις.

Διάγραμμα καλωδίωσης Joystick και RGB LED στο Arduino
Διάγραμμα καλωδίωσης Joystick και RGB LED στο Arduino

Βήμα 5

Θα αλλάξουμε τη φωτεινότητα των αντίστοιχων χρωμάτων όταν αλλάζουμε τη θέση του χειριστηρίου κατά μήκος των αξόνων, όπως φαίνεται στην εικόνα. Λόγω του γεγονότος ότι το χειριστήριο μπορεί να μην είναι κεντραρισμένο με ακρίβεια από τον κατασκευαστή και να έχει τη μέση της κλίμακας όχι γύρω στα 512, αλλά από 490 έως 525, το LED μπορεί να ανάψει ελαφρώς ακόμη και όταν το χειριστήριο βρίσκεται στην ουδέτερη θέση. Εάν θέλετε να απενεργοποιηθεί εντελώς, κάντε τις κατάλληλες τροποποιήσεις στο πρόγραμμα.

Διάγραμμα της κατανομής φωτεινότητας των καναλιών R, G, B κατά μήκος των αξόνων Χ και Υ
Διάγραμμα της κατανομής φωτεινότητας των καναλιών R, G, B κατά μήκος των αξόνων Χ και Υ

Βήμα 6

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

Πρώτον, θα δηλώσουμε την αντιστοιχία των ακίδων και δύο μεταβλητών - ledOn και prevSw - για εργασία με το κουμπί. Στη διαδικασία εγκατάστασης (), αντιστοιχίστε τις λειτουργίες στους ακροδέκτες και συνδέστε την αντίσταση pull-up με τον πείρο του κουμπιού με την εντολή digitalWrite (swPin, HIGH).

Στο βρόχο () ορίζουμε το πάτημα του κουμπιού χειριστηρίου. Όταν πατάτε το κουμπί, αλλάζουμε τους τρόπους λειτουργίας μεταξύ της λειτουργίας "φακού" και της λειτουργίας "έγχρωμης μουσικής".

Στη λειτουργία FreeMode (), η φωτεινότητα των LED ελέγχεται με κλίση του μοχλού σε διαφορετικές κατευθύνσεις: όσο ισχυρότερη είναι η κλίση κατά μήκος του άξονα, τόσο φωτεινότερο το αντίστοιχο χρώμα λάμπει. Επιπλέον, ο μετασχηματισμός των τιμών αναλαμβάνεται από τη συνάρτηση χάρτη (τιμή, απόLower, fromUpper, toLower, toUpper). Η συνάρτηση χάρτη () μεταφέρει τις μετρηθείσες τιμές (από Χαμηλή, Υψηλή) κατά μήκος των αξόνων του χειριστηρίου στο επιθυμητό εύρος φωτεινότητας (σε Χαμηλή, Υψηλή). Μπορείτε να κάνετε το ίδιο με τις συνήθεις αριθμητικές πράξεις, αλλά αυτή η σημείωση είναι πολύ μικρότερη.

Στη λειτουργία discoMode (), τρία χρώματα εναλλάσσουν εναλλακτικά τη φωτεινότητα και σβήνουν. Για να μπορέσουμε να βγούμε από το βρόχο όταν πατηθεί το κουμπί, ελέγχουμε κάθε επανάληψη για να δούμε αν έχει πατηθεί το κουμπί.

Σκίτσο για τον έλεγχο της φωτεινότητας του LED χρησιμοποιώντας ένα αναλογικό χειριστήριο
Σκίτσο για τον έλεγχο της φωτεινότητας του LED χρησιμοποιώντας ένα αναλογικό χειριστήριο

Βήμα 7

Το αποτέλεσμα είναι ένας φακός φτιαγμένος από ένα τριών χρωμάτων RGB LED, η φωτεινότητα κάθε χρώματος ρυθμίζεται χρησιμοποιώντας ένα χειριστήριο. Και όταν πατήσετε το κουμπί, ενεργοποιείται η λειτουργία "έγχρωμη μουσική". Αν και το χρησιμοποιώ, αντίθετα, ως νυχτερινό φως.

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

Συνιστάται: