Управление сервоприводом на Arduino

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

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

Начнем знакомство с самым популярным из них, по-другому он еще называется SG90 (Tower Pro Micro Servo 9G). Сервопривод представляет небольшую коробку, в которую запрятан сам механизм. Научившись правильно писать программный код, можно управлять положением вала.

Для подключение сервопривода к Arduino, на плате используется 3 контакта (для подключения используются 3 провода “папа-папа”): питание (5V), заземление и аналоговый выход (расположены на панели digital). Наглядная схема подключения изображена на рисунке ниже:

Схема соединения Arduino и сервопривода
Схема соединения Arduino и сервопривода

Внимание! При подключение более чем одной сервы или одной, но более мощной, можно допустить просадку напряжения на плате Arduino (из-за слабой стабилизации на плате) Поэтому, если подключаете более одного сервопривода, то контакты питания лучше подключать к отдельному источнику, чем к плате.

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

  • attach(номер_вывода) — инициализация сервопривода;
  • write(угол) — поворот сервопривода на заданный угол;
  • read() — получение текущего угла сервопривода.

Теперь рассмотрим первую программу с использованием сервопривода.

Данная программа позволит изменять угол поворота вала на сервоприводе  с течением времени:

Через каждые 2 секунды вал поворачивается на 180 градусов.  Номер порта, к которому подключаем аналоговый выход с привода - также прописывается в скетче (в данном случае номер 10). Вы можете сами настроить через какой промежуток времени и на какой угол будет у вас поворачиваться сервопривод.

Применение

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

Один из таких проектов приводим на видео ниже. Это управление поворотной платформой на основе сервопривода с помощью джойстика.

Компоненты для повторения данного урока вы можете купить в нашем интернет-магазине:

Читать статью про подключение джойстика к Arduino

Другие статьи и видеоуроки вы сможете найти в нашем блоге.