Servo Motor Nəzarəti: Tam İrəli
Əsas öyrənilmələr:
Servo motor nəzarətinin təriflənməsi: Servo motor nəzarəti, elektronik signal aracılığıyla motorun pozisiyasını, sürətini və ivməsini dəqiq manipulyasiya etməyə imkan verir.
Geri bildirim mekanizmi: Dəyişkən dirençli potensioemetriya və ya şifrator kimi geri bildirim sistemi, motorun çıxışının idarəetmə girişi ilə dəqiq uyğunlaşmasını təmin edir.
PWM Sinyali: Pulse-width modulation (PWM) servo motorun pozisiyasını qurmaq üçün elektrik impulslarının muddətini dəyişdirmək üçün vacibdir.
Arduino və Servo Motorlar: Arduino platası, minimal hardver quraşdırması ilə servo motorları proqramlaşdırmaq və idarə etmək üçün populyar və effektiv yoldur.
Servo Motorların Tətbiqləri: Servo motorlar, robototexnika və avtomatlaşdırılmış sistemlər kimi dəqiq pozisyon nəzarəti tələb olunan layihələr üçün əhəmiyyətli olan alətlərdir.
Servo motor, dövrənin yüksək dəqiqlik və doğruluğunu təmin etmək üçün dizayn edilmiş motordur. Servo motor, müntəzəm dövrəməyən, belə bir pozisiyada saxlanmaqda çox böyük imkanlara malikdir. Bu xüsusiyyət, servo motorları robototeknik, avtomatlaşdırma və hobbi layihələri üçün ideal edir.
Bu məqalə, servo motor nəzarətinin necə işlədiyini, fərqli növ servo motorları, müxtəlif idarəetmə üsulları və cihazlarını təsvir edir. Ayrıca, servo motorların tətbiqləri və layihələrin misallarını da verir.
Servo Motor Nədir?
Servo motor, pozisiya (bucaq), sürət və ivməni dəqiq idarə etməyə imkan verən aktuator kimi tərif olunur. Müntəzəm servo motor, üç əsas komponentdən ibarətdir: DC motor, idarəetmə mövzu və geri bildirim cihazı.
DC motor servo motoru gücə salır və dişlilərə birləşir ki, bu dişlilər sürəti azaldır və çıxış dişlisində momenti artırır.

Çıxış dişlisi, servo hissəsinin dövrənən və yükləri hərəkət etdirmək üçün olan hissəsidir.
İdarəetmə mövzusu, xarici idarəçidən gələn sinyalları qəbul və işləmək üçün məsuliyyət daşıyır. Bu sinyallar, servonun hansı pozisiyaya, sürətə və istiqamətə hərəkət etməsini söyləyir. İdarəetmə mövzusu, DC motora gücü göndərərək onu sürətə salır.
Geri bildirim cihazı, adətən potensioemetriya və ya şifrator olur və çıxış dişlisinin cari pozisiyasını ölçür.

Geri bildirim cihazı, pozisiya məlumatını idarəetmə mövzusuna geri göndərir və idarəetmə mövzusu, DC motorun gücünü dəyişir ki, faktiki pozisiya, girişi sinyalindən istənilən pozisiya ilə uyğunlaşsın.
Idarəetmə mövzusu və geri bildirim cihazı arasındakı geri bildirim dairəsi, servo motorunun dövrənə biləcəyi və saxlaya biləcəyi hər hansı bir pozisiyaya dəqiq hərəkət etməsinə imkan verir.
Servo Motoru Nəzarət Etmək?
Servo motorlar, PWM (pulse-width modulation) sinyalını servo sinyal xəttinə göndərməklə idarə edilir. PWM, sinyali tez-tez açmaq və bağlamaqla fərqli enliyə sahib pulslar yaratmaq üsuludur. Pulsların enliyi, çıxış dişlisinin pozisiyasını müəyyənləşdirir.
Məsələn, 1.5 millisekund (ms) enlikli PWM sinyalı göndərdikdə, servo motor neutral pozisiyaya (90 dərəcə) hərəkət edəcəkdir.

