Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком
Компоненты и материалы
| Arduino UNO | ×1 |
| Шаговый двигатель 28BYJ-48 5V DC | ×1 |
| Драйвер ULN2003 (обычно в комплекте с двигателем) | ×1 |
| Беспаечная макетная плата | ×1 |
| Провода-перемычки | ×1 комплект |
| Аналоговый джойстик | ×1 |
О проекте

Необходимое оборудование
- Плата Arduino UNO
- Шаговый двигатель 28BYJ-48 с драйвером ULN2003A
- Джойстик
- Источник питания 5V
- Беспаечная плата и перемычки
Схема подключения
Схема проекта показана ниже (все земляные выводы соединены вместе):


Подключение двигателя к драйверу ULN2003A: Драйвер питается от внешнего источника 5V. Управляющие линии подключаются к Arduino:
- IN1 → пин 11
- IN2 → пин 10
- IN3 → пин 9
- IN4 → пин 8
Подключение джойстика: 5 выводов: GND, +5V, VRX (ось X), VRY (ось Y), SW (кнопка). VRX → аналоговый пин A0. VRY можно использовать для второго двигателя. Кнопка (SW) в этом примере не используется. Используя обе оси, можно управлять двумя шаговыми двигателями независимо.
Программный код
// Проект создан BEASTIDREES62
#include <Stepper.h>
#define STEPS 32 // Шагов на оборот вала (внутренний)
#define IN1 11
#define IN2 10
#define IN3 9
#define IN4 8
// Инициализация библиотеки: порядок пинов IN4, IN2, IN3, IN1 для правильной фазировки
Stepper stepper(STEPS, IN4, IN2, IN3, IN1);
#define joystick A0
void setup() {
// Ничего не требуется
}
void loop() {
int val = analogRead(joystick); // Чтение положения джойстика (0-1023)
// Мертвая зона в центре — остановка двигателя
if (val > 500 && val < 523) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
} else {
// Движение в одну сторону
while (val >= 523) {
int speed_ = map(val, 523, 1023, 5, 500); // Скорость 5-500 об/мин
stepper.setSpeed(speed_);
stepper.step(1); // Один шаг вперед
val = analogRead(joystick);
}
// Движение в другую сторону
while (val <= 500) {
int speed_ = map(val, 500, 0, 5, 500);
stepper.setSpeed(speed_);
stepper.step(-1); // Один шаг назад
val = analogRead(joystick);
}
}
}
Схемы

Производственный процесс
- Продвинутые схемы управления двигателями: защёлкивание, стоп и задержка времени
- Шаговые двигатели: типы, характеристики и практические применения
- Field-Oriented Control: ключ к плавной, эффективной работе EV-моторов
- Интегрированная система контроля доступа с QR, RFID и верификацией температуры
- DIY автономная турель Nerf — умный Nerf-пушка на шаговых двигателях, камере и Arduino
- Умная копилка: управление монетоприёмником на Arduino Nano
- Полнофункциональная библиотека для управления биполярным шаговым двигателем на Arduino
- Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
- Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
- ЧПУ-точарный станок Millport SmartLathez 1740 — точность и мощь