- Anyag szükséges
- Kördiagramm
- Mi az a szervomotor?
- Arduino kód magyarázat
- Több szervó vezérlése az Arduino segítségével
Egy vagy két szervo használata az Arduinóval egyszerű, de mi van akkor, ha egynél több szervomotort akarunk használni?
Itt megmutatjuk, hogy hogyan lehet irányítani a több szervomotort az Arduino-val. Több szervomotor összekapcsolása az Arduino-val egyszerűnek tűnik, de ha az összes szervót összekötjük az Arduino tápcsatlakozóival, akkor azok nem fognak megfelelően működni, mivel nincs elegendő áram az összes motor meghajtásához. Tehát külön tápegységet kell használnia a motorokhoz, akár egyes adapterekből (5v 2A), akár jó minőségű 9v-os elemekből.
Anyag szükséges
- Arduino UNO
- Szervómotor
- Tápegység
- Kenyérlemez
- Vezetékek csatlakoztatása
Kördiagramm
Mi az a szervomotor?
Mielőtt részleteznénk, először tudnunk kell a Servo Motorsról.
A szervomotorok különböző formában és méretben kaphatók. A szervomotor főként vezetékekkel rendelkezik, az egyik a pozitív feszültségre vonatkozik, a másik a földre, az utolsó pedig a helyzet beállítására. A RED vezeték csatlakozik az áramhoz, a fekete vezeték a földhöz és a SÁRGA vezeték csatlakozik a jelhez.
A szervomotor az egyenáramú motor, a helyzetszabályozó rendszer és a fogaskerekek kombinációja. Az egyenáramú motor tengelyének helyzetét a szervóban lévő vezérlő elektronika állítja be, a SIGNAL tű PWM jelének teljesítményaránya alapján.
Egyszerűen szólva a vezérlő elektronika állítsa be a tengely helyzetét a DC motor vezérlésével. Ezeket az adatokat a tengely helyzetéről a SIGNAL csapon keresztül küldjük. A helyzetadatokat a vezérlőnek PWM jel formájában kell elküldeni a szervomotor Signal csapján keresztül.
A PWM (impulzusszélesség modulált) jel frekvenciája a szervomotor típusától függően változhat. A fontos itt a PWM jel DUTY RATIO. Ezen DUTY RATION alapján a vezérlő elektronika állítja be a tengelyt.
Amint az az alábbi ábrán látható, a tengely 9o órára történő elmozdításához a BEKAPCSOLÁSI ARÁNYNAK 1 / 18.ie-nek kell lennie. 1 ms BE idő és 17 ms OFF idő 18 ms jelben.
Ahhoz, hogy a tengely 12o órára mozdulhasson, a jel bekapcsolási idejének 1,5 ms-nak, a kikapcsolási idejének 16,5 ms-nak kell lennie. Ezt az arányt a szervo vezérlő rendszere dekódolja, és ez alapján állítja be a helyzetet. Ez az itt található PWM az ARDUINO UNO használatával jön létre.
Mielőtt összekapcsolná a szervókat az Arduino-val, tesztelheti szervóját ennek a szervomotor tesztelő áramkörnek a segítségével. Ellenőrizze az alábbi szervo projektjeinket is:
- Szervomotor vezérlés Flex Sensor segítségével
Arduino kód magyarázat
A végén található a teljes szerver vezérlés teljes Arduino kódja.
Az Arduino rendelkezik a Servo Motors könyvtárával, és kezeli az összes PWM-rel kapcsolatos dolgot a szervo forgatásához, csak meg kell adnia azt a szöget, amelyre el akarja forgatni, és ott van a servo1.write (szög) funkció ; amely a szervót a kívánt szögbe forgatja.
Tehát itt kezdjük azzal, hogy meghatározzuk a Servo motor könyvtárát.
#include
Az alábbi kódban mind a négy szervót inicializáljuk: Servo1, Servo2, Servo3 és Servo4.
Servo szervo1; Servo szervo2; Servo szervo3; Servo szervo4;
Ezután az Arduino segítségével beállítjuk a szervo összes bemeneti gombját. Amint az az alábbi kódban látható, a Servo1 az Arduino 3. tűjéhez csatlakozik. Megváltoztathatja a csapokat saját maga szerint, de ne feledje, hogy PWM csapnak kell lennie. A szervo használata az Arduino digitális csapjaival nem megbízható.
void setup () { servo1.attach (3); szervo2.attach (5); szervo3.attach (6); szervo4.attach (9); }
Most a void loop () függvényben éppen az összes szervót forgatjuk 0-ról 180 fokra, majd 180-ról 0 fokra. Az alábbi kódban használt késleltetés a szervo sebességének növelésére vagy csökkentésére szolgál, mivel befolyásolja az 'i' változó növekvő vagy csökkenő sebességét.
void loop () { for (int i = 0; i <180; i ++) { szervo1.write (i); szervo2.write (i); szervo3.write (i); servo4.write (i); késés (10); } for (i = 180; i> 0; i-- ) { szervo1.write (i); szervo2.write (i); szervo3.write (i); servo4.write (i); késés (10); } }
Több szervó vezérlése az Arduino segítségével
Mindannyian szembesülünk a jelenlegi problémával, miközben több mint két szervót használunk egy Arduinóval. Az egyetlen megoldás erre az, hogy külső áramellátást kell csatlakoztatni megfelelő áramerősséggel (ebben a projektben 2A-t használtam 9v-os tápfeszültséggel). Külső tápellátáshoz használhat adaptereket, RPS-t (szabályozott tápegység) vagy jó minőségű 9 V-os elemeket, ugyanakkor használhatja laptopjának USB-portját a kicsi Servo táplálásához. A külső tápellátás használatához csak rövidre kell zárnia az Arduino földet a külső tápfeszültségre.
Használja az alább megadott Arduino kódot az Arduino programozásához, és csatlakoztassa az összes szervomotort az áramköri ábra szerint, a motorok megfelelő áramellátásával. Ezért minden szervó megszakítás nélkül működik együtt.