U ovom uputstvu ćemo upravljati servo motorom tvrtke ARDUINO UNO. Servo motori se koriste tamo gdje postoji potreba za preciznim kretanjem ili položajem osovine. Nisu predloženi za velike brzine. Oni su predloženi za malu brzinu, srednji zakretni moment i točnu primjenu položaja. Ovi se motori koriste u robotskim strojevima za upravljanje rukama, kontrolama leta i sustavima upravljanja.
Servo motori su dostupni u različitim oblicima i veličinama. Servo motor će uglavnom imati žice, jedna je za pozitivni napon, druga je za masu, a zadnja za podešavanje položaja. CRVENA žica spojena je na napajanje, crna žica spojena na masu, a ŽUTA žica spojena na signal.

Servo motor je kombinacija istosmjernog motora, sustava za kontrolu položaja, stupnjeva prijenosa. Položaj osovine istosmjernog motora podešava se upravljačkom elektronikom u servo kolu, na temelju omjera radne snage PWM signala SIGNAL pin.
Jednostavno rečeno, upravljačka elektronika podešava položaj vratila upravljajući istosmjernim motorom. Ovi podaci o položaju osovine šalju se kroz SIGNAL iglu. Podaci o položaju upravljaču trebaju se slati u obliku PWM signala kroz signalnu iglu servo motora.
Učestalost PWM (Pulse Width Modulated) signala može se razlikovati ovisno o vrsti servo motora. Ovdje je najvažniji ODNOS DUŽNOSTI PWM signala. Na temelju ovog DUŽNOG ODNOSA upravljačka elektronika podešava osovinu.
Kao što je prikazano na donjoj slici, da bi se osovina pomaknula na sat od 9 °, ODNOS UKLJUČIVANJA mora biti 1 / 18.ie. 1 ms vremena uključenja i 17 ms vremena isključenja u signalu od 18 ms.

Da bi se osovina pomaknula na sat od 12 °, vrijeme uključivanja signala mora biti 1,5 ms, a vrijeme isključivanja 16,5 ms. Taj omjer dekodira upravljački sustav u servo sustavu i na temelju njega podešava položaj. Ovaj PWM ovdje generiran je pomoću ARDUINO UNO.
Komponente sklopa
Hardver: ARDUINO UNO, napajanje (5v), kondenzator 100uF, tipke (dva dijela), otpor 1KΩ (dva dijela), servo motor (koji je trebalo testirati).
Softver: arduino IDE (Arduino svake noći).
Dijagram i objašnjenje Arduino servo motora

U uobičajenim slučajevima trebamo otići do registara regulatora za podešavanje frekvencije i za dobivanje potrebnog omjera radne snage za preciznu kontrolu položaja servo-sustava, u ARDUINO-u ne moramo raditi te stvari.
U ARDUINO imamo unaprijed definirane knjižnice, koje će u skladu s tim podesiti frekvencije i omjere dužine nakon što se datoteka zaglavlja pozove ili uključi. U ARDUINO jednostavno moramo navesti položaj serva koji je potreban i UNO automatski prilagođava PWM.
Stvari koje moramo učiniti za dobivanje preciznog položaja servo servoa su:
|
Prvo moramo postaviti frekvenciju PWM signala i za to bismo trebali nazvati „#include
Sada moramo definirati naziv za servo "Servo sg90sevo", ovdje je odabrano ime "sg90servo", pa dok pišemo za napitak koristit ćemo to ime, ova značajka dobro dođe kada imamo mnogo servo upravljača, ovime možemo kontrolirati čak osam servo-pogona.
Sada kažemo UNO-u gdje je signalni pin servoa priključen ili gdje treba generirati PWM signal. Da bismo to učinili, imamo “Sg90.attach (3);”, ovdje govorimo UNO-u da smo signalni pin servoa povezali na PIN3.
Preostalo je samo postaviti položaj, položaj servoa postavit ćemo pomoću "Sg90.write (30);", ovom se naredbom servo kazaljka pomiče za 30 stupnjeva, pa je to to. Nakon toga kad god trebamo promijeniti položaj servoa, moramo pozvati naredbu "Sg90.write (potreban_položaj_kut);" U ovom krugu imat ćemo dvije tipke, jedna tipka povećava položaj servo-a, a druga služi za smanjivanje položaja servo-servoa.
Vodič za upravljanje servo motorom Arduino objašnjen je u koraku po koraku dolje navedenog C koda.
