Servo motor nazorati: To'liq qo'llanma
Asosiy o'rganilganlar:
Servo motor nazorati tushuntirildi: Servo motor nazorati elektron signallar orqali motorning joylashuvini, tezligini va tezlanishini aniq nazoratga olish imkoniyatini beradi.
O'zaro aloqa mekanizmi: O'zaro aloqa tizimi, ko'pincha potentsionmetr yoki encoder, motorning chiqishi nazorat kirishiga to'g'ri mos kelishi uchun ta'minlaydi.
PWM signali: Impulsnik kenglik modulyatsiyasi (PWM) servoning joylashuvinini elektr impulslarining davomiyligini o'zgartirib belgilashda muhim ahamiyatga ega.
Arduino va servo motorlar: Arduino platasidan foydalanish servo motorlarni minimal hardware sozlamalari bilan dasturlash va nazorat qilish uchun mashhur va samarali usul hisoblanadi.
Servo motorlarning qo'llanilishi: Servo motorlar robototexnika va avtomatlashtirilgan tizimlar kabi aniqlik talab etiladigan joylashuv nazoratini talab qiladigan loyihalar uchun zarurdir.
Servo motor bu aylanish uchun yuqori aniqlik va to'g'rilikni ishlab chiqarilgan motor. Bu adabiy DC motordan o'z joylashuvini saqlash imkoniyati bo'lgan nusxada farqlanadi. Bu xususiyat servo motorlarni robototexnika, avtomatlashtirish va hobbiy loyihalar uchun ideal qiladi.
Bu maqola servo motor nazoratining qanday ishlashi, turli xil servo motorlar, shuningdek bir qancha nazorat usullari va qurilmalar haqida tushuntiradi. Maqolada servo motorlarning qo'llanilishi va loyihalarining misollarini ham taqdim etadi.
Servo motor nima?
Servo motor bu aniq nazorat uchun joylashuv (burchak), tezlik va tezlanishni ta'minlaydigan aktivator hisoblanadi. Oddiy servo motor uchta asosiy komponentdan iborat: DC motor, boshqaruv shemasi va o'zaro aloqa qurilmasi.
DC motor servo motorning quvvatini ta'minlaydi va reduktorlarga ulanadi, bu reduktorlar chiqish vergachining tezligini kamaytiradi va torq ni oshiradi.

Chiqish vergachi bu servo motorning aylanib harakat qiladigan qismi.
Boshqaruv shemasining vazifasi tashqi boshqaruvchi qurilmadan kelgan kirish signallarni qabul qilib, ularni tahlil qilish. Bu signallar servo motorning qanday joylashuv, tezlik yoki yo'nalishga harakat qilishi kerakligi haqida ma'lumot beradi. Boshqaruv shemasi DC motorga energiya yuboradi, uni haydab boradi.
O'zaro aloqa qurilmasi ko'pincha potentsionmetr yoki encoder bo'lib, chiqish vergachining joriy joylashuvini o'lchaydi.

O'zaro aloqa qurilmasi chiqish vergachining joylashuv ma'lumotini boshqaruv shemasiga yuboradi, boshqaruv shemasi esa DC motorga energiya yuborib, tegishli joylashuvni kirish signali bilan moslashtiradi.
Boshqaruv shemasining o'zaro aloqa qurilmasi o'rtasidagi o'zaro aloqa, servo motorning aniq har qanday joylashuvga harakat qilishi va uning harakat qilish diapazonida joylashuvni saqlashini ta'minlaydi.
Servo motorni qanday nazorat qilish mumkin?
Servo motorlarni PWM (impulsnik kenglik modulyatsiyasi) signali yuborish orqali nazorat qilish mumkin. PWM bu tez-tez signallarni yoqish-ochish usuli, bu impulslar kengligini o'zgartiradi. Impulslar kengligi chiqish vergachining joylashuvini belgilaydi.
Masalan, agar siz 1.5 millisekundlik (ms) impulsnik kenglikka ega PWM signal yuborsangiz, servo neutral holatga (90 daraja) harakat qiladi.

