Šta je kontroler servo motora?
Definicija kontrolera servo motora
Kontroler servo motora (ili vozač servo motora) definisan je kao šema koja se koristi za kontrolu pozicije servo motora.
Šema vozača servo motora
Šema vozača servo motora uključuje mikrokontroler, napajanje, potenciometar i konektore, obezbeđujući preciznu kontrolu motora.
Uloga mikrokontrolera
Mikrokontroler generiše PWM impulse na određenim intervalima kako bi tačno kontrolirao poziciju servo motora.
Napajanje
Dizajn napajanja za kontroler servo motora zavisi od broja povezanih motora. Servo motori tipično koriste napajanje od 4,8V do 6V, sa 5V kao standard. Prekoračenje napajanja može oštetiti motor. Struja koja se povlači varira u zavisnosti od momenta i manja je u režimu čekanja, a veća kada se pokreće. Maksimalna struja, poznata kao struja zaustavljanja, može doseći do 1A za neke motive.
Za kontrolu jednog motora koristite regulator napona poput LM317 sa toplotnim otpornikom. Za više motora potrebno je visokokvalitetno napajanje sa većom kapacitetom struje. SMPS (napajanje prekidničkog režima) je dobar izbor.
Blok dijagram ispod pokazuje interkonekcije u vozaču servo motora

Kontrola servo motora
Servo motor ima tri terminala.
Signal pozicije (PWM impulsi)
Vcc (od napajanja)
Zemlja

Angularna pozicija servo motora kontrolira se primenom PWM impulsa određene širine. Trajanje impulsa se kreće od oko 0,5ms za rotaciju od 0 stepeni do 2,2ms za rotaciju od 180 stepeni. Impulsi treba da se daju na frekvencama oko 50Hz do 60Hz.
Da biste generisali PWM (Pulse Width Modulation) talas, kao što je prikazano na slici ispod, možete koristiti unutrašnji PWM modul mikrokontrolera ili timer. Koristiti PWM blok je fleksibilnije, jer većina familija mikrokontrolera dizajnira ovaj PWM blok kako bi bolje odgovarao potrebama aplikacija poput servo motora. Za različite širine PWM impulsa, potrebno je programirati unutrašnje registre.
Sada, takođe moramo da kazemo mikrokontroleru koliko treba da se rotira. Za tu svrhu, možemo koristiti jednostavan potenciometar i ADC da bismo dobili ugao rotacije, ili za složenije aplikacije može se koristiti akcelerometar.

Algoritam programa
Neka dizajniramo program za kontrolu jednog servo motora, a ulaz pozicije se daje preko potenciometra povezanog na pin kontrolera.
Inicijalizujte portove za ulaz/izlaz.
Procitajte ADC za željenu poziciju servo motora.
Programirajte registre PWM za željenu vrednost.
Čim aktivirate PWM modul, izabrani pin kanala PWM ide na visoku (logika 1) i nakon što se dostigne potrebna širina, ponovo ide na nisku (logika 0). Tako da, nakon aktivacije PWM, morate započeti tajmer sa kašnjenjem od oko 19 ms i čekati dok tajmer ne prekoraci. Idite na korak 2.
Postoji različiti režimi PWM koji možete koristiti u zavisnosti od izabranog mikrokontrolera. Trebalo bi da se u kodu uradi neka optimizacija kako bi se kontrolirao servo motor.
Ako planirate koristiti više servo motora, potreban vam je onoliko PWM kanala. Svaki servo motor može se redom dati PWM signal. Međutim, morate paziti da se održi stopa ponavljanja impulsa za svaki servo motor. Inače, servo motori će izgubiti sinkronizaciju.