Библиотека Servo для управления сервоприводом

Для управления сервоприводом в Arduino имеется стандартная библиотека Servo. На платах, отличных от Mega, использование библиотеки отключает возможность использования analogWrite() (ШИМ) на пинах 9 и 10 (вне зависимости, подключены к этим пинам сервы или нет). На платах Mega до 12 сервоприводов могут использоваться без влияния на функциональность ШИМ, но использование от 12 до 23 сервомашинок отключит ШИМ на пинах 11 и 12. Cервопривод подключается тремя проводами : питание (Vcc), "земля" (Gnd) и сигнальный (С). Питание — красный провод, он может быть подключен к выводу +5 В на плате Arduino. Черный или коричневый провод — "земля" подключается к выводу Arduino GND, сигнальный (оранжевый/желтый/белый) провод подключается к цифровому выводу контроллера Arduino. Следует отметить, что мощные сервоприводы могут создавать большую нагрузку — в этом случае их следует запитывать отдельно (не через выход +5 В Arduino). То же самое верно для случая подключения сразу нескольких сервоприводов.

Набор функций библиотеки Servo:

 attach(int);

 detach();

 write(int);

 writeMicroseconds(int);

 read();

 attached().

Функция attach()

Функция attach() подключает переменную servo к указанному выходу, с которого осуществляется управление приводом.

Синтаксис:

servo.attach(pin) servo.attach(pin, min, max)

Параметры:

 pin — номер выхода, к которому подключаем сервопривод и с которого осуществляется управление приводом;

 min — ширина импульса в микросекундах, соответствующая минимальному (угол 0 градусов) положению сервопривода;

 max — ширина импульса в микросекундах, соответствующая максимальному (угол 180 градусов) положению сервопривода.

Возвращаемого значения нет.

Функция detach()

Функция detach() отсоединяет переменную servo от подключенного функцией attach() выхода. Если все переменные servo отсоединены, то выходы 9 и 10 могут быть использованы в режиме ШИМ с помощью analogWrite().

Синтаксис:

servo.detach()

 Параметров нет. Возвращаемого значения нет.

Функция write(int)

Функция write(int) передает значения для управления приводом. Для стандартного сервопривода это угол поворота. Для привода постоянного вращения функция задает скорость вращения: 0 — для максимальной скорости вращения в одну сторону, 180 — для максимальной скорости в другую сторону и около 90 для неподвижного состояния.

Синтаксис:

servo.write(angle)

Параметр: angle — значение, записываемое в servo (от 0 до 180). Возвращаемого значения нет.

Функция writeMicrosconds(int)

Функция writeMicrosconds(int) передает значение для управления сервоприводом в микросекундах (uS), устанавливая угол поворота на это значение. Для стандартного привода: значение 1000 — максимальный поворот против часовой стрелки, 2000 — максимальный поворот по часовой стрелке, 1500 — посередине.

Синтаксис:

servo.writeMicrosconds (uS)

Параметр: uS — значение в микросекундах. Возвращаемого значения нет.

Функция read()

Функция read() cчитывает значение текущего положения сервопривода (значение, записанное последним вызовом функции write()).

Синтаксис:

servo.read() Параметров нет.

Возвращаемое значение: angle — положение (угол) сервопривода от 0 до 180.

Функция attached()

Функция attached() проверяет, подключена ли переменная Servo к выходу.

Синтаксис:

servo.attached()

Параметров нет.

Возвращаемые значения: true — если подключена, false — в противном случае.

 

Вверх

 

Основные версии плат Arduino

Due — плата на базе 32-битного ARM микропроцессора Cortex-M3 ARM SAM3U4E;

Leonardo — плата на микроконтроллере ATmega32U4;

Uno — самая популярная версия базовой платформы Arduino;

Duemilanove — плата на микроконтроллере ATmega168 или ATmega328;

Diecimila — версия базовой платформы Arduino USB;

Nano — компактная платформа, используемая как макет. Nano подключается к компьютеру при помощи кабеля USB Mini-B;

Mega ADK — версия платы Mega 2560 с поддержкой интерфейса USB-host для связи с телефонами на Android и другими устройствами с интерфейсом USB;

Mega2560 — плата на базе микроконтроллера ATmega2560 с использованием чипа ATMega8U2 для последовательного соединения по USB-порту;

Mega — версия серии Mega на базе микроконтроллера ATmega1280;

Arduino BT — платформа с модулем Bluetooth для беспроводной связи и программирования;

LilyPad — платформа, разработанная для переноски, может зашиваться в ткань;

Fio — платформа разработана для беспроводных применений. Fio содержит разъем для радио XBee, разъем для батареи LiPo и встроенную схему подзарядки;

Mini — самая маленькая платформа Arduino;

Pro — платформа, разработанная для опытных пользователей, может являться частью большего проекта;

Pro Mini — как и платформа Pro, разработана для опытных пользователей, которым требуется низкая цена, меньшие размеры и дополнительная функциональность.