Module's. Stepmotor Driver Module v1.1 (HR8825)








1. Описание
Драйвер шагового двигателя. Используют для управления моторами, расположенными, например, в принтерах, или в роботизированных конечностях. Модуль построен на связке из микроконтроллера STM32 и трёхканального драйвера биполярного шагового двигателя HR8825. Базовое устройство обращается к драйверу напрямую, минуя STM32F030F4P6. Микроконтроллер предназначен для расширения портов ввода, а также для обеспечения служебного доступа к драйверу по интерфейсу I2C, например, для получения статуса, сброса, торможения или ограничения. Для настройки деления шага предусмотрены три пары контактов на печатной плате. Есть интерфейс PWR485, который используют для связи и питания от внешнего источника постоянного тока с напряжением в диапазоне от 9 до 24 В. Программируют данный модуль в среде разработки UIFlow.
Внимание! Запрещено подключать и отключать двигатель при наличии питания.
2. Особенности продукта:
- микроконтроллер STM32F030F4P6. Архитектура 32-битный ARM® Cortex™ M0;
- трёхосевой драйвер HR8825;
- предназначен для управления биполярными шаговыми двигателями;
- регулировка тока с помощью резисторов для каждого канала. Максимально допустимый ток 1,5 А;
- есть возможность выбора шага;
- четыре линии сигнала ввода;
- интерфейс PWR485 (RS485 + линия питания постоянного тока с напряжением в диапазоне от 9 до 24 В);
- разъём DC Jack для подключения внешнего источника питания постоянного тока с напряжением в диапазоне от 9 до 24 В;
- поддерживаемые платформы разработки: Arduino IDE и UIFlow.
3. Комплектация:
- StepMotor Driver v1.1 × 1 шт.;
- штекер 2.54-2P × 4 шт.;
- штекер 2.54-4P × 3 шт.;
- штекер 3.96-4P × 1 шт.
4. Применение:
- 3D-принтеры;
- сканеры;
- гравировальные ЧПУ-станки;
- модули управления движением.
5. Технические характеристики
Технические характеристики приведены в таблице 5.1.
Таблица 5.1
Параметр |
Значение |
Модель МК |
STM32F030F4P6 |
Модель микросхемы-драйвера шагового двигателя |
HR8825 |
Шаг |
полный, 1/2, 1/4, 1/8, 1/16 и 1/32 |
Максимально допустимый ток одного канала, А |
1,5 |
Спецификация разъёма для подключения линии ввода |
2.54-2P |
Спецификация разъёма для подключения мотора |
2.54-4P |
Спецификация разъёма для интерфейса RS485 |
3.96-4P |
Диапазон рабочих температур, ℃ |
0 ÷ 40 |
Размеры изделия, мм |
54,2 × 54,2 × 13,2 |
Размеры упаковки, мм |
95 × 65 × 25 |
Масса нетто, г |
40 |
Масса брутто, г |
60 |
6. Полезные ссылки:
7. Схемы и чертежи
Схема принципиальная приведена на рис. 7.1.

Рисунок 7.1
8. Примеры кода
Arduino IDE:
UIFlow:

Рисунок 8.1
9. Блоки UIFlow
- инициализировать устройство (см. рис. 9.1);

Рисунок 9.1
- установить частоту импульсов шага (см. рис. 9.2);

Рисунок 9.2
- установить деление шага (см. рис. 9.3);

Рисунок 9.3
- установить направление вращения для выбранного мотора (см. рис. 9.4);

Рисунок 9.4
- установить состояние для всех моторов (см. рис. 9.5);

Рисунок 9.5
- установить состояние для выбранного мотора (см. рис. 9.6);

Рисунок 9.6
- сбросить состояние выбранного мотора (см. рис. 9.7);

Рисунок 9.7
- установить I2C-адрес устройства (см. рис. 9.8);

Рисунок 9.8
- получить состояние всех ограничителей (см. рис. 9.9);

Рисунок 9.9
- получить состояние установленного ограничителя (см. рис. 9.10);

Рисунок 9.10
- получить состояние неисправности для выбранного мотора (см. рис. 9.11);

Рисунок 9.11
- узнать версию микропрограммы (см. рис. 9.12);

Рисунок 9.12
- инициализировать Modbus (см. рис. 9.13);

Рисунок 9.13
- установить значение одной Slave-обмоток по установленному адресу (см. рис. 9.14);

Рисунок 9.14
- установить значения для одного Slave-регистра (см. рис. 9.15);

Рисунок 9.15
- установить значение нескольких Slave-обмоток (см. рис. 9.16);

Рисунок 9.16
- установить значение для нескольких регистров (см. рис. 9.17);

Рисунок 9.17
- инициализировать Modbus Slave (см. рис. 9.18);

Рисунок 9.18
- обновление Slave (см. рис. 9.);

Рисунок 9.19
- отправить ADU-ответ из буфера (см. рис. 9.20);

Рисунок 9.20
- принять ADU-запрос (см. рис. 9.21);

Рисунок 9.21
- получить код функции (см. рис. 9.22);

Рисунок 9.22
- узнать код (см. рис. 9.23);

Рисунок 9.23
- узнать Slave-адрес (см. рис. 9.24);

Рисунок 9.24
- узнать количество Slave'ов (см. рис. 9.25);

Рисунок 9.25
- отправить установленный набор символов по UART (см. рис. 9.26);

Рисунок 9.26
- отправить установленную строку по UART (см. рис. 9.26);

Рисунок 9.26
- прочесть всё с UART (см. рис. 9.27);

Рисунок 9.27
- считать установленное количество символов с UART (см. рис. 9.28);

Рисунок 9.28
- считать строку с UART (см. рис. 9.29);

Рисунок 9.29
- очистить кэш UART (см. рис. 9.30);

Рисунок 9.30