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

Servo Positoning με ένα πληκτρολόγιο: 3 βήματα
Servo Positoning με ένα πληκτρολόγιο: 3 βήματα

Βίντεο: Servo Positoning με ένα πληκτρολόγιο: 3 βήματα

Βίντεο: Servo Positoning με ένα πληκτρολόγιο: 3 βήματα
Βίντεο: Μάθημα 86: Έλεγχος θέσης σερβοκινητήρα με χρήση ποτενσιόμετρου (Αγγλικά) 2024, Ιούλιος
Anonim
Servo Positoning με ένα πληκτρολόγιο
Servo Positoning με ένα πληκτρολόγιο

Σε αυτό το διδακτικό θα δημιουργήσουμε ένα έργο που θα ελέγχει ένα Micro-Servo με ένα πληκτρολόγιο που θα το τρέχει με ένα Arduino Uno.

Υλικά που χρησιμοποιούνται:

Arduino Uno

Breadboard

Πληκτρολόγιο 4x4

Micro-Servo

Βήμα 1: Συνδέστε το πληκτρολόγιο

Συνδέστε το πληκτρολόγιο
Συνδέστε το πληκτρολόγιο
Συνδέστε το πληκτρολόγιο
Συνδέστε το πληκτρολόγιο

Η πρώτη σκέψη που πρέπει να κάνετε είναι να συνδέσετε τη ράγα ισχύος και τη ράγα γείωσης στο ψωμί σας από το Arduino σας

  1. Συνδέστε τον πείρο 5V στη ράγα τροφοδοσίας (κόκκινο)
  2. Συνδέστε έναν πείρο γείωσης (GND) στη ράγα γείωσης (μπλε)

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

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

Θυμηθείτε να ξεκινήσετε στα αριστερά όταν χρησιμοποιείτε τα καλώδια σας!

  • Η πρώτη καρφίτσα πηγαίνει στο 13
  • Η δεύτερη καρφίτσα πηγαίνει στο 12
  • Η τρίτη καρφίτσα πηγαίνει στο 11
  • Η τέταρτη καρφίτσα πηγαίνει στο 10
  • Πέμπτη καρφίτσα έως 9
  • Έκτη καρφίτσα στο 8
  • Έβδομη καρφίτσα στο 7
  • Όγδοη καρφίτσα σε 6

Κατά την καλωδίωση του πληκτρολογίου, θυμηθείτε να κρατήσετε έναν ψηφιακό πείρο pwm ανοιχτό. Θα το χρειαστούμε για το micro-servo

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

Τώρα ας στραφούμε στον κώδικα και βεβαιωθείτε ότι το πληκτρολόγιο λειτουργεί και δίνει τις τιμές που παρακολουθείτε

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

#περιλαμβάνω

γραμμές const byte = 4; // τέσσερις σειρές αφού το πληκτρολόγιο είναι γεμάτο

const στήλες byte = 4; // τέσσερις στήλες, όπως παραπάνω

κουμπιά char [σειρές] [στήλες] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

byte rowP [σειρές] = {13, 12, 11, 10}; // καρφίτσες σειράς του πληκτρολογίου

byte στήλεςP [στήλες] = {9, 8, 7, 6}; // καρφίτσες στήλης του πληκτρολογίου

Πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κουμπιά), rowP, στήλεςP, σειρές, στήλες); // δημιουργία πληκτρολογίου

void setup () {

Serial.begin (9600); }

void loop () {

char buttonPressed = pad.getKey (); // λάβετε το char από το πληκτρολόγιο εάν (buttonPressed) // δείξτε ποιο κουμπί πατήθηκε στο πληκτρολόγιο {Serial.println (buttonPressed); }}

Βήμα 2: Προσθέστε το Micro Servo

Προσθέστε το Micro Servo
Προσθέστε το Micro Servo
Προσθέστε το Micro Servo
Προσθέστε το Micro Servo

Τώρα ας προσθέσουμε τον σερβοκινητήρα. Αυτό είναι πραγματικά εύκολο να προστεθεί στο τρέχον έργο μας, καθώς ο διακομιστής μικροϋπολογιστών διαθέτει μόνο τρία καλώδια.

  • Το καφέ σύρμα πηγαίνει στη ράγα γείωσης στη σανίδα ψωμιού
  • Το κόκκινο πηγαίνει στο Power rail
  • Το πορτοκαλί πηγαίνει στο Pin 3 στο Arduino. Θυμηθείτε ότι ο διακομιστής μικροϋπολογιστών πρέπει να έχει ένα PWM pin στο Arduino. Αυτό οφείλεται στο σερβο που χρησιμοποιεί το TIMER2

Τώρα ας βεβαιωθούμε ότι συνδέσαμε το σερβο μικροϋπολογιστή σωστά και ότι κινείται

#include #include "Servo.h"

γραμμές const byte = 4; // τέσσερις σειρές αφού το πληκτρολόγιο είναι γεμάτο

const στήλες byte = 4; // τέσσερις στήλες, όπως παραπάνω

κουμπιά char [σειρές] [στήλες] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

byte rowP [σειρές] = {13, 12, 11, 10}; // καρφίτσες σειράς του πληκτρολογίου

byte στήλεςP [στήλες] = {9, 8, 7, 6}; // καρφίτσες στήλης του πληκτρολογίου

Πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κουμπιά), rowP, στήλεςP, γραμμές, στήλες); // δημιουργία πληκτρολογίου

