Библиотека используется для подключения 3-х выводных сервопривода с ШИМ управлением к плате ардуино. Сигнал управления должен быть 50 Гц (длительность периода 20 миллисекунд), а ширина положительного импульса в микросекундах задает угол поворота (по умолчанию в библиотеке определены: минимальная ширина — 544 мкс, максимальная — 2400 мкс, что соответствует углам 0° и 180°).
Библиотека Servo входит в состав Arduino IDE. На всякий случай архив с библиотекой по ссылке ниже:
Скачать библиотеку Servo с сайта
Описание библиотеки Servo для Ардуино
#include <Servo.h>
Подключение библиотеки. Добавляется в верхнюю часть скетча.
Servo myservo;
Создание экземпляра класса Servo для работы с сервоприводом.
uint8_t attach(int pin)
Задать номер управляющего контакта ардуины pin
, подключенного к сервоприводу. После вызова данного метода на указанном контакте начинается генерация ШИМ сигнала частотой 50 Гц и шириной импульса по умолчанию 1500 микросекунд.
myservo.attach(9);
uint8_t attach(int pin, int min, int max)
Задать номер управляющего контакта ардуины pin
, подключенного к сервоприводу, а также минимальное min
и максимальное max
значения ширины импульсов в микросекундах (что будет соответствовать углам 0. По умолчанию min = 544 мкс
, max = 2400 мкс
.
myservo.attach(9, 1000, 2000);
void detach()
Останавливает генерацию ШИМ сигнала.
myservo.detach();
void write(int value)
Устанавливает угол value
сервопривода в градусах. Если значение выходит из установленного диапазона, то оно воспринимается как угол в микросекундах.
myservo.write(45); // Установить угол 45°
void writeMicroseconds(int value)
Устанавливает ширину импульса в микросекундах.
myservo.writeMicroseconds(1250); // Установить ширину импульса 1250 мкс
int read()
Возвращает последнюю записанную ширину импульса в виде угла от 0° до 180°.
int d = myservo.read();
int readMicroseconds()
Возвращает последнюю записанную ширину импульса в микросекундах.
int us = myservo.read();
bool attached()
Возвращает true
если сервопривод подключен, иначе — false
.
if(!myservo.attached()) Serial.println("Сервопривод не подключен");