Контрола на серво мотор: Потпун поводник
Клучни знаења:
Дефиниција на контрола на серво мотор: Контролата на серво мотор овозможува прецизно управување со позицијата, брзината и акцелерацијата на моторот преку електронски сигнали.
Механизам за обратна врска: Системот за обратна врска, често потенциометар или енкодер, осигурува точно совпаѓање на излезот на моторот со контролниот вход.
Сигнал PWM: Широчината на импулс (PWM) е критична за поставување на позицијата на сервото преку варирање на длабочината на електричните импулси.
Arduino и серво мотори: Користењето на платформа Arduino е популарен и ефективен начин за програмирање и контрола на серво мотори со минимална хардверска поставка.
Примени на серво мотори: Серво моторите се неопходни за проекти кои бараат точна контрола на позицијата, како што се роботика и автоматизирани системи.
Серво мотор е мотор дизајниран за висока прецизност и точност во ротација. Се разликува од типичен DC мотор по својата способност да задржи специфична позиција наместо непрекинато враќање. Оваа карактеристика ги прави серво моторите идеални за роботика, аутоматизација и хоби проекти.
Овој чланок ја објаснува функционалноста на контролата на серво мотор, различните типови на серво мотори и различните методи и уреди за контрола. Такође дава примери на примени и проекти на серво мотори.
Што е серво мотор?
Серво мотор е дефиниран како актуатор кој овозможува прецизна контрола на позицијата (агол), брзината и акцелерацијата. Типичен серво мотор се состои од три главни компоненти: DC мотор, контролен циркуит и уред за обратна врска.
DC мотор приварува сервото и се поврзува со зъбни колела кои намалуваат брзината и зголемуваат моментот на излезниот вал.

Излезниот вал е дел од сервото кој се враќа и движи оптоварувањето.
Контролниот циркуит е одговорен за примирање и процесирање на входни сигнали од екстерен контролер. Овие сигнали му кажуваат на сервото што треба да се движи, каква брзина или насока. Контролниот циркуит исто така испраќа моќ до DC моторот за да го привари.
Уредот за обратна врска е често потенциометар или енкодер кој мери моменталната позиција на излезниот вал.

Уредот за обратна врска пренесува податоци за позицијата назад до контролниот циркуит, кој тогаш ја прилагодува моќта на DC моторот за да се поравнат моменталната позиција со желаната позиција од входниот сигнал.
Циклусот на обратна врска помеѓу контролниот циркуит и уредот за обратна врска гарантира дека сервото може точно да се движи и да задржи било која позиција во неговиот опсег на движење.
Како да контролирате серво мотор?
Серво моторите се контролираат со испраќање на PWM (широкочестотен модулација) сигнал до сигналната линија на сервото. PWM е техника која брзо превклучува сигнал за да се создадат импулси со различни длабочини. Длабочината на импулсите одредува позицијата на излезниот вал.
На пример, кога испратите PWM сигнал со длабочина на импулс од 1.5 милисекунди (ms), сервото ќе се движи до нейтралната позиција (90 степени).

