Szervomotor-irányítás: Teljes útmutató
Főbb tanulságok:
Szervomotor-irányítás definiálása: A szervomotor-irányítás lehetővé teszi a motor helyzetének, sebességének és gyorsulásának pontos manipulációját elektronikus jelekkel.
Visszacsatolási mechanizmus: A visszacsatolási rendszer, amely általában potenciometer vagy kódoló, biztosítja, hogy a motor kimenete pontosan megegyezzen a vezérlési bemenettel.
PWM jel: A hosszúságú impulzus moduláció (PWM) kulcsfontosságú a szervó helyzetének beállításához az elektromos impulzusok időtartamának változtatásával.
Arduino és szervomotorok: Az Arduino alaplap használata egy népszerű és hatékony módja a szervomotorok programozására és irányítására minimális hardverbeállítással.
Szervomotorok alkalmazásai: A szervomotorok létfontosságúak az olyan projektekhez, amelyekben pontatlan pozíciós irányítás szükséges, például a robotika és az automatizált rendszerek esetén.
A szervomotor egy magas pontosságú és precíziós forgáshoz tervezett motor. Egy tipikus DC motortól eltér abban, hogy képes egy adott pozíciót tartani, nem pedig folyamatosan forogni. Ez a tulajdonság a szervomotorokat ideálisvá teszi a robotika, automatisálás és hobbi projektek számára.
Ez a cikk bemutatja, hogyan működik a szervomotor-irányítás, a különböző szervomotor-típusokat, valamint a számos irányítási módot és eszközt. Példákat is közvetíti a szervomotor-alkalmazásokról és projektekről.
Mi az a szervomotor?
A szervomotor definíció szerint egy aktuátor, amely lehetővé teszi a helyzet (szög), sebesség és gyorsulás pontos irányítását. A tipikus szervomotor három fő komponensből áll: DC motor, vezérlőkör és visszacsatolási eszköz.
A DC motor a szervót hajtja, és csatlakozik a fogaskerekekhez, amelyek lelassítják a sebességet és növelik a nyomatékot a kimeneti tengelyen.

A kimeneti tengely a szervó része, amely forog és mozgatja a terhelést.
A vezérlőkör felelős a külső vezérlőből származó bemeneti jelek fogadásáért és feldolgozásáért. Ezek a jelek azt mondják meg a szervónak, hogy milyen helyzetbe, sebességre vagy irányba kellene mozdulnia. A vezérlőkör továbbá áramot küld a DC motorhoz, hogy meghajtja azt.
A visszacsatolási eszköz általában potenciometer vagy kódoló, amely méri a kimeneti tengely jelenlegi helyzetét.

A visszacsatolási eszköz a helyzetadatokat visszaadja a vezérlőkörnek, amely ezután a DC motor áramát állítja be, hogy a tényleges helyzet megegyezzen a bemeneti jelben megadott kívánt helyzettel.
A vezérlőkör és a visszacsatolási eszköz közötti visszacsatolási hurok biztosítja, hogy a szervó pontosan elérje és fenntartsa a mozgási tartományán belül bármilyen helyzetet.
Hogyan irányítható a szervomotor?
A szervomotorok PWM (hosszúságú impulzus moduláció) jel küldése a szervó jelvonására történő vezérléssel. A PWM egy technika, amely gyorsan kapcsolgat egy jelet, hogy különböző szélességű impulzusokat hozzon létre. Az impulzusok szélessége meghatározza a kimeneti tengely helyzetét.
Például, ha 1,5 millisekonddal (ms) szélességű PWM jelet küld, a szervó a semleges pozícióba (90 fok) mozdul.

