Подключение Nema 17 к Arduino
В этой статье мы хотим продолжить тему подключения шаговых двигателей к Ардуино – на очереди рассказ о ШД Nema 17. Почему именно он? Эта модель считается наиболее удачной среди своих аналогов, а потому ее часто задействуют в современных проектах. Наведем примеры: модуль часто применяют при разработке и конструировании своими руками простых экструдеров и 3D принтеров, копировальной техники, ЧПУ станков, а также в различных CNC-проектах.
Данный прибор (особенно китайское его исполнение) бюджетен по цене, продается как онлайн, так и офлайн на многих торговых площадках, легок в управлении и сборке.
Напомним нашим читателям о терминологии и особенностях шаговых моторов. Речь идет об электромеханических устройствах, которые преобразуют электрические импульсы в дискретные механические перемещения. Они характеризуется неплохой точностью позиционирования, хорошим диапазоном скоростей и быстрым запуском ∕ остановкой.
К техническим параметрам модуля относятся:
- напряжение: 5 – 24V;
- угол поворота: 1.8 º (за шаг);
- длина ∕ диаметр вала: 24 ∕ 5 мм;
- ток на обмотку: 1.7 А;
- индуктивность: 3.2 мГн;
- сопротивление: 1.65 Ом;
- масса: около 280 г.
Управление шаговым двигателем осуществляется при помощи драйверов на микрочипе L293D или A4988 (подробнее читайте статью ТУТ).
Ну а теперь рассмотрим основной момент — подключение Nema 17 к Arduino. Для выполнения схемы нам понадобятся такие аппаратные компоненты:
- плата расширения Arduino UNO,
- модуль мотора Нема 17,
- блок питания на 12 V,
- соединительные провода,
- USB-кабель для подключения к компьютеру.
Нам нужно протестировать работоспособность мотора. Зальем следующий скетч:
Если двигатель сильно вибрирует, советуем скачать и инсталлировать специализированную библиотеку – AcclStepper (она поможет решить вашу проблему). Не забываем сохранять распакованный архив с файлами в директорию libraries (непосредственно в среде IDE).
Меняем прошивку на такие программные коды:
Вот в принципе и все, что мы подготовили для вас на сегодня! До скорой встречи!
Шаговый мотор NEMA 17, серии 17HS4402 + драйвер A4988 + Arduino NANO.
Управление шаговым двигателем с помощью платы Arduino.
В данной статье мы продолжаем разбираться с темой шаговых двигателей. В прошлый раз мы подключили к плате Arduino NANO небольшой моторчик 28BYJ-48 (5V). Сегодня мы будем делать то же самое, но с другим мотором — NEMA 17, серии 17HS4402 и другим драйвером — A4988.
Шаговый мотор NEMA 17 — это биполярный двигатель с высоким крутящим моментом. Может поворачиваться на заданное число шагов. За один шаг совершает оборот на 1,8°, соответственно полный оборот на 360° осуществляет за 200 шагов.
Биполярный двигатель имеет две обмотки, по одной в каждой фазе, которая для изменения направления магнитного поля переполюсовывается драйвером. Соответственно, от мотора отходят четыре провода.
Такой мотор широко применяется в станках ЧПУ, 3D принтерах, сканерах и т. д.
Управляться он будет с помощью платы Arduino NANO.
Эта плата способна выдавать напряжение 5V, тогда как мотор работает от большего напряжения. Мы выбрали блок питания 12V. Так что нам понадобится дополнительный модуль — драйвер, способный управлять более высоким напряжением через маломощные импульсы Arduino. Для этого отлично подходит драйвер А4988.
Драйвер шагового двигателя А4988.
Плата создана на базе микросхемы A4988 компании Allegro — драйвера биполярного шагового двигателя. Особенностями A4988 являются регулируемый ток, защита от перегрузки и перегрева, драйвер также имеет пять вариантов микрошага (вплоть до 1/16-шага). Он работает от напряжения 8 — 35 В и может обеспечить ток до 1 А на фазу без радиатора и дополнительного охлаждения (дополнительное охлаждение необходимо при подаче тока в 2 A на каждую обмотку).
Модель: A4988;
напряжения питания: от 8 до 35 В;
возможность установки шага: от 1 до 1/16 от максимального шага;
напряжение логики: 3-5.5 В;
защита от перегрева;
максимальный ток на фазу: 1 А без радиатора, 2 А с радиатором;
расстояние между рядами ножек: 12 мм;
размер платы: 20 х 15 мм;
габариты драйвера: 20 х 15 х 10 мм;
габариты радиатора: 9 х 5 х 9 мм;
вес с радиатором: 3 г;
без радиатора: 2 г.
Для работы с драйвером необходимо питание логического уровня (3 — 5,5 В), подаваемое на выводы VDD и GND, а также питание двигателя (8 — 35 В) на выводы VMOT и GND. Плата очень уязвима для скачков напряжения, особенно если питающие провода длиннее нескольких сантиметров. Если эти скачки превысят максимально допустимое значение (35 В для A4988) ,то плата может сгореть. Одним из способов защиты платы от подобных скачков является установка большого (не меньше 47 мкФ) электролитического конденсатора между выводом питания (VMOT) и землёй близко к плате.
Соединение или разъединение шагового двигателя при включённом драйвере может привести к поломке двигателя!
Выбранный мотор совершает 200 шагов за полный оборот на 360°, что соответствует 1,8° на шаг. Микрошаговый драйвер, такой как A4988 позволяет увеличить разрешение за счёт возможности управления промежуточными шагами. Например, управление мотором в режиме четверти шага даст двигателю с величиной 200-шагов-за-оборот уже 800 микрошагов при использовании разных уровней тока.
Разрешение (размер шага) задаётся комбинациями переключателей на входах (MS1, MS2, и MS3).
MS1 | MS2 | MS3 | Разрешение микрошага |
Низкий | Низкий | Низкий | Полный шаг |
Высокий | Низкий | Низкий | 1/2 шага |
Низкий | Высокий | Низкий | 1/4 шага |
Высокий | Высокий | Низкий | 1/8 шага |
Высокий | Высокий | Высокий | 1/16 шага |
Каждый импульс на входе STEP соответствует одному микрошагу двигателя, направление вращения которого зависит от сигнала на выводе DIRECTION. Выводы STEP и DIRECTION не подтянуты к какому-либо конкретному внутреннему напряжению, поэтому их не стоит оставлять плавающими при создании приложений. Если вы просто хотите вращать двигатель в одном направлении, можно соединить DIR непосредственно с VCC или GND. Чип имеет три различных входа для управления состоянием питания: RESET, SLEEP и ENABLE. Вывод RESET плавает, если его не нужно использовать, то следует подключить его к соседнему контакту SLEEP на печатной плате, чтобы подать на него высокий уровень и включить плату.
Мы использовали вот такой блок питания (12V).
Для удобства подключения к плате Arduino UNO, мы использовали собственноручно сделанную деталь. Пластиковый корпус напечатан на 3D принтере, к нему приклеены контакты.
Также, использовали такой набор проводов, у части из них с одного конца контакт, с другого штырёк, у других контакты с обоих сторон.
Соединяем всё согласно схеме.
Потом открываем среду разработки программ для Arduino и пишем программу, вращающую мотор сначала в одну сторону на 360°, потом в другую.
/*Программа для вращения шагового мотора NEMA 17, серии 17HS4402 + драйвер A4988. Сначала мотор совершает полный оборот в одну сторону, потом в другую*/ /*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Step на драйвер. Каждый импульс от этого контакта — это перемещение мотора на один шаг*/ const int pinStep = 5; /*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Direction на драйвер. Наличие импульса — мотор вращается в одну сторону, отсутствие — в другую*/ //временная задержка между шагами мотора в мс //шагов на полный оборот /*Функция, в которой происходит инициализация всех переменных программы*/ /*Функция-цикл в которой задаётся поведение программы*/ for(int i = 0; i //устанавливаем направление вращения обратное for(int i = 0; i /*Программа для вращения шагового мотора NEMA 17, серии 17HS4402 + драйвер A4988. Программа приводит мотор в движение. //временная задержка между шагами мотора в мс /*Функция, в которой происходит инициализация всех переменных программы*/ /*Функция-цикл в которой задаётся поведение программы*/ Всё это мы рассматривали шаговый режим мотора, то есть 200 шагов за полный оборот. Но, как уже было описано, мотор может работать, в 1/2, 1/4, 1/8, 1/16 шаговых режимах, в зависимости от того, какая комбинация сигналов подаётся на контакты драйвера MS1, MS2, MS3. Код программы, которая демонстрирует все пять режимов работы мотора, вращая мотор в одну и другую сторону на 200 шагов в каждом из этих режимов.
|