Kas ir servomotora kontrolieris?
Servomotora kontroliera definīcija
Servomotora kontroliers (vai servomotora pārveidotājs) tiek definēts kā shēma, kas tiek izmantota, lai kontrolētu servomotora pozīciju.
Servomotora pārveidotāja shēma
Servomotora pārveidotāja shēmā ietilpst mikrokontroleris, elektropārveidotājs, potenciometrs un savienojumi, nodrošinot precīzu motora kontrolēšanu.
Mikrokontrolera loma
Mikrokontrolers ģenerē PWM impulsus noteiktos intervālos, lai precīzi kontrolētu servomotora pozīciju.
Elektropārveidotājs
Servomotora kontroliera elektropārveidotāja dizains atkarīgs no pieslēgtajiem motoriem. Servomotoriem parasti tiek izmantots 4,8V līdz 6V elektropārveidotājs, ar 5V kā standartu. Elektropārveidotāja sprieguma pārsniedzana var bojāt motoru. Strāvas patēriņš mainās ar momentu, un tas ir zemāks gaidošanas režīmā un augstāks strādājot. Maksimālais strāvas patēriņš, pazīstams kā stāvēšanas strāva, dažos motoros var sasniedzt līdz 1A.
Viena motoru kontrolēšanai izmantojiet elektropārveidotāju, piemēram, LM317 ar termisku lizumu. Daudziem motoriem nepieciešama augstākās kvalitātes elektropārveidotājs ar lielāku strāvas apjomu. Laba izvēle ir SMPS (Switched Mode Power Supply).
Bloka diagramma zemāk - rāda savienojumus servomotora pārveidotājā

Servomotora kontrolēšana
Servomotoram ir trīs kontakti.
Pozīcijas signāls (PWM impulsi)
Vcc (no elektropārveidotāja)
Dabūtā zeme

Servomotora leņķisko pozīciju kontrolē, pievienojot PWM impulsus noteiktām platībām. Impulsa ilgums ir aptuveni no 0,5ms 0 grādu rotācijai līdz 2,2ms 180 grādu rotācijai. Impulsus jādod frekvencē aptuveni 50Hz līdz 60Hz.
Lai ģenerētu PWM (Pulse Width Modulation) formu, kā attēlots zemāk esošajā diagrammā, var izmantot vai nu mikrokontrolera iekšējo PWM moduli, vai taimeri. Izmantojot PWM bloku, ir elastīgāk, jo daudzi mikrokontroleri to labi pielāgo aplikācijām, piemēram, servomotoriem. Dažādām PWM impulsu platībām mums jāprogrammē iekšējie reģistri atbilstoši.
Tagad mums jānorāda mikrokontrolerim, cik tā rotācija jābūt. Šim nolūkam mēs varam izmantot vienkāršu potenciometru un ADC, lai iegūtu rotācijas leņķi, vai sarežģītākiem pielietojumiem var izmantot akcelerometru.

Programmas algoritms
Izstrādāsim programmu, lai kontrolētu vienu servomotoru, un pozīcijas ievade notiek caur potenciometru, kas savienots ar kontrolēra kontaktu.
Inicializējiet portkontaktus ievades/izejas darbībai.
Nolasiet ADC vērtību, lai iegūtu vēlamā servomotora pozīciju.
Programmējiet PWM reģistrus, lai iestatītu vēlamo vērtību.
Tiklīdz aktivizējat PWM moduli, izvēlētais PWM kanāla kontakts kļūst augsts (loģika 1), un pēc nepieciešamās platumas sasniedzšanas, tas atkal kļūst zems (loģika 0). Tātad, aktivizējot PWM, jums jāaktivizē taimers ar aptuveni 19 ms aizveršanu un jāgaida, kamēr taimers pārplūst. Dodieties uz 2. soli.
Ir pieejami dažādi PWM režīmi, kuros var izmantot atkarībā no izvēlētā mikrokontrolera. Koda optimizācija jāveic, lai labāk kontrolētu servomotoru.
Ja plānojat izmantot vairākus servomotorus, jums būs nepieciešami tik daudzi PWM kanāli. Katram servomotoram PWM signālu var sniegt secīgi. Tomēr jāievēro, ka katram servomotoram jāuztur impulsu atkārtošanās frekvence. Citādi servomotori izslēdzies no sinhronizācijas.