Ebben az oktatóanyagban egy szervomotort fogunk irányítani az ARDUINO UNO által. A szervomotorokat ott alkalmazzák, ahol pontos tengelymozgásra vagy helyzetre van szükség. Ezeket nem javasoljuk nagy sebességű alkalmazásokhoz. Ezeket alacsony fordulatszámra, közepes nyomatékra és pontos helyzetmegadásra javasoljuk. Ezeket a motorokat robotkaros gépekben, repülésvezérlőkben és vezérlőrendszerekben használják.
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.
Áramköri alkatrészek
Hardver: ARDUINO UNO, tápegység (5v), 100uF kondenzátor, gombok (két darab), 1KΩ ellenállás (két darab), szervomotor (amelyet tesztelni kellett).
Szoftver: arduino IDE (Arduino esténként).
Arduino szervo motor áramköri rajza és magyarázata
Normál esetben a vezérlő regisztereihez kell fordulnunk a frekvencia beállításához és a szervo pontos helyzetszabályozásához szükséges munkarány eléréséhez, az ARDUINO-ban ezeket nem kell elvégeznünk.
Az ARDUINO-ban előre definiált könyvtárak vannak, amelyek ennek megfelelően állítják be a frekvenciákat és a terhelési arányokat, ha a fejlécfájl meghívásra vagy beillesztésre kerül. Az ARDUINO-ban egyszerűen meg kell adnunk a szükséges szervo helyzetét, és az UNO automatikusan beállítja a PWM-et.
A szervo pontos helyzetének meghatározásához meg kell tennünk:
|
Először be kell állítanunk a PWM jel frekvenciáját, és ehhez meg kell hívnunk a „#include
Most meg kell határoznunk a „Servo sg90sevo” szervó nevét, itt az „sg90servo” a kiválasztott név, tehát a bájital írása közben ezt a nevet fogjuk használni, ez a szolgáltatás jól jön, ha sok szervót tudunk irányítani, akár nyolc szervót is irányíthatunk ezzel.
Most elmondjuk az UNO-nak, hogy a szervo jelcsapja hol van csatlakoztatva, vagy hol kell előállítania a PWM jelet. Ehhez megvan az „Sg90.attach (3);”, itt azt mondjuk az UNO-nak, hogy csatlakoztattuk a szervo jelcsapját a PIN3-ra.
Mindössze a helyzet beállítása, a szervo helyzetét az „Sg90.write (30);” használatával állítjuk be, ezzel a paranccsal a szervokéz 30 fokkal mozog, tehát ennyi. Ezt követően, amikor meg kell változtatnunk a szervo helyzetét, meg kell hívnunk az „Sg90.write (needed_position_ angle);” parancsot. Ebben az áramkörben két gombunk lesz, az egyik gomb növeli a szervo helyzetét, a másik pedig a szervo helyzetének csökkentését szolgálja.
Az Arduino Servo Motor vezérlő oktatóanyagot lépésről lépésre ismertetjük az alább megadott C kóddal.