Servo motor nədir?
Servo motor idarəçisinin tərifə
Servo motor idarəçisi (və ya servo motor sürücüsü) servo motorun mövqeyini idarə etmək üçün istifadə olunan şəbəkədir.
Servo motor sürücü şəbəkəsi
Servo motor sürücü şəbəkəsi mikro-idarəçi, enerji mənbəyi, potensioметр, və kontaktları daxil edir, bu da dəqiq motor idarəçiliyini təmin edir.
Mikro-idarəçinin rolu
Mikro-idarəçi xüsusi aralıklarda PWM impulsları yaratmaqla servo motorun dəqiq pozisyonunu idarə edir.
Enerji mənbəyi
Servo motor idarəçisi üçün enerji mənbəyinin dizaynı qoşulmuş motorların sayına görə fərqlənir. Servo motorlar adətən 4,8V-dən 6V-ə qədər enerji mənbəyi istifadə edirlər, 5V standart hesab olunur. Mənbəyə gələn voltaj həddi keçirsə, motor bozula bilər. Cərəyan çəkisi momentə və iş rejimindən asılıdır, boşdayken az, çalışarkən çox ola bilər. Maksimum cərəyan çəkisi, yəni durdurma cərəyanı, bəzi motorlar üçün 1A-yə çata bilər.
Tək motora idarəetmək üçün LM317 kimi voltaj regulyatoru və soğutucu istifadə edin. Bir neçə motor üçün daha yüksək cərəyan göstəriciləri olan keyfiyyətli bir enerji mənbəyi lazımdır. SMPS (Switched Mode Power Supply) yaxşı bir seçimdir.
Aşağıdakı blok şeması servo motor sürücüsündəki bağlantıları göstərir

Servo motorun idarə edilməsi
Servo motor üç terminali var.
Pozisiya siqnali (PWM impulsları)
Vcc (Enerji mənbəyindən)
Yer

Servo motorun açısal pozisiyası xüsusi enliklərdən PWM impulsları tətbiq edərək idarə edilir. Impuls müddəti 0 dərəcə dönüş üçün təxminən 0,5ms-dən 180 dərəcə dönüş üçün 2,2ms-ə qədər dəyişir. Impulslar 50Hz-60Hz tezlikləri ilə verilməlidir.
Aşağıdakı şəkillə göstərilən PWM (Pulse Width Modulation) formasını yaratmaq üçün mikro-idarəçinin daxili PWM modulundan istifadə edə bilərsiniz və ya zamanlayıcılar istifadə edilə bilər. PWM bloku daha esasən, çoxsaylı mikro-idarəçi ailələrinin dizaynında daha fleksibildir və servo motor kimi tətbiqlər üçün daha uyğun bir seçimdir. Fərqli enliklərdən PWM impulsları üçün daxili registry məlumatlarına uyğun olaraq proqramlaşdırılmalıdır.
İndi, mikro-idarəçiyə nə qədər dönməsi lazımdır, onu da deyə bilərik. Bu məqsəd üçün sadə bir potensioметр və ADC istifadə edərək dövrün dərəcəsini almaq və ya daha mürəkkəb tətbiqlər üçün akselerometr istifadə edilə bilər.

Proqram alqoritmi
Bir servo motoru idarə etmək üçün proqramı dizayn edək və pozisiya məlumatı idarəçinin bir pininə qoşulmuş potensioметр vasitəsilə verilsin.
Giriş/çıxış üçün port pinlərini başladın.
İstənilən servo pozisiyası üçün ADC-ni oxuyun.
İstənilən dəyər üçün PWM registry proqramlaşdırın.
PWM modulunu aktiv etdikdə, seçilmiş PWM kanalının pin yüksek (loqika 1) olacaq və tələb olunan enlikə çatdıqda yenidən aşağı (loqika 0) olacaq. Bu səbəbdən, PWM-i aktiv etdikdən sonra təxminən 19 ms gecikmə ilə bir zamanlayıcı başladın və zamanlayıcının dolmasına qədər gözləyin. Sonra 2-ci addıma keçin.
Mikro-idarəçi seçimizə bağlı olaraq müxtəlif PWM rejimləri mövcuddur. Servonu idarə etmək üçün kodda bir qədər optimallaşdırma edilməlidir.
Birdən çox servoya ehtiyac duyduğunuz halda, o qədər PWM kanalına ehtiyacınız olacaq. Hər bir servoya ardıcıl olaraq PWM siqnali verilə bilər. Amma hər bir servoya olan impuls təkrar tezliyinin saxlanılması vacibdir. Aksi halda, servolar sinkronlaşmadan çıxa bilər.