Подключение сервоприводов к Arduino

Как уже говорилось, сервопривод это точный исполнитель который получая на вход значение управляющего параметра стремится создать и поддерживать значение на выходе исполнительного элемента.

В данной статье рассмотрим что же из себя представляют управляющие импульсы, а также то, как лучше подключать сервоприводы к Arduino.

Подключение сервопривода от внешнего источника напряжения

Купить

Используемые компоненты (купить в Китае):

• Управляющая плата

Arduino UNO 16U2, либо более дешевая Arduino UNO CH340G,

Arduino Nano CH340G, либо Arduino MEGA 16U2, либо более дешевая Arduino MEGA CH340G,

• Сервоприводы

• Соединительные провода

Полезная вещь для проверки сервориводов

О том как входные импульсы преобразуются в сигналы управления мотором мы уже рассказали в этой статье, о самих сигналах управления мотором и их отличиях в различных типах сервоприводов можно прочитать здесь. В данной же статье речь пойдет непосредственно о управляющих импульсах, будут даны примеры как их сгенерировать на Arduino.

Управляющий сигнал представляет из себя импульсы с нужной нам шириной, которые посылаются с определенной частотой. Для рассматриваемых нами сервоприводов частота посылания импульса почти всегда будет около 50 Гц (это примерно 1 раз в 20мс), а ширина импульса будет лежать в пределе от 544мкс до 2400мкс.

Как видно из картинке, импульс шириной в 544мкс выставит выводной вал в положение 0, 1520мск соответствует углу в 90, а 2400мкс соответствует 180.

Зависимость угла поворота от входных импульсов

Изменяя ширину импульсов в данных пределах мы сможем точно задавать угол поворота выводного вала, но об этом чуть позже. На данном этапе статьи хочется рассказать о том как подключить сервопривод к Arduino.

Для подключения к контроллеру от сервопривода тянется 3 провода обжатых стандартным 3 пиновым разъемом с шагом 2.54мм . Цвета проводов могут варьироваться. Коричневый или черный — земля (GND), красный — плюс источника питания (VTG), оранжевый или белый — управляющий сигнал (SIG).

Подключение сервоприводов к Arduino

У старых Ардуин, укомплектованных мегой 8, имеется всего три ШИМ вывода (digital 9,10,11), у Ардуин укомплектованных мегой 168 или 328 их 6 (digital 3,5,6,9,10,11). Семейство Arduino MEGA имеет на своем борту целых 14 ШИМ выводов.

Один 9G сервопривод, потребляющий слабый ток, еще можно подключить напрямую к Arduino.

GND на любой из GND пинов­­­ ардуино

VTG на + 5 вольт на ардуино

SIG на ШИМ (PWM) вывод ардуино

Подключение сервопривода к Arduino напрямую

Подключение пары сервоприводов 9G либо одного мощного сервоприводов, к примеру MG995, может вызвать большую просадку напряжения и контроллеру не хватит питания, мега8 очень привередлива и из-за этого контроллеру не хватит напряжения и он отключится. Так же на плате Arduino установлен маломощный стабилизатор не рассчитанный на потребление большого тока и чрезмерное потребление может перегреть его и повредить плату. Во избежание этого, при использовании мощных серв, либо больше одной слабой, рекомендуем подавать питание на сервопривод отдельно.

• ​ Вариант 1

Можно приобрести блок питания на 5 или 6 вольт, в зависимости от напряжения питания вашего сервопривода и питать сервопривод от него.

Подключение сервопривода от внешнего источника напряжения

• ​ Вариант 1

В случае, если под рукой нет стабилизированного источника питания на 5Вольт, но имеется любой другой источник питания (блок, аккумулятор, сборка из батареек) с напряжением 6-12В, то из него можно легко получить требуемое напряжение для сервопривода. Поможет нам в этом стабилизатор. Рассмотрим самый простой L7805/L7806, требующий минимум деталей внешней обвязки.

Подключение сервопривода через стабилизатор 7805

Стабилизатор имеет 3 ноги:

1 — Вход. На него подается напряжение от 6 или 7(в зависимости от модели) до 12Вольт

3 — Выход 5 или 6 вольт (в зависимости от модели)

7805 отечественный аналог КР142ЕН5А — выходное напряжение 5Вольт.

7806 отечественный аналог КР142ЕН5Б — выходное напряжение 6Вольт.

Как видно из рисунка необходима установка конденсаторов, можно и без них, но выходное напряжение будет не стабильным. Рекомендуемые номиналы конденсаторов: на входе 0.33 мкФ, на выходе 0.1 мкФ. Я всегда ставлю два электорлита по 100мкФ. Чем больше — тем лучше.

P.S. Не забудьте соединить земли источников питания

Программный код управления

Для управления углом поворота сервопривода, в программном коде можно либо вбивать ширину имлульсов вручную и подбирать точный угол, либо задавать угол в виде градусов при помощи команды библиотеки.

• ​ Вариант 1

В данном скетче зададим 3 угла поворота выходного вала сервопривода используя управление изменением непосредственно значения ширины импульса. Данный метод самый точный, однако для каждого угла ширину импульсов придется подбирать индивидуально.

пример программного кода:

• ​ Вариант 2

В этом же скетче зададим теже 3 угла поворота выходного вала сервопривода используя команду myservo.write. В данной команде мы уже не задаем ширину импульсов, а просто пишем нужный нам угол. Данный вариант намного удобнее, однако настройка не такая точная как при первом.

пример программного кода:

Также вам могут понадобиться следующие команды:

myservo.read();
Считывает текущий угол поворота сервопривода, возвращает значение типа int угол от 0 до 180 градусов.

myservo. attached ();
Проверяем, привязан ли сервопривод. Возвращает логическое значение bool.

myservo. detach ();
Отключает сервопривод от пина.

Цикл статей о сервоприводах:

Купить

Купить в России сервоприводы различных размеров

А как же комментарии?

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.


Источник: zelectro.cc