В одном из наших проектов требуется управлять большим (более 30-и штук) количеством шаговых двигателей типа NEMA 17. Система реализована на контроллерах Arduino и мини-компьютерах Raspberry Pi.
В одном из наших проектов требуется управлять большим (более 30-и штук) количеством шаговых двигателей типа NEMA 17. Система реализована на контроллерах Arduino и мини-компьютерах Raspberry Pi.
Общая концепция
Центр управления будет находится на Raspberry Pi или любом другом мини-компьютере. На Ардуино будет реализован драйвер для управления шаговыми двигателями. Взаимодействие между устройствами будет происходить по TCP/IP протоколу. Так как инициатором связи является мини-компьютер, то он будет клиентом, а драйвер на Ардуино – сервером.
Драйвер
Мы рассматривали несколько вариантов реализации, но остановились на следующем:
• NANO CNC Shield (Contr01 by GRBL)
• NANO ENC28J60 Ethernet Shield
• Клон платы Arduino NANO CH340G;
• DRV8825.
СNC Shield представляет собой плату расширения для Arduino NANO. Разработчики создали эту плату для ЧПУ станков. На нее можно установить 3 драйвера шагового двигателя DRV8825, подключить датчики положения, кулер и прочее оборудование. Ниже приведена таблица по подключению:
Особого внимания требует драйвер DRV8825. Надо настроить его максимальный ток. Настройка производится с помощью подстроечного резистора. Правильная настройка тока драйвера позволяет:
1. Снизить шум от работы принтера при завышенном токе
2. Избавиться от пропуска шагов при низком токе
3. Снизить нагрев шагового двигателя и его драйвера
Мы используем двигатели 17HS401 с током потребления до 1,7 А. Драйвер DRV8825 способен выдавать ток до 2,2 А.
Процедура настройки
Для начала нужно подключить питание платы и питание моторов VMOT. Щуп «минус» мультиметра подсоединить к контакту GND (минус, общий) и щупом «плюс» прикоснуться к корпусу подстроечного резистора на драйвере. Вращаем подстроечный резистор и замеряем расчётное напряжение Vref. Таким образом мы выставляем правильный ток для драйвера шагового двигателя. Для каждого вида драйвера существует своя формула расчета Vref.
Vref – пин замера напряжения для установки тока по формуле
Current Limit – ток шагового двигателя
Current Limit = Vref * 2
Vref = Current Limit / 2
Например, для 17HS4401: Vref = 1,7 / 2 = 0,85В
Программное обеспечение драйвера было написано на основе библиотеки UIPEthernet для Ардуино.
Программное обеспечение мини-компьютера
Для тестирования собранного драйвера была написана клиентская часть для компьютера на C#.
Более подробно мы расскажем о работе этого программного обеспечения в следующей статье.
Цикл статей
Во время подготовки статьи были использованы материалы: