В този урок ще управляваме серво мотор от ARDUINO UNO. Сервомоторите се използват там, където има нужда от точно движение или положение на вала. Те не се предлагат за високоскоростни приложения. Те се предлагат за ниска скорост, среден въртящ момент и точно приложение на позицията. Тези двигатели се използват в роботизирани машини за управление, полет и системи за управление.
Серво двигателите се предлагат в различни форми и размери. Серво мотор ще има предимно проводници, единият е за положително напрежение, друг е за заземяване и последният е за настройка на положението. ЧЕРВЕНИЯ проводник е свързан към захранването, Черният проводник е свързан към земята и ЖЪЛТИЯ проводник е свързан към сигнала.
Серво мотор е комбинация от 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 UNO, захранване (5v), кондензатор 100uF, бутони (два броя), 1KΩ резистор (два броя), серво мотор (който трябваше да бъде тестван).
Софтуер: arduino IDE (Arduino всяка вечер).
Схема и обяснение на серво мотор Arduino
В нормални случаи трябва да отидем в регистрите на контролера за регулиране на честотата и за получаване на необходимото съотношение на мито за точен контрол на позицията на серво, в ARDUINO не е нужно да правим тези неща.
В ARDUINO имаме предварително дефинирани библиотеки, които ще зададат честотите и коефициентите на запълване съответно след извикването или включването на заглавния файл. В ARDUINO просто трябва да заявим необходимата позиция на серво и ШИМ автоматично се регулира от UNO.
Нещата, които трябва да направим, за да получим точна позиция на серво, са:
|
Първо трябва да зададем честота на ШИМ сигнала и за това трябва да извикаме „#include
Сега трябва да дефинираме име за серво “Servo sg90sevo”, тук 'sg90servo' е избраното име, така че докато пишем за отвара ще използваме това име, тази функция е полезна, когато имаме много серво за управление, ние можем да контролираме до осем серво с това.
Сега казваме на UNO къде е свързан сигналният щифт на серво или къде трябва да генерира PWM сигнал. За целта имаме “Sg90.attach (3);”, тук казваме на UNO, че сме свързали сигналния щифт на серво при PIN3.
Остава само да зададем позицията, ние ще зададем позицията на серво, като използваме “Sg90.write (30);”, чрез тази команда серво стрелката се движи на 30 градуса, така че това е. След това, когато трябва да сменим позицията на серво, трябва да извикаме командата „Sg90.write (required_position_ ъгъл);“. В тази схема ще имаме два бутона, единият бутон увеличава позицията на серво, а другият е за намаляване на позицията на серво.
В контрол начинаещи Arduino серво мотор е обяснено в стъпка по стъпка на код С по-долу.