Библиотека Servo

Библиотека для arduino

Библиотека используется для подключения 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("Сервопривод не подключен");
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии