Πώς να χρησιμοποιήσετε το Arduino Joystick Shield v2.4

Arduino Greek Guide, ενεργοποίηση και απενεργοποίηση LED (Ενδέχεται 2019).

$config[ads_text] not found
Anonim

Πώς να χρησιμοποιήσετε το Arduino Joystick Shield v2.4


Σε αυτό το σεμινάριο θα δούμε πώς να χρησιμοποιήσετε το Arduino Joystick Shield. Υπάρχουν διαφορετικές εκδόσεις, αλλά θα χρησιμοποιήσουμε το v2.4, το οποίο έχει μερικά ενδιαφέροντα χαρακτηριστικά και μερικά επιπλέον κουμπιά που μπορούν να χρησιμοποιηθούν στην εφαρμογή σας με διαφορετικούς τρόπους.

Το Arduino Joystick Shield v2.4 παρέχει επτά στιγμιαία πλήκτρα (έξι ξεχωριστά κουμπιά και ένα πλήκτρο κάτω από το joystick) και ένα joystick με δύο αντίχειρα. Αυτή η ασπίδα δίνει στο Arduino τη λειτουργικότητα που βρίσκεται στους παλιούς ελεγκτές της Nintendo. Το joystick μπορεί να χρησιμοποιηθεί για τον έλεγχο εξόδων όπως μια μελωδία ή pixels σε μια οθόνη. Τα κουμπιά μπορούν να χρησιμοποιηθούν για πλοήγηση ή έλεγχο παιχνιδιών.

Σημείωση: Η βασική πλακέτα Arduino δεν υποστηρίζει θωράκιση με joystick με οθόνη LCD Nokia 5110. Αυτό συμβαίνει επειδή η τυπική τροφοδοσία Arduino 3.3 V είναι ικανή να τροφοδοτεί μόνο 50 mA και ο οπίσθιος φωτισμός Nokia 5110 απαιτεί περισσότερο ρεύμα.

Πείραμα 1: Διαβάστε τις τιμές του joystick

Το joystick έχει δύο ποτενσιόμετρα, τα οποία συνδέετε με τις αναλογικές ακίδες A0 και A1 στο Arduino σας. Η τιμή του A0 αντιστοιχεί στη θέση Χ. Η τιμή του Α1 αντιστοιχεί στη θέση Υ. Για να διαβάσετε αυτές τις αναλογικές τιμές, χρησιμοποιήστε τη λειτουργία AnalogRead ().

Σκεύη, εξαρτήματα

1 x Arduino Uno
1 x Arduino Joystick Shield v2.4

Βήματα:

  1. Συνδέστε την προστατευτική θωράκιση χαρά σας με τον πίνακα Arduino.
  2. Συνδέστε το board arduino στον υπολογιστή σας.
  3. Η λυχνία LED ανάβει στην ασπίδα του μοχλού, δείχνοντας ότι λειτουργεί σωστά.
  4. Γράψτε το σκίτσο και συντάξτε το πριν φορτώσετε στο διοικητικό συμβούλιο σας. είναι καλή πρακτική να συντάξετε το σκίτσο σας προτού μεταφορτώσετε.
  5. Αφού μεταφορτωθεί το σκίτσο, εκτελέστε τη σειριακή οθόνη για να παρατηρήσετε τις τιμές.
  6. Μετακινήστε το joystick σε διαφορετικές κατευθύνσεις και θα παρατηρήσετε ότι οι τιμές στη σειριακή οθόνη θα αλλάξουν.

Μπορείτε να μετακινήσετε το joystick σε 8 κατευθύνσεις: επάνω, δεξιά, δεξιά, δεξιά-κάτω, κάτω, κάτω αριστερά, αριστερά, αριστερά. Εάν οι τιμές αλλάξουν στη σειριακή οθόνη σας, η ασπίδα σας λειτουργεί σωστά.

Αυτός ο κώδικας θα εμφανίσει κάτι τέτοιο αν η θωράκιση είναι συνδεδεμένη με 5 V.

Κώδικας

 // define global variables for analog pins. // X values will be read from pin 0 and Y from pin 1 #define PIN_ANALOG_X 0 #define PIN_ANALOG_Y 1 void setup() { // Start serial because we will observe values at serial monitor Serial.begin(9600); } void loop() { // Print x axis values Serial.print("x: "); Serial.println(analogRead(PIN_ANALOG_X)); // Print y axis values Serial.print("y: "); Serial.println(analogRead(PIN_ANALOG_Y)); // Some delay to clearly observe your values on serial monitor. delay(500); } 

Λήψη κώδικα

Πείραμα 2: Χρησιμοποιήστε το joystick για να ελέγξετε την κίνηση

Για να ελέγξετε την κίνηση κατά μήκος του άξονα Χ, πρέπει πρώτα να διαβάσετε τη θέση του ποτενσιόμετρου άξονα Χ και να καθορίσετε αν ο χρήστης πιέζει το χειριστήριο προς τα δεξιά ή προς τα αριστερά ή δεν τον πιέζει καθόλου. Όταν δεν πατήσετε ούτε δεξιά ούτε αριστερά, η τιμή του A0 θα είναι τυπικά 523. Για να υπολογίσουμε κάποια διαφορά σε αυτή την ανάγνωση μεταξύ διαφορετικών μονάδων θωράκισης, θα ορίσουμε ανοχή 30. Αυτό σημαίνει ότι όταν διαβάζουμε μια τιμή μεταξύ 493 και 553, θα υποθέσουμε ότι ο χρήστης δεν πιέζει το joystick. Μια ανάγνωση μικρότερη από 493 σημαίνει ότι ο χρήστης πιέζει το joystick προς τα αριστερά και θέλει το αντικείμενο που ελέγχεται να μετακινηθεί προς τα αριστερά. Μια ανάγνωση μεγαλύτερη από 553 σημαίνει ότι ο χρήστης πιέζει το joystick προς τα δεξιά και θέλει το αντικείμενο που ελέγχεται να μετακινηθεί προς τα δεξιά.