Servo currentServo; // δημιουργία αντικειμένου σερβο για τον έλεγχο ενός σερβο

// Δώδεκα servo αντικείμενα μπορούν να δημιουργηθούν στους περισσότερους πίνακες

int pos = 0; // μεταβλητή για αποθήκευση της θέσης σερβο

void setup () {

Serial.begin (9600); currentServo.attach (3); // συνδέει το σερβο στο pin 9 στο σερβο αντικείμενο

}

void loop () {

char buttonPressed = pad.getKey (); // λάβετε το char από το πληκτρολόγιο εάν (buttonPressed) // δείξτε ποιο κουμπί πατήθηκε στο πληκτρολόγιο {Serial.println (buttonPressed); }

currentServo.write (95);

}

Βήμα 3: Τροποποιήστε τον κώδικα για να χρησιμοποιήσετε το πληκτρολόγιο στο Servo

Γνωρίζετε ότι πρόκειται να τροποποιήσουμε τον κώδικά μας έτσι ώστε όταν πατάμε ένα συγκεκριμένο κουμπί στο πληκτρολόγιο, το σερβο να μετακινηθεί σε μια συγκεκριμένη θέση. Πρώτα κάτι σημαντικό. Η θέση σερβο για το 0 ήταν περίεργη. Δεδομένου ότι είχα ένα σερβο συνεχούς περιστροφής, όποτε έφτανε κοντά στο 0, το σερβο μόλις άρχισε να περιστρέφεται. Ο αριθμός που έβαλα στον κωδικό ήταν όσο το δυνατόν χαμηλότερος χωρίς να συμβεί αυτό. Τέλος πάντων, εδώ είναι ο τελικός μου κωδικός:

#συμπεριλάβω #συμπεριλάβω

γραμμές const byte = 4; // τέσσερις σειρές αφού το πληκτρολόγιο είναι γεμάτο

const στήλες byte = 4; // τέσσερις στήλες, όπως παραπάνω

κουμπιά char [σειρές] [στήλες] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};

byte rowP [σειρές] = {13, 12, 11, 10}; // καρφίτσες σειράς του πληκτρολογίου

byte στήλεςP [στήλες] = {9, 8, 7, 6}; // ακίδες στήλης του πληκτρολογίου

Πληκτρολόγιο = Πληκτρολόγιο (makeKeymap (κουμπιά), rowP, στήλεςP, γραμμές, στήλες); // δημιουργία πληκτρολογίου

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // συνδέει το σερβο στο pin 9 στο σερβο αντικείμενο}

void loop () {

κλειδί char = pad.getKey (); // λάβετε το char από το πληκτρολόγιο if (key == '0') {myServo.write (11); Serial.println ("0"); καθυστέρηση (15)? } if (key == '1') {myServo.write (12); Serial.println ("1"); καθυστέρηση (15)? } if (key == '2') {myServo.write (24); Serial.println ("2"); καθυστέρηση (15)? } if (κλειδί == '3') {myServo.write (36); Serial.println ("3"); καθυστέρηση (15)? }

εάν (κλειδί == '4')

{myServo.write (48); Serial.println ("4"); καθυστέρηση (15)? }

εάν (κλειδί == '5')

{myServo.write (60); Serial.println ("5"); καθυστέρηση (15)? }

εάν (κλειδί == '6')

{myServo.write (72); Serial.println ("6"); καθυστέρηση (15)? }

εάν (κλειδί == '7')

{myServo.write (84); Serial.println ("7"); καθυστέρηση (15)? }

εάν (κλειδί == '8')

{myServo.write (96); Serial.println ("8"); καθυστέρηση (15)? }

εάν (κλειδί == '9')

{myServo.write (108); Serial.println ("9"); καθυστέρηση (15)? }

εάν (κλειδί == '*')

{myServo.write (120); Serial.println ("*"); καθυστέρηση (15)? }

εάν (κλειδί == '#')

{myServo.write (132); Serial.println ("#"); καθυστέρηση (15)? }

εάν (κλειδί == 'Α')

{myServo.write (146); Serial.println ("A"); καθυστέρηση (15)? }

εάν (κλειδί == 'Β')

{myServo.write (158); Serial.println ("B"); καθυστέρηση (15)? }

εάν (κλειδί == 'C')

{myServo.write (170); Serial.println ("C"); καθυστέρηση (15)? }

εάν (κλειδί == 'D')

{myServo.write (180); Serial.println ("D"); καθυστέρηση (15)? }}

Συνιστάται: