Вращающаяся платформа на шаговом двигателе 28BYJ-48 с управлением по Serial
Компоненты и материалы
| Шаговый двигатель 28BYJ-48 | 1 шт. |
| Драйвер шагового двигателя X113647 (ULN2003A) | 1 шт. |
| Arduino UNO | 1 шт. |
| Полиуретановая крепежная втулка Pololu для вала 5 мм | 1 шт. |
| Деревянная основа 15x15 см | 1 шт. |
| Резиновые подушки 10 мм | 4 шт. |
Инструменты
- Лобзик
- Дрель с 6-мм сверлом для дерева
О проекте
Вращающаяся платформа для фотосъемки, 3D-сканирования или демонстрации изделий. Управляется через Serial Monitor или терминал (Tera Term) простыми командами.
Команды управления
- R — непрерывное вращение по часовой стрелке
- r — поворот на 360° по часовой стрелке
- L — непрерывное вращение против часовой стрелки
- l — поворот на 360° против часовой стрелки
- S — остановка
Механическая сборка
- Найдите центр деревянной основы (пересечение диагоналей) и просверлите отверстие 6 мм.
- Установите втулку двигателя в отверстие, обведите контур карандашом.
- Лобзиком вырежьте круг по контуру так, чтобы крепежные отверстия двигателя лежали на дереве.
- Установите резиновые подушки (10 мм) для зазора под двигателем.
- Крепите вращающуюся плиту к валу через алюминиевую втулку Pololu.
Схема подключения
Драйвер X113647 подключается к Arduino UNO:
motorPin1 (Blue) -> D4
motorPin2 (Pink) -> D5
motorPin3 (Yellow)-> D6
motorPin4 (Orange)-> D7
VCC (Red) -> 5V
GND (Blue) -> GND
Код (использует библиотеку AccelStepper)
#include <AccelStepper.h>
#define motorPin1 4
#define motorPin2 5
#define motorPin3 6
#define motorPin4 7
#define STEPS_PER_TURN 2048
int motorSpeed = 500;
int motorAccel = 400;
int myPos = 0;
int LeftTurnUp = 0, RightTurnDown = 0;
int Continuous = 0;
int incomingByte = 0;
AccelStepper stepper(4, motorPin1, motorPin3, motorPin2, motorPin4);
void setup() {
Serial.begin(9600);
stepper.setMinPulseWidth(20);
stepper.setMaxSpeed(motorSpeed);
stepper.setSpeed(motorSpeed);
stepper.setAcceleration(motorAccel);
stepper.setCurrentPosition(stepper.currentPosition());
stepper.runToPosition();
Serial.println("Commands: R/r - CW, L/l - CCW, S - stop");
}
void loop() {
if (Serial.available() > 0) {
incomingByte = Serial.read();
// Обработка команд R, L, r, l, S с остановкой и установкой флагов
// ... (полный код в исходнике)
}
// Исполнение движения на основе флагов
if (Continuous == 1) { /* непрерывное вращение */ }
if (Continuous == 0) { /* одиночный поворот 360° */ }
stepper.run();
}
Производственный процесс
- Шаговые двигатели: типы, характеристики и практические применения
- Интегрированные драйверы упрощают дизайн высокомощных шаговых двигателей
- Температурно-управляемый вентилятор: DIY релейная система охлаждения мебели для медиа
- Raspoulette: Прототип солнечной автономной системы двери курятника
- DIY автономная турель Nerf — умный Nerf-пушка на шаговых двигателях, камере и Arduino
- Полнофункциональная библиотека для управления биполярным шаговым двигателем на Arduino
- Android-управляемая робот-платформа на Raspberry Pi и Motor Shield
- Автоматизированный свайпер для Tinder и Bumble на Arduino UNO и шаговом двигателе
- Понимание линейных моторов: от электрической энергии к точному линейному движению
- Серводвигатели: принцип работы и значение