Библиотека Arduino VarSpeedServo.h позволяет использовать до 8 сервоустройств, движущихся асинхронно (поскольку она использует прерывания). Кроме того, можно установить скорость движения, опционально ждать (блокировать) завершение движения сервоустройства и создавать последовательности движений, выполняющиеся асинхронно.
Этот код является адаптацией стандартной библиотеки Arduino Servo.h, которая впервые была адаптирована Корманом и опубликована на форуме Arduino для добавления возможности управления скоростью. Филипп ван Аллен обновил её для совместимости с Arduino 1.0+ и добавил возможность ожидания завершения движения.
#include <VarSpeedServo.h>
VarSpeedServo myservo; // создание объекта сервоустройства для управления одним сервоустройством
void setup() {
myservo.attach(9); // подключение сервоустройства на пин 9 к объекту сервоустройства
}
``````cpp
void loop() {
myservo.write(180, 30, true); // движение до 180 градусов, скорость 30, ожидание завершения движения
myservo.write(0, 30, true); // движение до 0 градусов, скорость 30, ожидание завершения движения
}
#include <VarSpeedServo.h>
// Создание объектов сервоустройств
VarSpeedServo myservo1;
VarSpeedServo myservo2;
void setup() {
myservo1.attach(9);
myservo2.attach(8);
}
void loop() {
int LEF = 0;
int RIG = 180;
int SPEED1 = 160;
int SPEED2 = 100;
myservo1.write(LEF, SPEED1);
myservo2.write(LEF, SPEED2);
myservo1.wait(); // ожидание завершения движения сервоустройства 1
myservo2.wait(); // ожидание завершения движения сервоустройства 2
myservo1.write(RIG, SPEED1);
myservo1.wait(); // ожидание завершения движения сервоустройства 1
myservo1.write(LEF, SPEED1);
myservo2.write(RIG, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
delay(1000);
}
Дополнительные примеры включены в распределение и доступны в разделе Примеры Arduino.
Серво активируется путём создания экземпляра класса Servo
с передачей желаемого пина методу attach()
. Сервы пульсируются в фоновом режиме с использованием последнего записанного значения методом write()
.
Класс VarSpeedServo
предназначен для манипулирования сервомоторами, подключенными к пинам Arduino. Методы: attach(pin) - Подключает сервомотор к пину.
attach(pin, min, max) - Подключает к пину, устанавливая минимальное и максимальное значения в микросекундах. По умолчанию min равно 544, max равно 2400.
write(value) - Устанавливает угол поворота сервы в градусах. Невалидный угол, который является валидным как импульс в микросекундах, рассматривается как импульс в микросекундах.
write(value, speed) - Скорость изменяет скорость перемещения к новому положению от 0 (полная скорость) до 255 (медленнее).
write(value, speed, wait) - Wait — это булево значение; если true, вызов функции блокирует выполнение до завершения движения.
writeMicroseconds() - Устанавливает ширину импульса сервы в микросекундах.
read() - Получает последний записанный угол поворота сервы между 0 и 180.
readMicroseconds() - Получает последнюю записанную ширину импульса сервы в микросекундах. (было read_us() в первой версии)
attached() - Возвращает true, если серва подключена.
detach() - Останавливает пульсацию подключенной сервы на её входном/выходном пине.
slowmove(value, speed) - То же самое, что write(value, speed), сохранено для совместимости с версией Korman.
stop() - Останавливает серву на текущем положении.```markdown
sequencePlay(sequence, sequencePositions); // воспроизводит циклическую последовательность, начиная с позиции 0 sequencePlay(sequence, sequencePositions, loop, startPosition); // воспроизводит последовательность с указанным количеством позиций; циклический режим, если значение true; начинается с указанной позиции sequenceStop(); // останавливает воспроизведение последовательности на текущей позиции wait(); // ожидает окончания движения isMoving(); // возвращает true, если серва все ещё движется
==========
* Скачайте .zip файл из раздела Releases на GitHub
* В Arduino выберите SKETCH > IMPORT LIBRARY... > ADD LIBRARY... и найдите .zip файл
* Это установит библиотеку в вашем каталоге My Documents (Windows) или Documents (Mac) под каталогом Arduino/libraries
* Вы также можете распаковать файл и установить его в указанный выше каталог libraries вручную
* Дополнительная информация о библиотеках доступна по адресу [arduino.cc/en/Guide/Libraries](http://arduino.cc/en/Guide/Libraries)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )