Általában a szervomotoroknak vannak karjai, amelyeket Arduino segítségével lehet vezérelni. A szervomotorok egy vezérlőrendszerből állnak, amely biztosítja Visszacsatolás a motor tengelyének aktuális helyzetéről ez a visszacsatolás nagy pontosságú mozgást tesz lehetővé.
Szervo motor kivezetés
Általában a legtöbb szervomotornak három érintkezője van:
- Vcc pin (általában piros 5V)
- GND tű (általában fekete 0 V)
- Bemeneti jel pin (PWM jel vétele az Arduino-tól)
Szervo motor működése
A szervomotort úgy tudjuk vezérelni, hogy a Vcc tűt 5 V-ra, a GND tűt 0 V-ra csatlakoztatjuk. A sárga színű terminálon a PWM jel, amely a szervomotor forgási szögét szabályozza. A PWM jel szélessége megadja nekünk azt a szöget, amelyben a motor elforgatja a karját.
Ha megnézzük a szervomotorok adatlapját, a következő paramétereket kapjuk:
- PWM jel időtartama
- Minimális szélesség PWM-hez
- Maximális szélesség a PWM-hez
Mindezek a paraméterek előre meghatározottak az Arduino Servo könyvtárban.
Szervomotorok Arduino-val
A szervomotorok rendkívül könnyen vezérelhetők az Arduino segítségével, köszönhetően a Szervo Könyvtár amely segít nekünk a kódunk igény szerinti testreszabásában, és lehetővé teszi, hogy a szervokart a kívánt szögben elforgatjuk.
Mindhárom fent említett paraméter rögzítve van a Szervo könyvtárban. Ezekkel a paraméterekkel a következő módon tudjuk szabályozni a szervomotor szögét:
- Ha a PWM jelszélesség = WIDTH_MAX, a szervó 180o-ra elfordul
- Ha a PWM jelszélesség = WIDTH_MIIN, a szervo 0o-ra elfordul
- Ha a PWM jelszélesség között van WIDTH_MAX és WIDTH_MIN , a szervomotor 0o és 180o között fog forogni
A kívánt PWM jelet generálhatunk néhány Arduino tűn. PWM jelet ad a szervomotor bemeneti jelének érintkezője. A szervo maradék két érintkezőjének csatlakoztatása az Arduino 5V-hoz és GND-hez.
A szervomotor vezérlése az Arduino segítségével
Itt elmagyarázom, hogyan csatlakoztathatjuk és programozhatjuk a szervomotorunkat az Arduino segítségével. Minden, amire szükséged van:
- Arduino UNO
- USB B kábel
- Szervómotor
- Jumper vezetékek
Hogyan programozzuk a szervót Arduino-val
Íme néhány egyszerű lépés:
1. lépés: Tartalmazza az előre meghatározott szervo könyvtárat:
# tartalmazza < Szervo.h >2. lépés: Szervoobjektum létrehozása:
Szervo myservo;Tipp: Ha egynél több szervomotort vezérel, több szervoobjektumot kell létrehoznia:
Szervo myservo1;Szervo myservo2;
3. lépés: Állítsa be a vezérlőcsapot (9) az Arduino Uno-n, amely PWM jelet küld a szervo bemeneti jelportjához:
myservo.csatolni ( 9 ) ;4. lépés: Forgassa el a szervomotor szögét a kívánt értékre, például 90o-kal:
myservo.write ( pozíció ) ;Arduino kód
Szervomotor példaprogram megnyitása innen Fájl>Példa>Szervo>Sweep , megnyílik egy új ablak, amely megmutatja a szervovázlatunkat:
#includeSzervo myservo; // szervo objektum jön létre számára szervomotor vezérlése
int poz = 0 ; // a szervo pozíció tárolására egy új változó jön létre
üres beállítás ( ) {
myservo.csatolni ( 9 ) ; // ez az akarat készlet Arduino tű 9 számára PWM kimenet
}
üres hurok ( ) {
számára ( poz = 0 ; poz = 0 ; poz -= 1 ) { // indul 180 nak nek 0 fokon
myservo.write ( pozíció ) ; // mondd a szervónak, hogy menjen „poz” pozícióba
késleltetés ( 5 ) ; // vár számára 5 ms, így a szervo elérheti a pozíciót
}
}
A program összeállítása és feltöltése után a szervomotor lassan forogni kezd a kiindulási helyzetből 0 fokról 180 fokra, lépésenként egy-egy fokkal. Amikor a motor befejezte a 180 fokos forgást, a kiindulási pontjával ellentétes irányba indul el, azaz 0 fokban.
Sematika
A szervomotor vezérlése potenciométerrel
A szervomotor helyzetét kézzel is szabályozhatjuk. Ehhez szükségünk van a Potenciométer . A potenciométernek három tűje van. Csatlakoztassa a két külső érintkezőt az Arduino 5 V-os Vcc-hez és GND-hez, a középsőt pedig az Arduino kártya A0 érintkezőjéhez.
Hogyan programozzuk a szervót potenciométerrel
A potenciométer vázlatának nagy része megegyezik az előző példával. Az egyetlen különbség egy új változó val és alcsap a kód setup és loop része előtt van definiálva.
int potpin = A0;int val;
A hurokszakaszban az A0 analóg tűt a funkcióval rendelkező potenciométer értékeinek kiolvasására használják analógRead() . Az Arduino kártyák 10 bites ADC-t (analóg-digitális konvertert) tartalmaznak, amely 0 és 1023 közötti értékeket ad, attól függően, hogy a potenciométer milyen pozícióban van:
val = analóg Olvasás ( alcsap ) ;Végül is használtuk térkép() A funkció segítségével újra leképezi a számokat 0 és 1023 között a szervó szögének megfelelően, mivel tudjuk, hogy a szervomotorok csak 00 és 1800 között tudnak forogni.
val = térkép ( val, 0 , 1023 , 0 , 180 ) ;Arduino kód
Nyissa meg a gombvázlatot az Arduino IDE-ben, lépjen ide Fájlok>Példák>Szervo>Konb . Megnyílik egy új ablak, amely megmutatja nekünk a szervó gomb vázlatát:
#includeSzervo myservo; // Szervo objektum név myservo létrehozása
int potpin = A0; // meghatározó analóg tű számára potenciométer
int val; // változó melyik akarat olvas analóg tűértékek számára potenciométer
üres beállítás ( ) {
myservo.csatolni ( 9 ) ; // meghatározott tű 9 számára A szervó PWM bemeneti jele Arduino-n
}
üres hurok ( ) {
val = analóg Olvasás ( alcsap ) ; // kiolvassa az értéket a potenciométerről ( közötti érték 0 és 1023 )
val = térkép ( val, 0 , 1023 , 0 , 180 ) ; // skálázza a szervóval használandó értéket ( közötti érték 0 és 180 )
myservo.write ( val ) ; // beállítja a szervo pozíciót skálázott értékkel
késleltetés ( tizenöt ) ; // vár számára a szervót, hogy pozícióba kerüljön
}
A fenti kód segít a szervomotor tengelyének potenciométerrel történő vezérlésében, a tengely 0 és 180 fok között forog. A sebességet a szervó irányával együtt is fenntarthatjuk vele.
Kördiagramm
Hány szervomotort csatlakoztathatok az Arduino-hoz?
Az Arduino UNO által kezelhető szervomotorok maximális száma legfeljebb 12 Arduino szervokönyvtárral, és legfeljebb 48 szervó csatlakoztatható olyan táblákkal, mint a Mega.
Tipp: Közvetlenül működtethetjük a szervót Arduino árammal, de ne feledjük, ha a szervomotorok többet fogyasztanak, mint 500mA akkor az Arduino kártya automatikusan visszaállhat és elveszítheti az áramellátást. Javasoljuk, hogy mindig külön tápegységet használjon a szervomotorokhoz.
Következtetés
Ebben az oktatóanyagban az Arduino szervomotorok vezérlési mechanizmusát ismertettük. Kitértünk a szervo helyzetének és sebességének potenciométerrel történő szabályozásának alapjaira. Most már van fogalma a szervóról, és a robotikájának lehetőségei, az RC-projektek és a szervót használó automatizálás végtelenek.