Подключение Nema 17 к Arduino
Данный прибор (особенно китайское его исполнение) бюджетен по цене, продается как онлайн, так и офлайн на многих торговых площадках, легок в управлении и сборке.
Напомним нашим читателям о терминологии и особенностях шаговых моторов. Речь идет об электромеханических устройствах, которые преобразуют электрические импульсы в дискретные механические перемещения. Они характеризуется неплохой точностью позиционирования, хорошим диапазоном скоростей и быстрым запуском ∕ остановкой.
К техническим параметрам модуля относятся:
- напряжение: 5 – 24V;
- угол поворота: 1.8 º (за шаг);
- длина ∕ диаметр вала: 24 ∕ 5 мм;
- ток на обмотку: 1.7 А;
- индуктивность: 3.2 мГн;
- сопротивление: 1.65 Ом;
- масса: около 280 г.
Ну а теперь рассмотрим основной момент - подключение Nema 17 к Arduino. Для выполнения схемы нам понадобятся такие аппаратные компоненты:
- плата расширения Arduino UNO,
- модуль мотора Нема 17,
- блок питания на 12 V,
- соединительные провода,
- USB-кабель для подключения к компьютеру.
/*Программа для вращения шагового мотора NEMA 17, серии 17HS4402 + драйвер A4988. Сначала мотор совершает полный оборот в одну сторону, потом в другую*/
/*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Step на драйвер. Каждый импульс от этого контакта — это перемещение мотора на один шаг*/
const int pinStep = 5;
/*целочисленная константа, хранящая номер цифрового контакта Arduino, который подаёт сигнал Direction на драйвер. Наличие импульса - мотор вращается в одну сторону, отсутствие - в другую*/
const int pinDir = 4;
//временная задержка между шагами мотора в мс
const int move_delay = 3;
//шагов на полный оборот
const int steps_rotate_360 = 200;
/*Функция, в которой происходит инициализация всех переменных программы*/
void setup()
{
/*задаём контактам Step и Direction режим вывода, то есть они выдают напряжение*/
pinMode(pinStep, OUTPUT);
pinMode(pinDir, OUTPUT);
//устанавливаем начальный режим
digitalWrite(pinStep, HIGH);
digitalWrite(pinDir, LOW);
}
/*Функция-цикл в которой задаётся поведение программы*/
void loop()
{
//устанавливаем направление вращения
digitalWrite(pinDir, HIGH);
for(int i = 0; i < steps_rotate_360; i++)
{
digitalWrite(pinStep, HIGH);
delay(move_delay);
digitalWrite(pinStep, LOW);
delay(move_delay);
}
delay(move_delay*10);
//устанавливаем направление вращения обратное
digitalWrite(pinDir, LOW);
for(int i = 0; i < steps_rotate_360; i++)
{
digitalWrite(pinStep, HIGH);
delay(move_delay);
digitalWrite(pinStep, LOW);
delay(move_delay);
}
delay(move_delay*10);
}
Если двигатель сильно вибрирует, советуем скачать и инсталлировать специализированную библиотеку – AcclStepper (она поможет решить вашу проблему). Не забываем сохранять распакованный архив с файлами в директорию libraries (непосредственно в среде IDE).Меняем прошивку на такие программные коды:
#include <AccelStepper.h>
AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 - режим "external driver" (A4988)
int dir = 1; //используется для смены направления
void setup() {
Stepper1.setMaxSpeed(3000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)
Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)
}
void loop() {
if(Stepper1.distanceToGo()==0){ //проверка, отработал ли двигатель предыдущее движение
Stepper1.move(1600*dir); //устанавливает следующее перемещение на 1600 шагов (если dir равен -1 будет перемещаться -1600 -> противоположное направление)
dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении
delay(1000); //задержка на 1 секунду
}
Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя
}
Вот в принципе и все, что мы подготовили для вас на сегодня! До скорой встречи!
Подключение A4988 к Ардуино понадобится во многих проектах, которые «гуляют» по Интернету. Данный драйвер активно используется при создании своими руками...
Тема нашей сегодняшней статьи - драйвер для шаговых двигателей TB6560 и его подключение к Ардуино. Мы уже говорили с вами о практичности и основных...
Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...
В данном обзоре речь пойдет о подключении L9110S к Arduino и основных параметрах этого двухканального драйвера. Напомним, подобные модули отлично вписываются...
Сегодня мы хотим рассказать вам о том, как подключить драйвер L298N к Arduino и для чего он в целом может понадобиться. Речь пойдет о цифровом двухканальном...