- Необходим материал
- Електрическа схема
- Какво е серво мотор?
- Обяснение на кода на Arduino
- Контролиране на множество серво с Arduino - Работа:
Използването на един или два Servo с Arduino е лесно, но какво, ако искаме да използваме повече от един Servo Motors?
Тук ще ви покажем как да управлявате множество серво мотори с Arduino. Свързването на множество сервомотори с Arduino изглежда лесно, но ако свържем всички сервомотори към захранващи щифтове на Arduino, те няма да работят правилно поради липсата на достатъчно ток за задвижване на всички двигатели. Така че трябва да използвате отделно захранване за двигателите, било то от някои адаптери (5v 2A) или от 9V батерии с добро качество.
Необходим материал
- Arduino UNO
- Серво мотор
- Захранване
- Макет
- Свързване на проводници
Електрическа схема
Какво е серво мотор?
Преди да влезем в подробности, първо трябва да знаем за Servo Motors.
Серво двигателите се предлагат в различни форми и размери. Серво мотор ще има предимно проводници, единият е за положително напрежение, друг е за заземяване и последният е за настройка на положението. ЧЕРВЕНИЯ проводник е свързан към захранването, Черният проводник е свързан към земята и ЖЪЛТИЯ проводник е свързан към сигнала.
Серво мотор е комбинация от DC мотор, система за управление на позицията, предавки. Положението на вала на постояннотоковия двигател се регулира от управляващата електроника в серво, на базата на коефициента на запълване на ШИМ сигнала на ПИН СИГНАЛА.
Просто казано управляващата електроника регулира положението на вала чрез управление на мотора с постоянен ток. Тези данни относно положението на вала се изпращат през щифта SIGNAL. Данните за местоположението към управлението трябва да се изпращат под формата на ШИМ сигнал през сигналния щифт на серво мотора.
Честотата на сигнала PWM (Pulse Width Modulated) може да варира в зависимост от типа на серво мотора. Важното тук е DUTY RATIO на PWM сигнала. Въз основа на това ДЪЛЖИМНО СЪОТНОШЕНИЕ управляващата електроника регулира вала.
Както е показано на фигурата по-долу, за да се премести валът на 9o часовник, СЪОТНОШЕНИЕТО НА ВКЛЮЧВАНЕ трябва да бъде 1 / 18.ie. 1ms време за включване и 17ms време за изключване при сигнал от 18ms.
За да се премести валът на часовник 12 °, времето за включване на сигнала трябва да бъде 1,5 ms и времето за изключване трябва да бъде 16,5 ms. Това съотношение се декодира от системата за управление в серво и тя регулира позицията въз основа на него. Този ШИМ тук се генерира с помощта на ARDUINO UNO.
Преди да свържете серво с Arduino, можете да тествате серво с помощта на тази верига за тестер на серво мотор. Също така проверете нашите серво проекти по-долу:
- Управление на серво мотора чрез Flex сензор
Обяснение на кода на Arduino
Пълният код на Arduino за Multiple Servo Control е даден в края.
Arduino има библиотека за серво мотори и тя обработва всички свързани с ШИМ неща, за да завърти серво, просто трябва да въведете ъгъла, към който искате да се завъртите и има функция servo1.write (ъгъл); което ще завърти серво на желания ъгъл.
И така, тук започваме с дефиниране на библиотеката за серво мотор.
#include
В долния код ние инициализираме всичките четири сервосерва като Servo1, Servo2, Servo3 и Servo4.
Серво серво1; Серво серво2; Серво серво3; Серво серво4;
След това настройваме всички входни щифтове на серво с Arduino. Както е показано в кода по-долу, Servo1 е свързан към 3-ия щифт на Arduino. Можете да сменяте щифтовете според вас, но имайте предвид, че това трябва да е ШИМ щифт. Използването на серво с цифрови щифтове на Arduino не е надеждно.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Сега, във функцията void loop () ние просто въртим цялото серво от 0 до 180 градуса и след това от 180 до 0 градуса. Забавянето, използвано в кода по-долу, се използва за увеличаване или намаляване на скоростта на серво, тъй като влияе върху увеличаването или намаляването на скоростта на променлива „i“.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); забавяне (10); } за (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); забавяне (10); } }
Контролиране на множество серво с Arduino - Работа:
Всички ние се сблъскваме с настоящия проблем, докато използваме повече от два серво серво с един Arduino. Единственото решение за това е да свържете външно захранване с подходящ ток (в този проект използвах 2А с 9v захранване). За външно захранване можете да използвате адаптери, RPS (Регулиран инструмент за захранване) или батерии с добро качество 9v волта, можете да използвате USB порта на вашия лаптоп за захранване на малък серво. За да използвате външното захранване, просто трябва да прекъснете земята Arduino към външното захранване.
Използвайте кода на Arduino, даден по-долу, за да програмирате вашия Arduino и свържете всички сервомотори, както е показано на схемата с правилното захранване към двигателите. Следователно всички сервомотори ще работят заедно без прекъсване.