Библиотека Stepper
- В менеджере библиотек
- Stepper by Arduino
- Версия
- 1.1.3 · всего 6 версий, первая — 1.0.0
- Платы
- любые — автор не ограничивал
Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.
Самая простая библиотека шаговых моторов: задать скорость, шагнуть на N шагов. Блокирует скетч на время движения.
Stepper крутит мотор через драйвер с четырьмя входами, вроде ULN2003 для 28BYJ-48 или L298N для биполярного мотора. Вызов step(n) делает n шагов и возвращается только когда они сделаны — всё это время скетч ничего больше не делает.
Для одного мотора и простых задач этого хватает. Если нужно разгоняться плавно, двигать два мотора одновременно или крутить, не останавливая остальной скетч, — берите AccelStepper. Драйверы со входами STEP и DIR, как A4988, библиотекой Stepper не управляются.
Как скачать и установить
- Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите
Stepperи найдите в списке строку «Stepper by Arduino» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить». - Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
- Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте ZIP выше, затем Скетч → Подключить библиотеку → Добавить .ZIP библиотеку и укажите файл. Распаковывать не нужно.
Файл Stepper.h отдельно не скачивают: он внутри библиотеки и появляется после установки. Если среда пишет Stepper.h: No such file or directory — библиотека не установлена или установлена не та. Как устроен менеджер и куда складываются файлы — в общей статье про библиотеки.
Строка подключения:
#include <Stepper.h>Создание объекта — обычно до setup():
const int STEPS = 2048; // шагов на оборот: 28BYJ-48 с редуктором — 2048
Stepper motor(STEPS, 8, 10, 9, 11); // выводы к IN1, IN3, IN2, IN4 — именно в таком порядке
motor.setSpeed(10); // в setup(): оборотов в минутуМетоды
Только то, что нужно в обычном скетче. Сигнатуры сверены с версией 1.1.3.
Stepper(int steps, int p1, int p2, int p3, int p4)- Конструктор: шагов на оборот и четыре вывода. Есть вариант с двумя выводами для драйверов с DIR и STEP-подобным управлением.
setSpeed(long rpm)- Скорость в оборотах в минуту. Для 28BYJ-48 больше 15 мотор не тянет и пропускает шаги.
step(int n)- Сделать n шагов; отрицательное — в обратную сторону. Блокирует выполнение до конца движения.
Пример
#include <Stepper.h>
const int STEPS = 2048; // 28BYJ-48 в полношаговом режиме
Stepper motor(STEPS, 8, 10, 9, 11); // IN1, IN3, IN2, IN4 драйвера ULN2003
void setup() {
motor.setSpeed(12);
}
void loop() {
motor.step(STEPS); // оборот вперёд
delay(500);
motor.step(-STEPS / 2); // пол-оборота назад
delay(500);
}Порядок выводов 8, 10, 9, 11 — не опечатка: у ULN2003 с 28BYJ-48 обмотки надо чередовать, иначе мотор дрожит на месте.
На чём попадаются
Дрожит и не крутится
Неверный порядок выводов. Для 28BYJ-48 перечисляют IN1, IN3, IN2, IN4.
Крутится, но пропускает шаги
Слишком высокая скорость или слабое питание. 28BYJ-48 питают от 5 В отдельно, не с вывода платы, и держат до 15 об/мин.
Кнопка не реагирует во время движения
step() блокирует. Дробите на короткие вызовы по нескольку шагов и проверяйте кнопку между ними — или переходите на AccelStepper.
Мотор греется в покое
Обмотки остаются под током. После движения отключайте выводы драйвера digitalWrite(LOW) на всех четырёх.