Ha 1 ms szélességű PWM jelet küld, a szervó a minimális pozícióba (0 fok) mozdul. Ha 2 ms szélességű PWM jelet küld, a szervó a maximális pozícióba (180 fok) mozdul.
A PWM jel frekvenciája 50 Hz, ami azt jelenti, hogy minden 20 ms után ismétlődik. Az impulzus szélessége ebben a periódusban 1 ms és 2 ms között változhat.
Számos módja van a PWM jelek generálásával és küldésével a szervomotorokhoz. Néhány leggyakrabban használt mód:
Arduino alaplap vagy más mikrokontroller használata
Potenciometer vagy más analóg érzékelő használata
Joystick vagy más digitális bemeneti eszköz használata
Dedikált szervó-irányító vagy -illesztő használata
A következő részekben részletesebben megvizsgáljuk mindegyiket ezeket a módszereket, és néhány példát látnak, hogyan működnek.
Szervomotor-irányítás Arduino-val
Az Arduino a legnépszerűbb platform a szervomotorok irányításához. Az Arduino alaplapon beépített PWM kimenetek találhatók, amelyeket szervókhoz küldhetünk jeleket. Az Arduino rendelkezik egy Servo könyvtárral, amely könnyen írható kódot a szervó-irányításhoz.
A szervomotor-irányítás az Arduino segítségével a következőkre lesz szükség:
Egy Arduino alaplap (pl. Arduino UNO)
Egy standard szervomotor (pl. SG90)
Csatlakozódrótkák
Egy breadboard (opcionális)
A szervóból származó piros drótkötőt az Arduino alaplap 5V-jére kell csatlakoztatni. A fekete drótkötőt a GND-re kell csatlakoztatni. A fehér drótkötőt a 9-es pinnak kell csatlakoztatni.
Az Arduino alaplap programozásához szükséges az Arduino IDE (online vagy offline). Használhatja a Servo könyvtárban található példákat, vagy saját kódot írhat.
A következő kód bemutatja, hogyan lehet egy szervomotort 180 fokon keresztül előre-hátra mozdítani egy for ciklus segítségével:
#include <Servo.h> // Servo könyvtár belefoglalása
Servo myservo; // Servo objektum létrehozása
int pos = 0; // Pozíció változó
void setup() {
myservo.attach(9); // Servo objektum csatlakoztatása a 9-es pinnak
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // Ciklus 0-tól 180-ig fokonként
myservo.write(pos); // Pozíció írása a Servo objektumhoz
delay(15); // 15 ms várakozás
}
for (pos = 180; pos >= 0; pos -= 1) { // Ciklus 180-től 0-ig fokonként
myservo.write(pos); // Pozíció írása a Servo objektumhoz
delay(15); // 15 ms várakozás
}
}
Ez a kód két ciklust használ a pozíció változó 0-ról 180-ig, majd 180-ről 0-ig növelésére és csökkentésére. Majd ezt az értéket a Servo objektumhoz írja a myservo.write(pos) paranccsal. Hozzáad 15 ms várakozást minden lépés között, hogy lassítsa a mozgást.
Töltsön fel ezt a kódot az Arduino alaplapra az IDE Feltöltés gombjának használatával, és figyelje, ahogy a szervomotor simán előre-hátra mozdul.
Szervomotor-irányítás potenciometerrrel
A potenciometer egy analóg érzékelő, amely ellenállását változtathatja meg a forgóknob forgatásának mennyiségétől függően. A potenciometert bemeneti eszközként használhatja a szervomotor-irányításhoz.
A szervomotor-irányítás potenciometerrrel a következőkre lesz szükség:
Egy Arduino alaplap (pl. Arduino UNO)
Egy standard szervomotor (pl. SG90)
Egy potenciometer (10k Ohm)
Csatlakozódrótkák
Egy breadboard
A potenciometer és a szervomotor csatlakoztatásának ábrázolása egy Arduino alaplaphoz:
A potenciometer piros drótkötőt az Arduino alaplap 5V-jére kell csatlakoztatni. A fekete drótkötőt a GND-re kell csatlakoztatni. A zöld drótkötőt az A0 pinnak kell csatlakoztatni.
A szervó piros drótkötőt a breadboard egyik sorának 5V-jére kell csatlakoztatni. A fekete drótkötőt a GND-re kell csatlakoztatni. A fehér drótkötőt a D9 pinnak kell csatlakoztatni.
Az Arduino alaplap programozásához ugyanazt a kódot használhatja, mint az előző példában, de néhány sort kell módosítania:
#include <Servo.h> // Servo könyvtár belefoglalása
Servo myservo; // Servo objektum létrehozása
int potpin = A0; // A potenciometerhez csatlakoztatott pin
int val = 0; // Változó a potenciometer értékének olvasásához
void setup() {
myservo.attach(9); // Servo objektum csatlakoztatása a 9-es pinnak
}
void loop() {
val = analogRead(potpin); // Érték olvasása a potenciometerből (0 -1023)
val = map(val,0,1023,0,180); // Érték tartományának leképezése (0 -180)
myservo.write(val); // Leképezett érték írása a Servo objektumhoz
delay(15); // 15 ms várakozás
}
Ez a kód az analogRead(potpin) függvényt használja a potenciometer értékének olvasásához, amely az A0 pinnhoz csatlakozik. Majd a map(val,0,1023,0,180) függvényt használja a 0 -1023 érték tartományának leképezésére 0 -180 fokra. Írja ezt az értéket a Servo objektumhoz a myservo.write(val) függvénnyel. Hozzáad 15 ms várakozást, ugyanúgy, mint az előző példában.
Töltheti fel ezt a kódot az Arduino alaplapra az Upload gombbal. Meg kell látnia, hogy a szervomotor a potenciometer forgóknob helyzetétől függően mozdul.
Szervomotor-irányítás joystick-el
A joystick egy digitális bemeneti eszköz, amely képes detektálni a két tengely menti mozgás irányát és nagyságát. A joystick-et használhatja a szervomotor-irányításhoz, a joystick x-tengelyét a szervó szögével leképezve.
A szervomotor-irányítás joystick-el a következőkre lesz szükség:
Egy Arduino alaplap (pl. Arduino UNO)
Egy standard szervomotor (pl. SG90)
Egy joystick modul (pl. KY-023)
Csatlakozódrótkák
Egy breadboard
A joystick modul és a szervomotor csatlakoztatásának ábrázolása egy Arduino alaplaphoz:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
A joystick modul piros drótkötőt az Arduino alaplap 5V-jére kell csatlakoztatni. A fekete drótkötőt a GND-re kell csatlakoztatni. A zöld drótkötőt az A0 pinnak kell csatlakoztatni.
A szervó piros drótkötőt a breadboard egyik sorának 5V-jére kell csatlakoztatni. A fekete drótkötőt