Αυτός ο κώδικας θα εμφανίσει κάτι παρόμοιο:

Βήματα

  1. Συνδέστε την προστατευτική σας ασπίδα χαρά πάνω από το board arduino.
  2. Συνδέστε το board arduino στον υπολογιστή σας.
  3. Η λυχνία LED θα ανάψει, στην ασπίδα του χειριστηρίου σας δείχνοντας ότι λειτουργεί σωστά.
  4. Γράψτε το σκίτσο και μεταγλωττίστε το πριν φορτώσετε στο σκάκι σας, είναι απλώς μια καλή πρακτική να συντάξετε το σκίτσο σας πριν φορτώσετε.
  5. Αφού μεταφορτωθεί το σκίτσο, εκτελέστε σειριακή παρακολούθηση για να παρατηρήσετε τις τιμές.
  6. Καθώς μετακινείτε το χειριστήριο, η σειριακή οθόνη θα σας πει την κατεύθυνση στην οποία κινείστε το χειριστήριό σας.

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

Κώδικας

 // define global variables for analog pins. // X values will be read from pin 0 and Y from pin 1 #define PIN_ANALOG_X 0 #define PIN_ANALOG_Y 1 void setup() { // Start serial because we will observe values at serial monitor Serial.begin(9600); } void loop() { // Print x axis values Serial.print("x: "); Serial.println(analogRead(PIN_ANALOG_X)); // Print y axis values Serial.print("y: "); Serial.println(analogRead(PIN_ANALOG_Y)); // Some delay to clearly observe your values on serial monitor. delay(500); } 

Λήψη κώδικα

Πείραμα 3: Διαβάστε τους διακόπτες του μοχλού χειρισμού

Οι διακόπτες του κουμπιού απλά συνδέονται με τους ακροδέκτες I / O του Arduino όπως φαίνεται στον παρακάτω πίνακα:

Όταν πιέσετε το πλήκτρο Α ένα ψηφιακό σήμα θα αποσταλεί στο D2 και ούτω καθεξής. Θα χρησιμοποιήσουμε τη λειτουργία digitalRead () για να καθορίσουμε την κατάσταση των κουμπιών.

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

Κάθε φορά που ένας χρήστης πιέζει ένα κουμπί, το Arduino θα εμφανίσει την τιμή του κουμπιού στη σειριακή οθόνη.

Βήματα

  1. Συνδέστε την ασπίδα του joystick πάνω στον πίνακα arduino.
  2. Συνδέστε το board arduino στον υπολογιστή σας.
  3. Η λυχνία LED θα ανάψει στην ασπίδα του μοχλού, δείχνοντας ότι λειτουργεί σωστά.
  4. Γράψτε το σκίτσο και συντάξτε το πριν φορτώσετε στο σκάκι σας (είναι καλή πρακτική να συντάξετε το σκίτσο σας πριν μεταφορτώσετε).
  5. Αφού μεταφορτωθεί το σκίτσο, εκτελέστε σειριακή παρακολούθηση για να παρατηρήσετε τις τιμές.
  6. Πατήστε οποιοδήποτε κουμπί στο joystick σας και θα εμφανιστεί ποιο κουμπί είναι πατημένο.

Κώδικας

 #define BUTTON_UP 2 #define BUTTON_RIGHT 3 #define BUTTON_DOWN 4 #define BUTTON_LEFT 5 #define BUTTON_E 6 #define BUTTON_F 7 #define DELAY 500 void setup() { Serial.begin(9600); // to enable pull up resistors first write pin mode // and then make that pin HIGH pinMode(BUTTON_UP, INPUT); digitalWrite(BUTTON_UP, HIGH); pinMode(BUTTON_RIGHT, INPUT); digitalWrite(BUTTON_RIGHT, HIGH); pinMode(BUTTON_DOWN, INPUT); digitalWrite(BUTTON_DOWN, HIGH); pinMode(BUTTON_LEFT, INPUT); digitalWrite(BUTTON_LEFT, HIGH); pinMode(BUTTON_E, INPUT); digitalWrite(BUTTON_E, HIGH); pinMode(BUTTON_F, INPUT); digitalWrite(BUTTON_F, HIGH); } void loop() { if(digitalRead(BUTTON_UP) == LOW) { Serial.println("Button A is pressed"); delay(DELAY); } else if(digitalRead(BUTTON_RIGHT) == LOW) { Serial.println("Button B is pressed"); delay(DELAY); } else if(digitalRead(BUTTON_DOWN) == LOW) { Serial.println("Button C is pressed"); delay(DELAY); } else if(digitalRead(BUTTON_LEFT) == LOW) { Serial.println("Button D is pressed"); delay(DELAY); } else if(digitalRead(BUTTON_E) == LOW) { Serial.println("Button E is pressed"); delay(DELAY); } else if(digitalRead(BUTTON_F) == LOW) { Serial.println("Button F is pressed"); delay(DELAY); } } 

Λήψη κώδικα

Δώστε αυτό το έργο μια δοκιμή για τον εαυτό σας! Αποκτήστε το BOM.