1 ms enlikli PWM sinyalı göndərdikdə, servo motor minimum pozisiyaya (0 dərəcə) hərəkət edəcəkdir. 2 ms enlikli PWM sinyalı göndərdikdə, servo motor maksimum pozisiyaya (180 dərəcə) hərəkət edəcəkdir.
PWM sinyalinin frekansı 50 Hz-dir, bu da hər 20 ms-də təkrarlanır. Puls enliyi, bu müddətdə 1 ms-dən 2 ms-ə qədər dəyişə bilər.
PWM sinyallarını servo motorlara yaratmaq və göndərmək üçün bir çox yollar var. Ən yayğın üsullar bunlardır:
Arduino platası və ya başqa mikrokontroler istifadə edərək
Deyişkən dirençli potensioemetriya və ya başqa analog sensor istifadə edərək
Joystick və ya başqa rəqəmsal giriş cihazı istifadə edərək
Xüsusi servo idarəçisi və ya sürücü istifadə edərək
Növbəti bölümlərdə, bu üsulları daha ətraflı araşdıracağıq və onların necə işlədiyinə misallar göstərəcəyik.
Arduino İstifadə Edərək Servo Motoru Nəzarət Etme
Arduino, servo motorları nəzarət etmək üçün ən populyar platformlardan biridir. Arduino plataları, servolara sinyal göndərmək üçün istifadə edilə bilən içki PWM çıxışlarına malikdir. Arduino-da servo motorları nəzarət etmək üçün asanlıqla kod yazmağa imkan verən Servo kitabxanası da var.
Arduino istifadə edərək servo motoru nəzarət etmək üçün aşağıdakılar lazımdır:
Arduino platası (məsələn, Arduino UNO)
Standart servo motor (məsələn, SG90)
Kontakt ipi
Breadboard (istəgsən)
Servodan gələn qırmızı ip, Arduino platasının 5V-nə birləşir. Servodan gələn qara ip, Arduino platasının GND-ə birləşir. Servodan gələn ağ ip, Arduino platasının 9 nömrəli pininə birləşir.
Arduino platasını proqramlaşdırmaq üçün, Arduino IDE (online və ya offline) istifadə etməlisiniz. Servo kitabxanasından bir nümunə istifadə edə bilərsiniz və ya özünüz kod yazmağa bilərsiniz.
Aşağıdaki kod, for loop-dan istifadə edərək servo motorunun 180 dərəcə arasında sağa-sola hərəkət etməsini göstərir:
#include <Servo.h> // Servo kitabxanasını daxil edin
Servo myservo; // Servo obyekt yaradın
int pos = 0; // Pozisiya dəyişəni
void setup() {
myservo.attach(9); // Servo obyektini 9 nömrəli pine birləşdirin
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // 0-dan 180 dərəcəyə qədər dövr
myservo.write(pos); // Pozisiyanı Servo obyektinə yazın
delay(15); // 15 ms gözləyin
}
for (pos = 180; pos >= 0; pos -= 1) { // 180-dan 0 dərəcəyə qədər dövr
myservo.write(pos); // Pozisiyanı Servo obyektinə yazın
delay(15); // 15 ms gözləyin
}
}
Bu kod, pozisiya dəyişənini 0-dan 180 dərəcəyə və tərsinə dəyişmək üçün iki dövrdən istifadə edir. Sonra, bu dəyəri myservo.write(pos) funksiyası ilə Servo obyektinə yazır. Hər addımda 15 ms gecikmə əlavə edir ki, hərəkət yavaşlaşsın.
Bu kodu, IDE-nin Upload düyməsindən istifadə edərək Arduino platasına yükləyin və servo motorunuzun düzgün olaraq sağa-sola hərəkət etməsini izləyin.
Potensioemetriya İstifadə Edərək Servo Motoru Nəzarət Etme
Potensioemetriya, onun qapıcısını neçə dəfə çevirənizə görə direncini dəyişə bilən analitik sensorudur. Potensioemetriyanı, servo motoru nəzarət etmək üçün giriş cihazı kimi istifadə edə bilərsiniz.
Potensioemetriya ilə servo motoru nəzarət etmək üçün aşağıdakılar lazımdır:
Arduino platası (məsələn, Arduino UNO)
Standart servo motor (məsələn, SG90)
Potensioemetriya (10k Ohm)
Kontakt ipi
Breadboard
Potensioemetriya və servo motoru Arduino platasına birləşdirilməsi üçün şəbəkə şəkili aşağıda göstərilmiştir:
Potensioemetriyadan gələn qırmızı ip, Arduino platasının 5V-nə birləşir. Potensioemetriyadan gələn qara ip, Arduino platasının GND-ə birləşir. Potensioemetriyadan gələn yaşıl ip, Arduino platasının A0 pininə birləşir.
Servodan gələn qırmızı ip, breadboard-un digər sırasının 5V-nə birləşir. Servodan gələn qara ip, breadboard-un digər sırasının GND-ə birləşir. Servodan gələn ağ ip, breadboard-un digər sırasının D9 pininə birləşir.
Arduino platasını proqramlaşdırmaq üçün, əvvəlki nümunədəki eyni kodu istifadə edə bilərsiniz, lakin bir neçə sətiri dəyişmək lazımdır:
#include <Servo.h> // Servo kitabxanasını daxil edin
Servo myservo; // Servo obyekt yaradın
int potpin = A0; // Potensioemetriya ilə bağlı pin
int val = 0; // Potensioemetriyanın dəyərini oxumaq üçün dəyişən
void setup() {
myservo.attach(9); // Servo obyektini 9 nömrəli pine birləşdirin
}
void loop() {
val = analogRead(potpin); // Potensioemetriyadan dəyər oxuyun (0 - 1023)
val = map(val, 0, 1023, 0, 180); // Dəyər aralığını (0 - 180) dəyişin
myservo.write(val); // Dəyəri Servo obyektinə yazın
delay(15); // 15 ms gözləyin
}
Bu kod, analogRead(potpin) funksiyasını istifadə edərək A0 pininə bağlı potensioemetriyadan dəyər oxuyur. Sonra, map(val, 0, 1023, 0, 180) funksiyasını istifadə edərək dəyər aralığını 0 - 1023-dən 0 - 180-a dəyişir. Sonra, bu dəyəri myservo.write(val) funksiyası ilə Servo obyektinə yazır. Eyni kimi 15 ms gecikmə əlavə edir.
Bu kodu, IDE-nin Upload düyməsindən istifadə edərək Arduino platasına yükləyin. Potensioemetriyanın qapıcısının pozisiyasına görə servo motorunuzun hərəkət etməsini izləyə bilərsiniz.
Joystick İstifadə Edərək Servo Motoru Nəzarət Etme
Joystick, iki ox üzrə hərəkətin istiqamətini və həcmi aşkar edə bilən rəqəmsal giriş cihazıdır. Joystick-i, joystick-in x oxu ilə servo motorun bucağını əlaqələndirməklə servo motoru nəzarət etmək üçün istifadə edə bilərsiniz.
Joystick ilə servo motoru nəzarət etmək üçün aşağıdakılar lazımdır:
Arduino platası (məsələn, Arduino UNO)
Standart servo motor (məsələn, SG90)
Joystick modulu (məsələn, KY-023)
Kontakt ipi
Breadboard