Кога испратите PWM сигнал со длабочина на импулс од 1 ms, сервото ќе се движи до минималната позиција (0 степени). Кога испратите PWM сигнал со длабочина на импулс од 2 ms, сервото ќе се движи до максималната позиција (180 степени).
PWM сигналот има фреквенција од 50 Hz, што значи дека се повторува секои 20 ms. Длабочината на импулсите може да варира од 1 ms до 2 ms во овој период.
Постојат многу начини за генерирање и испраќање на PWM сигнали до серво моторите. Некои од најчести методи се:
Користење на платформа Arduino или друг микроконтролер
Користење на потенциометар или друг аналоген сензор
Користење на джойстик или друг цифров уред за влез
Користење на посветен контролер или водач за серво
Во следните делови, ќе ги истражиме секој од овие методи во детали и ќе видиме неколку примери како работат.
Контрола на серво мотор со Arduino
Arduino е една од најпопуларните платформи за контрола на серво мотори. Платформите Arduino имаат вградени PWM излези кои може да се користат за испраќање на сигнали до серво. Arduino исто така има библиотека Servo која олеснува написањето на код за контрола на серво.
За да контролирате серво мотор со Arduino, ви требаат:
Платформа Arduino (како што е Arduino UNO)
Стандарден серво мотор (како што е SG90)
Жички за спојување
Платформа за прототипирање (опционално)
Црвената жичка од сервото се поврзува со 5V на платформата Arduino. Црната жичка од сервото се поврзува со GND на платформата Arduino. Белата жичка од сервото се поврзува со пин 9 на платформата Arduino.
За да програмирате платформата Arduino, треба да користите Arduino IDE (онлајн или офлајн). Можете да користите еден од примерите од библиотеката Servo или да напишете вашиот код.
Следниве код покажува како да се заврте серво мотор надворешно преку 180 степени со користење на for циклус:
#include <Servo.h> // Вклучи библиотеката Servo
Servo myservo; // Создади Servo објект
int pos = 0; // Променлива за позиција
void setup() {
myservo.attach(9); // Прикачи Servo објект на пин 9
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // Циклус од 0 до 180 степени
myservo.write(pos); // Запиши позиција на Servo објект
delay(15); // Чекај 15 ms
}
for (pos = 180; pos >= 0; pos -= 1) { // Циклус од 180 до 0 степени
myservo.write(pos); // Запиши позиција на Servo објект
delay(15); // Чекај 15 ms
}
}
Овој код користи два циклуси за инкрементирање и декрементирање на променливата за позиција од 0 до 180 степени и обратно. Потоа ја запишува оваа вредност на Servo објект со myservo.write(pos). Исто така додава забавување од 15 ms меѓу секој чекор за забавување на движењето.
Прикачете овој код на вашата платформа Arduino со користење на копчето Upload во IDE-то, и гледајте како вашата серво мотор ќе се враќа надворешно гладко.
Контрола на серво мотор со потенциометар
Потенциометар е аналоген сензор кој може да варира својата резистенција во зависност од тоа колку ќе го завртите неговиот кноб. Можете да користите потенциометар како уред за влез за контрола на серво мотор.
За да контролирате серво мотор со потенциометар, ви требаат:
Платформа Arduino (како што е Arduino UNO)
Стандарден серво мотор (како што е SG90)
Потенциометар (10k Ohms)
Жички за спојување
Платформа за прототипирање
Дијаграмот на спојување за поврзување на потенциометар и серво мотор со платформа Arduino е прикажан подолу:
Црвената жичка од потенциометарот се поврзува со 5V на платформата Arduino. Црната жичка од потенциометарот се поврзува со GND на платформата Arduino. Зелената жичка од потенциометарот се поврзува со пин A0 на платформата Arduino.
Црвената жичка од сервото се поврзува со 5V на друг ред на платформата за прототипирање. Црната жичка од сервото се поврзува со GND на друг ред на платформата за прототипирање. Белата жичка од сервото се поврзува со пин D9 на друг ред на платформата за прототипирање.
За да програмирате вашата платформа Arduino, треба да користите ист код како во претходниот пример, но да ги промените неколку линии:
#include <Servo.h> // Вклучи библиотеката Servo
Servo myservo; // Создади Servo објект
int potpin = A0; // Пин поврзан со потенциометарот
int val = 0; // Променлива за читање на вредноста на потенциометарот
void setup() {
myservo.attach(9); // Прикачи Servo објект на пин D9
}
void loop() {
val = analogRead(potpin); // Читај вредноста од потенциометарот (0 -1023)
val = map(val,0,1023,0,180); // Мапирај опсег на вредности (0 -180)
myservo.write(val); // Запиши мапираната вредност на Servo објект
delay(15); // Чекај 15 ms
}
Овој код користи функцијата analogRead(potpin) за читање на вредноста од потенциометарот поврзан со пин A0. Потоа користи функцијата map(val,0,1023,0,180) за мапирање на опсегот на вредности од 0 -1023 степени. Потоа запишува мапираната вредност на Servo објект со функцијата myservo.write(val). Исто така додава забавување, како во претходниот пример.
Можете да прикачете овој код на вашата платформа Arduino со користење на копчето Upload во IDE-то. Треба да видите како вашата серво мотор се движи во зависност од положението на кнобот на потенциометарот.
Контрола на серво мотор со джойстик
Джойстик е цифров уред за влез кој може да детектира насоката и величината на движењето врз две оси. Можете да користите джойстик за контрола на серво мотор со мапирање на x-оската на джойстика на аголот на сервото.
За да контролирате серво мотор со джойстик, ви требаат следните:
Платформа Arduino (како што е Arduino UNO)
Стандарден серво мотор (како што е SG90)
Модул за джойстик (како што е KY-023)
Жички за спојување
Платформа за прототипирање
Дијаграмот на спојување за поврзување на модул за джойстик и серво мотор со платформа Arduino е прикажан подолу:
!https://www.makerguides.com/wp-content/uploads/2019/01/Servo-motor-control-with-Arduino-and-joystick-wiring-diagram.png
<