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

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

 

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

Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 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 μεταβλητή, η οποία γράφεται στον σερβομηχανισμό.

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

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

Σχόλια

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

Φωτοαντιστάτης

int a; // εδώ θα κρατάμε την τιμή που διαβάζουμε από τον φωτοαντιστάτη float b; // εδώ θα αποθηκεύουμε την τάση που έχει ο φωτοαντιστάτης στα άκρα του float c; // εδώ θα αποθηκεύουμε την τιμή της αντίστασης του φωτοαντιστάτη int d; // εδώ θα αποθηκεύσουμε την τιμή-όριο πάνω από την οποία θα ανάβουμε το void setup() { Serial.begin(9600); // ξεκινάμε το σειριακό μόνιτορ του Arduino IDE  d=500; // τιμή πάνω από την οποία θα ανάβουμε το LED pinMode(6, OUTPUT); // το πιν 6 θα είναι ή ΕΞΟΔΟΣ που θα συνδέσουμε το LED } void loop() { a=analogRead(A0); // διάβασε την αναλογική είσοδο A0 και βάλε την τιμή στην a  Serial.print("Τιμή: "); // απεικόνισε την τιμή της a στο σειριακό μόνιτορ του Arduino IDΕ Serial.print(a); Serial.print("\t"); b=a*5.0/1023; // υπολόγισε την τιμή της τάσης στα άκρα του φωτοαντιστάτη Serial.print("Τάση: "); Serial.print(b); // απεικόνισε την τιμή της τάσης Serial.print(" V \t"); c=b*10.0/(5-b); // υπολόγισε την αντίσταση του φωτοα...

esp32-bluetooth

  #include "BluetoothSerial.h" BluetoothSerial SerialBT; const int ledPin= 2 ; void setup () {   // put your setup code here, to run once: SerialBT . begin ( "ESP32-Bluetooth20250402Β" ) ; pinMode ( ledPin,OUTPUT ) ; } void loop () {   // put your main code here, to run repeatedly: if ( SerialBT . available ()) {   char c= SerialBT . read () ;   if ( c=='1' ){     digitalWrite ( ledPin, 1 ) ;   } else if ( c=='0' ) {     digitalWrite ( ledPin, 0 ) ;   } } }