Сервопривод полезен при построении различных систем в качестве движущегося элемента. В робототехнике используется совместно с ультразвуковым датчиком расстояния для сборки радара. Также может открывать и закрывать крышки, поднимать небольшие грузы или быть стрелочным индикатором.
Принцип работы
Конструктивно, электрический сервопривод состоит из следующих блоков:
1. Мотор
2. Редуктор
3. Потенциометр
4. Управляющая плата
Работает серводвигатель следующим образом. Внешний сигнал поступает на управляющую плату, которая контролирует скорость вращения мотора, преобразуя с его помощью электрическую энергию в механическую и создавая крутящий момент. Как правило, электродвигатели имеют достаточно большую скорость вращения и относительно небольшой крутящий момент. Чтобы снизить скорость и увеличить крутящий момент, исполь- зуют редуктор. Для контроля текущего положения, якорь сервопривода соединен с потенциометром, сопротивление которого зависит от угла поворота. Отклонение якоря от заданного положения, приводит к изменению сопротивления потенциометра. Управляющая плата следит за его сопротивлением и в случае изменения включает электромотор, возвращая якорь в исходное состояние. Обычно, сервоприводы могут поворачивать якорь, или как его еще называют - качалку, от 0° до 180°, как показано на рисунке ниже.
Стоит заметить, что даже параметры двух сервоприводов одного и того же производителя могут быть различны. То есть при подаче одного и того же управляющего импульса, угол поворота якоря будет немного отличаться. Поэтому, если важна точность, обычно подбирают значения отклонения под каждый отдельный сервопривод. Кроме того в положениях близких к крайним (0-10° и 170-180°) сервоприводы могут работать некорректно, издавать рычащий звук и быстро вибрировать. Такие режимы работы могут стать причиной быстрого выхода из строя и их надо избегать.Также стоит избегать чрезмерных механических нагрузок на якорь.
Подключается сервопривод с помощью трех проводов, которые, как правило, имеют идентичную цветовую маркировку, вне зависимости от производителя. Иногда цвет может немного отличаться, но принцип маркировки остается неизменным:
G - Ground (земля, минус питания): коричневый/чёрный
V - Voltage (Напряжение, плюс питания) (+5 вольт): красный
S - Signal (Сигнальный): оранжевый/желтый/белый
Управлять сервоприводом можно, подключив сигнальный провод напрямую к выводу микроконтроллера. При этом можно не переживать об ограничении тока, потому что сигнальный провод используется сервоприводом лишь для получения управляющих импульсов. Питающие токи текут по черному и красному проводам. Подключать сервопривод к контроллеру DaVinci удобнее с использованием специальных трехконтактных разъемов, которые имеются как на плате контроллера, так и на шилдах.
В микроконтроллер необходимо загрузить следующую программу. Обратите внимание, для управления сервоприводом используется встроенная в среду библиотека, которая позволяет только указывать угол поворота сервопривода, а уже внутри идет пересчет в импульсы и передача их сервоприводу. Другие программы в качестве примеров даны в среде Arduino IDE: Файл - Примеры - Servo - Sweep/Knob.
#include "servo.h" //Создаем объект сервопривода. Servo myservo; void setup() { // Сервопривод подключен к пину 11. myservo.attach(11); } void loop() { //Устанавливаем угол 0 градусов myservo.write(0); delay(1000); //Устанавливаем угол 90 градусов myservo.write(90); delay(1000); //Устанавливаем угол 180 градусов myservo.write(180); delay(1000); }
После запуска программы наблюдайте за работой серводвигателя в крайних положениях. Часто он может вибрировать в положении 0° и 180° - это говорит о выходе за границы допустимых углов работы. Если такое происходит, нужно просто подобрать правильную длительность сигнала управляющего сигнала для угла 0° и для угла 180°. Для этого, достаточно явно указать минимальную и максимальную длительность при подключении сервопривода, например так: myservo.attach(11, 544, 2400). Попробуйте изменять значения длительности до тех пор, пока не убедитесь, что сервопривод работает штатно в крайних положениях. Всегда используйте подобранные значения при подключении именно этого сервопривода.