Как управлять шаговым двигателем с помощью Raspberry Pi

D

Daniel Zhang

Обновлено Aug 17, 2026

  1. Введение

Raspberry Pi — это популярный одноплатный компьютер, широко используемый в любительских и промышленных проектах. По сути, это небольшой компьютер размером с кредитную карту. Он широко применяется в различных проектах, включая управление шаговыми двигателями — распространённую задачу в приложениях управления движением. В этой статье вы узнаете, как использовать язык программирования Python и библиотеку RPi.GPIO для управления шаговым двигателем, а также получите соответствующие инструкции по подключению.

  1. Необходимые материалы
  1. Raspberry Pi (рекомендуется Raspberry Pi 3B+ или новее)
  2. Шаговый двигатель (например, NEMA 17)
  3. Модуль драйвера шагового двигателя (например, DRV8825 или A4988)
  4. Соединительные провода (разъёмы DuPont)
  5. Адаптер питания 12 В постоянного тока
  6. Макетная плата (по желанию)
  7. Развязывающий конденсатор (например, электролитический 100 мкФ)
  1. Инструкции по подключению

Примечание по безопасности: Всегда подключайте провода двигателя и драйвера до подачи питания. Дважды проверьте все соединения, чтобы избежать повреждения Raspberry Pi или модуля драйвера.

  1. Подключите четыре провода шагового двигателя к выводам A1, A2, B1 и B2 на модуле драйвера двигателя.
  2. Подключите положительный вывод источника питания 12 В к выводу VMOT на модуле драйвера, а отрицательный вывод — к выводу GND. Установите развязывающий конденсатор (например, электролитический 100 мкФ) между VMOT и GND как можно ближе к модулю драйвера для подавления выбросов напряжения.
  3. Подключите вывод питания 5 В Raspberry Pi (физический Pin 2 или Pin 4) к выводу VCC на модуле драйвера, а вывод GND (например, физический Pin 6) — к выводу GND на модуле драйвера.
  4. Подключите следующие выводы BCM GPIO Raspberry Pi к соответствующим выводам модуля драйвера:
Raspberry Pi GPIO (BCM) Физический вывод Вывод модуля драйвера
GPIO 17 Pin 11 DIR
GPIO 18 Pin 12 STEP
GPIO 27 Pin 13 MS1
GPIO 22 Pin 15 MS2
GPIO 23 Pin 16 ENABLE

Совет: Вывод ENABLE на большинстве модулей A4988/DRV8825 является активным низким. Подача низкого уровня (LOW) включает выход драйвера.

  1. Реализация кода на Python

Сначала установите библиотеку RPi.GPIO. Введите следующие команды в терминале:

sudo apt-get update
sudo apt-get install python3-rpi.gpio

Затем создайте файл Python с именем stepper_motor.py и введите следующий код:

import time
import RPi.GPIO as GPIO

# Определение выводов (нумерация BCM)
DIR = 17
STEP = 18
MS1 = 27
MS2 = 22
ENABLE = 23

# Установка режима GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.setup(MS1, GPIO.OUT)
GPIO.setup(MS2, GPIO.OUT)
GPIO.setup(ENABLE, GPIO.OUT)

# Включение драйвера и установка направления
GPIO.output(ENABLE, GPIO.LOW)   # Включение драйвера (активный низкий)
GPIO.output(DIR, GPIO.HIGH)     # Направление по часовой стрелке

# Установка режима микрошага в зависимости от модели драйвера (например, A4988)
GPIO.output(MS1, GPIO.HIGH)     # 1/4 шага
GPIO.output(MS2, GPIO.LOW)

# Управление вращением двигателя
steps = 200
delay = 0.001  # Меньшая задержка для большей скорости

for _ in range(steps):
    GPIO.output(STEP, GPIO.HIGH)
    time.sleep(delay)
    GPIO.output(STEP, GPIO.LOW)
    time.sleep(delay)

# Очистка GPIO
GPIO.cleanup()

Наконец, сохраните файл и запустите его в терминале:

python3 stepper_motor.py
  1. Заключение

В этой статье было рассмотрено, как использовать Raspberry Pi для управления шаговым двигателем, включая инструкции по подключению и код на Python с использованием библиотеки RPi.GPIO. Вы можете легко реализовать управление двигателем, следуя этим шагам. Настройте параметры в коде (такие как количество шагов, задержка и настройки микрошага) в соответствии с требованиями вашего проекта.