Библиотека AccelStepper
Библиотека AccelStepper для Arduino позволяет легко управлять шаговыми двигателями с ускорением и замедлением. Она абстрагирует низкоуровневые детали управления шаговыми двигателями, обеспечивая простой интерфейс для настройки и управления движением.
Установка
Установите библиотеку через Arduino IDE:
1. Перейдите в «Скетч» > «Подключить библиотеку» > «Управлять библиотеками».
2. Введите «AccelStepper» в поле поиска и нажмите «Установить».
Использование
Для использования библиотеки начните с создания объекта AccelStepper:
«`c++
include
AccelStepper stepper(1, 2); // Создать объект шагового двигателя, подключенного к шагам 1 и направлениям 2
«`
Конфигурация
Настройте параметры шагового двигателя:
— `setSpeed(скорость)`: Установите скорость в шагах в секунду (SPS).
— `setMaxSpeed(макс_скорость)`: Установите максимальную скорость в SPS.
— `setAcceleration(ускорение)`: Установите ускорение в шагах в секунду за секунду (SPS2).
— `setPins(шаги, направление)`: Установите номера выводов для управления шагами и направлением.
Управление движением
Для управления движением используйте:
— `moveTo(позиция)`: Переместить в указанную позицию.
— `move(количество_шагов)`: Переместить на указанное количество шагов относительно текущей позиции.
— `run()`: Запустить движение.
— `runSpeed()`: Запустить движение со скоростью, установленной функцией `setSpeed()`.
— `runToPosition()`: Запустить движение в целевую позицию, установленную функцией `moveTo()`.
Состояние
Получите состояние шагового двигателя:
— `currentSpeed()`: Получить текущую скорость в SPS.
— `targetPosition()`: Получить целевую позицию.
— `currentPosition()`: Получить текущую позицию.
— `distanceToGo()`: Получить расстояние до целевой позиции.
— `isRunning()`: Проверить, выполняется ли движение.
Пример использования
«`c++
void loop() {
stepper.setSpeed(100);
stepper.moveTo(1000);
stepper.run();
while (stepper.isRunning()) {
// Ожидание завершения движения
}
}
«`
Дополнительные функции
— `stop()`: Остановить движение.
— `setEnablePin(вывод_включения)`: Управлять выводом включения для двигателя.
— `invertDirection()`: Инвертировать направление вращения.
— `disableOutputs()`: Отключить выходные сигналы шагов и направления.