Μετάβαση στο κύριο περιεχόμενο

Σερβοκινητήρας

 

Βασικός έλεγχος σερβομηχανισμού

Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 180 μοίρες, χρησιμοποιώντας ένα «βρόχο for()». Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo, η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).. Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo  , η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).

     Χρειαζόμαστε τα παρακάτω:

    Arduino IDE

  • Arduino UNO 

  • Σερβοκινητήρας 4,8V - 6V 

  • Καλώδια βραχυκυκλωτήρα.

Τυπικοί σερβοκινητήρες

Οι τυπικοί σερβοκινητήρες είναι ενεργοποιητές που επιτρέπουν τον ακριβή έλεγχο της θέσης (γωνία). Χαρακτηριστικό  είναι ότι η γωνία του κινητήρα είναι 0 - 180 μοίρες. Με άλλα λόγια, μπορεί να κάνει το μισό μιας περιστροφής.

Ένας τυπικός σερβοκινητήρας, όπως και άλλοι κινητήρες, είναι ουσιαστικά απλώς ένας κινητήρας συνεχούς ρεύματος , αλλά με μερικά επιπλέον χαρακτηριστικά:

  • Κύκλωμα ελέγχου για τον έλεγχο του κινητήρα, π.χ. ρύθμιση γωνίας.
  • Γρανάζια που μετατρέπουν την ταχύτητα σε ροπή, γεγονός που το καθιστά ικανό να κάνει «βαρύ ανύψωση» με μικρότερη ταχύτητα, σε αντίθεση με έναν κανονικό κινητήρα συνεχούς ρεύματος που απλώς περιστρέφεται πολύ γρήγορα!
  • Ποτενσιόμετρο που παρακολουθεί τη γωνία του. Αυτό δίνει τη δυνατότητα στον σερβομηχανισμό «να ξέρει πού βρίσκεται».

Ρίξτε μια ματιά στην παρακάτω εικόνα για να δείτε πώς μοιάζει ένα Servo μέσα:


σερβομηχανισμός

Τα διαφορετικά καλώδια
Σχεδόν όλοι οι σερβομηχανισμοί έρχονται με ένα σετ 3 καλωδίων. Αυτά είναι τα PWR, GND και Signal . Για ένα πολύ απλό κύκλωμα, το μόνο που χρειάζεται είναι να συνδέσετε καθεμία από αυτές τις δύο ακίδες στο


Arduino:
PWR (ΚΟΚΚΙΝΟ) - συνδέεται σε 5 V στο Arduino.
GND (ΜΑΥΡΟ) - συνδέεται στο GND στο Arduino.
Σήμα (ΛΕΥΚΟ) - συνδέεται με μια ψηφιακή ακίδα στο Arduino (συνήθως 9).
Σημείωση: Ο συνδυασμός χρωμάτων ποικίλλει από σερβομηχανή σε σερβομηχανή, αλλά συνήθως το κόκκινο και το μαύρο παραμένουν.
Σημείωση: Ανάλογα με το Arduino που χρησιμοποιείτε, η ακίδα σήματος μπορεί να διαφέρει.

Κύκλωμα
Απλώς συνδέστε τον τυπικό σερβοκινητήρα στο Arduino, ακολουθώντας το παρακάτω κύκλωμα:
Προγραμματισμός του πίνακα

Για να προγραμματίσετε την πλακέτα, θα πρέπει να έχετε εγκαταστήσει το πρόγραμμα επεξεργασίας εκτός σύνδεσης ή να χρησιμοποιήσετε το ηλεκτρονικό πρόγραμμα επεξεργασίας. Δεν χρειάζεται να εγκαταστήσετε εξωτερικές βιβλιοθήκες.Πριν ξεκινήσουμε, ας ρίξουμε μια ματιά σε μερικές από τις βασικές λειτουργίες του προγράμματος:
#include <Servo.h>
- περιλαμβάνει τη βιβλιοθήκη Servo.
Servo myservo
- Δημιουργήστε ένα σερβο αντικείμενο.
myservo.attach(9)
- συνδέστε το σερβο σε ένα pin.
myservo.write(pos)
 - γράψτε μια τιμή στον σερβομηχανισμό (0-180).

Ο κώδικας μπορεί να βρεθεί μεταβαίνοντας στο Αρχείο > Παραδείγματα > Servo > Σάρωση ή μπορεί να αντιγραφεί απευθείας από κάτω. Ανεβάστε το πρόγραμμα στον πίνακα.
1#include <Servo.h>
2
3Servo myservo; // create servo object to control a servo
4// twelve servo objects can be created on most boards
5
6int pos = 0; // variable to store the servo position
7
8void setup() {
9 myservo.attach(9); // attaches the servo on pin 9 to the servo object
10}
11
12void loop() {
13 for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
14 // in steps of 1 degree
15 myservo.write(pos); // tell servo to go to position in variable 'pos'
16 delay(15); // waits 15ms for the servo to reach the position
17 }
18 for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
19 myservo.write(pos); // tell servo to go to position in variable 'pos'
20 delay(15); // waits 15ms for the servo to reach the position
21 }
22}

Δοκιμάζοντας το

Αφού ανεβάσουμε με επιτυχία τον κώδικα στην πλακέτα, ο τυπικός σερβομηχανισμός θα πρέπει τώρα να αρχίσει να μετακινείται από 0 - 180 και μετά να αρχίσει να μετακινείται από 180 - 0. Αυτό οφείλεται στους δύο βρόχους for στο πρόγραμμα, οι οποίοι αυξάνουν σταδιακά το pos μεταβλητή, η οποία γράφεται στον σερβομηχανισμό.

σερβο-βασική-γωνία
σερβο-βασική-γωνία

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

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Πώς να χρησιμοποιήσετε ένα Breadboard

  Πώς να χρησιμοποιήσετε ένα Breadboard Το breadboard έχει εσωτερικές συνδέσεις μεταξύ των οπών του. Μερικές κάθετες συνδέσεις και μερικές οριζόντιες συνδέσεις. Κανονικά, χρησιμοποιείτε τις κολώνες στα πλάγια για να συνδέσετε το τροφοδοτικό σας. Και χρησιμοποιείτε τις σειρές στη μέση για να συνδέσετε τα στοιχεία σας. Στήλες Τροφοδοτικού Είναι σύνηθες να χρησιμοποιείτε τις στήλες στα αριστερά και δεξιά για τη σύνδεση του τροφοδοτικού. Αυτές οι στήλες συνδέονται κάθετα. Έτσι, εάν συνδέσετε 5 βολτ στην επάνω οπή μιας από τις πλευρικές κολώνες, θα έχετε 5 βολτ σε όλες τις οπές αυτής της στήλης. Χρησιμοποιήστε τις στήλες που επισημαίνονται με κόκκινη γραμμή για το συν και τη στήλη με μπλε γραμμή για το μείον. Τέλος φόρμας Σημείωση: Μερικές μεγαλύτερες πλάκες   breadboard χωρίζονται στα δύο έτσι ώστε το πάνω μισό να αποσυνδεθεί από το κάτω μισό. Αυτό υποδεικνύεται από τις κατακόρυφες μπλε και κόκκινες γραμμές που χωρίζονται στα δύο.   Περιοχή Συστατικού Σ...

Tmp36GZ θερμόμετρο με LCD οθόνη

 Tmp36GZ με LCD οθόνη // Define to which pin of the Arduino the output of the TMP36 is connected: #include <LiquidCrystal_I2C.h> // Look for LiquidCrystal I2C library by Marco Schwartz LiquidCrystal_I2C lcd ( 0x 27 , 16 , 2 ) ;  // set the LCD address to 0x3F for a 16 chars and 2 line display #define sensorPin A0 void setup () {   // Begin serial communication at a baud rate of 9600:   Serial . begin ( 9600 ) ;   lcd . init () ;   lcd . clear () ;           lcd . backlight () ;      // Make sure backlight is on     // Print a message on both lines of the LCD.   lcd . setCursor ( 2 , 0 ) ;   //Set cursor to character 2 on line 0   lcd . print ( "Hello world!" ) ;     lcd . setCursor ( 2 , 1 ) ;   //Move cursor to character 2 on line 1   lcd . print ( "LCD Tutorial" ) ; } void loop () {   // Get a reading from the temperature sensor:   int reading ...