Agar siz 1 ms impulsnik kenglikka ega PWM signal yuborsangiz, servo eng past holatga (0 daraja) harakat qiladi. Agar siz 2 ms impulsnik kenglikka ega PWM signal yuborsangiz, servo eng yuqori holatga (180 daraja) harakat qiladi.
PWM signali 50 Hz chastotali, bu uning 20 msda takrorlanishini anglatadi. Impulsnik kenglik bu muddat ichida 1 ms dan 2 ms gacha o'zgarishi mumkin.
Servo motorlarga PWM signal yaratish va yuborish uchun bir qancha usullar mavjud. Eng mashhur usullar:
Arduino platasidan yoki boshqa mikrokontrollerlardan foydalanish
Potentsionmetr yoki boshqa analog sensorlardan foydalanish
Joystick yoki boshqa digital kirish qurilmalardan foydalanish
Maxsus servo boshqaruvchi yoki haydovchidan foydalanish
Keyingi bo'limlarda har bir usulni aniqroq tahlil qilib, ularning qanday ishlashini misollar orqali ko'rib chiqamiz.
Arduino orqali servo motor nazorati
Arduino servo motorlarni nazorat qilish uchun eng mashhur platformalardan biri. Arduino platalarida PWM chiqishlari mavjud, ularni servoga signallar yuborish uchun ishlatish mumkin. Arduino-da Servo kutubxonasi mavjud, bu servo nazorat uchun kod yozishni oson qiladi.
Arduino orqali servo motor nazorat qilish uchun quyidagilar kerak bo'ladi:
Arduino plata (masalan, Arduino UNO)
Standart servo motor (masalan, SG90)
Jumper provodlari
Breadboard (ixtiyoriy)
Servodan qirmizi provod Arduino platasidagi 5V ga ulanadi. Servodan qora provod Arduino platasidagi GND ga ulanadi. Servodan oq provod Arduino platasidagi pin 9 ga ulanadi.
Arduino platani dasturlash uchun Arduino IDE (onlayn yoki oflayn) dan foydalanishingiz kerak. Siz Servo kutubxonasidagi misollardan birini yoki o'zingiz kod yozishingiz mumkin.
Quyidagi kod 180 darajaga qadar servo motorni o'ng-chapga qarama-qarshi harakat qilishni ifodalaydi:
#include <Servo.h> // Servo kutubxonasini qo'shish
Servo myservo; // Servo ob'ektini yaratish
int pos = 0; // Joylashuv uchun o'zgaruvchi
void setup() {
myservo.attach(9); // Servo ob'ektini pin 9 ga ulash
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // 0 dan 180 darajagacha loop
myservo.write(pos); // Servo ob'ektiga joylashuvni yozish
delay(15); // 15 ms kutish
}
for (pos = 180; pos >= 0; pos -= 1) { // 180 dan 0 darajagacha loop
myservo.write(pos); // Servo ob'ektiga joylashuvni yozish
delay(15); // 15 ms kutish
}
}
Bu kod ikkita loopdan foydalangan holda joylashuv o'zgaruvchisini 0 dan 180 darajagacha va aksincha o'zgartiradi. So'ngra Servo ob'ektiga myservo.write(pos) orqali yozadi. Har bir qadam orasida 15 ms kutishni qo'shadi.
Kodni Arduino plataga IDE-dagi Upload tugmasi orqali yuklang, va servoning o'ng-chapga qarama-qarshi harakat qilishini ko'ring.
Potentsionmetr orqali servo motor nazorati
Potentsionmetr bu analog sensor, uning omillarini tortish orqali omillarini o'zgartirish mumkin. Potentsionmetrdan foydalanib servo motorlarni nazorat qilish mumkin.
Potentsionmetr orqali servo motor nazorat qilish uchun quyidagilar kerak bo'ladi:
Arduino plata (masalan, Arduino UNO)
Standart servo motor (masalan, SG90)
Potentsionmetr (10k Om)
Jumper provodlari
Breadboard
Potentsionmetr va servo motorni Arduino plataga ulash uchun shema quyidagicha:
Potentsionmetrdan qirmizi provod Arduino platasidagi 5V ga ulanadi. Potentsionmetrdan qora provod Arduino platasidagi GND ga ulanadi. Potentsionmetrdan yashil provod Arduino platasidagi pin A0 ga ulanadi.
Servodan qirmizi provod breadboardning boshqa qatoridagi 5V ga ulanadi. Servodan qora provod breadboardning boshqa qatoridagi GND ga ulanadi. Servodan oq provod breadboardning boshqa qatoridagi pin D9 ga ulanadi.
Arduino platani dasturlash uchun oldingi misolda ishlatilgan kodni ishlatish kerak, ammo ba'zi qatorlarni o'zgartirish kerak:
#include <Servo.h> // Servo kutubxonasini qo'shish
Servo myservo; // Servo ob'ektini yaratish
int potpin = A0; // Potentsionmetrga ulangan pin
int val = 0; // Potentsionmetr qiymatini o'qish uchun o'zgaruvchi
void setup() {
myservo.attach(9); // Servo ob'ektini pin D9 ga ulash
}
void loop() {
val = analogRead(potpin); // Potentsionmetrdan qiymat o'qish (0 -1023)
val = map(val,0,1023,0,180); // Qiymat oralig'ini (0 -180) ga o'tkazish
myservo.write(val); // Servo ob'ektiga o'tkazilgan qiymatni yozish
delay(15); // 15 ms kutish
}
Bu kod analogRead(potpin) funksiyasidan foydalanib, pin A0 ga ulangan potentsionmetrdan qiymat o'qishni amalga oshiradi. Keyin map(val,0,1023,0,180) funksiyasidan foydalanib, qiymat oralig'ini 0 -1023 dan 0 -180 darajaga o'tkazadi. So'ngra myservo.write(val) funksiyasidan foydalanib, o'tkazilgan qiymatni Servo ob'ektiga yozadi. Shuningdek, oldingi misolda kabi 15 ms kutishni qo'shadi.
Kodni IDE-dagi Upload tugmasi orqali Arduino plataga yuklang. Siz potentsionmetrning omillasining joylashuvi bilan servo motorning harakat qilishini ko'rish orqali tekshirishingiz mumkin.
Joystick orqali servo motor nazorati
Joystick bu ikki o'q boyicha harakatlanish yo'nalishi va intensivligini aniqlay oladigan digital kirish qurilmasi. Joystick orqali servo motorlarni nazorat qilish mumkin, joystickning x o'qini servo motorning burchagina o'tkazish orqali.
Joystick orqali servo motor nazorat qilish uchun quyidagilar kerak bo'ladi:
Arduino plata (masalan, Arduino UNO)
Standart servo motor (masalan, SG90)
Joystick moduli (masalan, KY-023)
Jumper provodlari
Breadboard
Joystick moduli va servo motorni Arduino plataga ulash uchun shema quyidagicha:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
Joystick modulidan qirmizi provod Arduino platasidagi 5V ga ulanadi. Joystick modulidan qora provod Arduino platasidagi GND ga ulanadi. Joystick modulidan yashil provod Arduino platasidagi pin A0 ga ulanadi.
Servodan qirmizi provod breadboardning boshqa qatoridagi 5V ga ulanadi. Servodan qora provod breadboardning boshqa qatoridagi GND ga ulanadi. Servodan oq provod breadboardning boshqa qatoridagi pin D9 ga ulanadi.
Arduino platani dasturlash uchun oldingi misolda ishlatilgan kodni ishlatish kerak, ammo ba'zi qatorlarni o'zgartirish kerak:
#include <Servo.h> // Servo kutubxonasini qo'shish
Servo myservo; // Servo ob'ektini yaratish