Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком

Компоненты и материалы

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

О проекте

Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком

Необходимое оборудование

Схема подключения

Схема проекта показана ниже (все земляные выводы соединены вместе):

Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком
Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком

Подключение двигателя к драйверу ULN2003A: Драйвер питается от внешнего источника 5V. Управляющие линии подключаются к Arduino:

Подключение джойстика: 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);
    }
  }
}

Схемы

Точное управление шаговым двигателем 28BYJ-48 с Arduino UNO и джойстиком

Производственный процесс

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