Содержание
Это библиотека для управления сервомоторами в среде Arduino
, источник форка, которая позволяет использовать до 8 сервомоторов асинхронно (поскольку она использует прерывания). Кроме того, вы можете настраивать скорость перемещения сервомотора, ждать завершения перемещения (блокировка) и создавать последовательность асинхронных перемещений.
Код является модификацией стандартной библиотеки Arduino Servo.h
, которую первоначально адаптировал Korman
и опубликовал на форуме Arduino, добавив возможность изменения скорости сервомотора. Затем Philip van Allen провёл обновление до версии 1.0+
, добавив возможность ожидания завершения перемещения.* Поддерживает до 8 сервомоторов
write()
можно выбрать ожидание завершения перемещения перед возвратомПеремещение одного сервомотора, ожидание завершения первого перемещения, затем выполнение перемещения другого сервомотора
#include <VarSpeedServo.h>
VarSpeedServo myservo; // Создаем объект myservo для управления сервомотором
void setup() {
myservo.attach(9); // Соединяем пин Yöntem 9 с объектом myservo
}
void loop() {
myservo.write(180, 30, true); // Перемещаемся до 180 градусов со скоростью 30, ожидаем завершение перемещения
myservo.write(0, 30, true); // Перемещаемся до 0 градусов со скоростью 30, ожидаем завершение перемещения
}
```### Пример 2
Два сервопривода одновременно перемещаются с различной скоростью, после чего ждут завершения перемещения перед выполнением следующего действия.
```c++
#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(); // Ждет завершения движения myservo1
myservo2.wait(); // Ждет завершения движения myservo2
}
``` myservo1.write(RIG, SPEED1);
myservo1.wait(); // Ждет завершения движения myservo1
myservo1.write(LEF, SPEED1);
myservo2.write(RIG, SPEED2);
myservo1.wait();
myservo2.wait();
myservo1.write(RIG, SPEED1);
myservo1.wait();
delay(1000);
}
Прочие примеры включены в пакете установки и могут быть просмотрены в разделе "Примеры Arduino".
attach(pin)
// Указывает Arduino, что данные сервоприводов приходят с указанного пинаattach(pin, min, max)
// Устанавливает минимальное и максимальное значения импульсов для объекта сервопривода (в микросекундах)write(value)
// Устанавливает угол поворота сервоприводаwrite(value, speed)
// Устанавливает скорость движения сервопривода и направление его перемещения, где 0 — полная скорость, а 1–255 — от медленного до быстрогоwrite(value, speed, wait)
// Ожидание — это логическое значение, если true, то вызов функции будет заблокирован до завершения движенияwriteMicroseconds()
// Устанавливает длительность импульса сервопривода (в микросекундах)read()
// Получение текущего угла поворота сервоприводаreadMicroseconds()
// Чтение текущей длительности импульсаattached()
// Проверяет соединение объекта сервопривода с пином Arduinodetach()
// Отсоединяет объект сервопривода от Arduino- slowmove(value, speed)
// Эквивалент функции write(value, speed), но используется для совместимости с версией Kormanstop()
// Остановка сервопривода на текущем положенииsequencePlay(sequence, sequencePositions)
// Запуск последовательности действий, начиная с позиции 0sequencePlay(sequence, sequencePositions, loop, startPosition)
// Запуск последовательности действий, loop — активация циклического режима (логическое значение), startPosition — начало с указанной позицииsequenceStop()
// Остановка последовательности действий на текущем положенииwait()
// Ждет завершения движения сервоприводаisMoving()
// Проверяет, находится ли сервопривод в состоянии движенияВы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )