Описание
A4988 — Это драйвер шагового двигателя, достаточно популярный из-за своей цены и функционала. Часто используется в 3D принтерах или других не больших домашних ЧПУ станках.
Характеристики A4988
- Напряжения питания: 8-35 В
- Режим микрошага: 1, 1/2, 1/4, 1/8, 1/16
- Напряжение логики: 3-5.5 В
- Максимальный ток на фазу: — 1 А без радиатора; — 2 А с радиатором
- Защита от перегрева и короткого замыкания
- Размер: 20 на 15 мм
Подключение A4988 к Arduino
- ENABLE – включение/выключение драйвера
- MS1, MS2, MS3 – контакты для установки деления шага
- RESET — cброс микросхемы
- STEP — Пин для сигналов от контроллера, один импульс один шаг
- DIR – Если подать на пин +3.3V-5V, то вращение происходит в одну сторону, если там будет 0, то в другую.
- VMOT – питание для двигателя (8 – 35 В)
- GND – Земля или минус
- 2B, 2A, 1A, 1B – для подключения обмоток двигателя
- VDD – питание микросхемы (3.5 –5В)
Подключение к плате RAMPS 1.4
Обратите внимание, на то, каким образом должен стоять драйвер, неправильное расположение может и скорее всего выведет ваш драйвер из строя. В остальном, подключение не должно вызвать у вас, какие-либо, сложности. Для деления шага на плате предусмотрены джамперы прямо под колодкой драйвера.
Настройка тока двигателя на A4988
На плате драйвера предусмотрен потенциометр для регулировки тока. Для настройки понадобиться мультиметр, для замера напряжения на потенциометре.
Формула Vref для A4988 изменяется от номинала токочувствительных резисторов (Обведены на фото выше). . Обычно подписаны R050 или R100.
Vref = Imax * 8 * (RS)
Imax — максимальный ток двигателя;
RS — сопротивление резистора. В моем случае RS = 0,100.
Для 17HS4401 Vref = 1,7 * 8 * 0,100 = 1,36 В.
Рабочий ток двигателя равен 70% от тока удержания. Умножим полученные значения чтобы двигатель не грелся при простое.
Для 17HS4401 Vref ист. = 1,36*0,7 = 0,952 В.
Подключаем драйвер к микроконтроллеру, включаем и меряем напряжение Vref на драйвере. Если оно не соответствует нужному нам номиналу, а оно скорее всего будет не будет соответствовать, крутим потенциометр в какую то сторону и смотрим что поменялось. Доводим до нужного нам значения и радуемся, ведь ток на драйвере теперь настроен!
Настройка микрошага A4988
Для настройки микрошага на данном модуле, нужно подать напряжение на определенные пины.
На плате Ramps 1.4 предусмотрены специальные джамперы, для переключения микрошага, находятся под колодкой самого драйвера, подписаны как M0, M1, M2 или MS0, MS1, MS2.
Примеры кода
Программа крутит вал сначала в одну сторону, затем в другую.
// пины для подключения контактов STEP, DIR
#define STEP_PIN 3
#define DIR_PIN 2
// задержка между шагами двигателя
#define DELAY_STEPS 10
// количество шагов на 1 оборот
#define STEP_ROUND 200
void setup() {
// режим для STEP и DIR как OUTPUT
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
// начальные значения
digitalWrite(STEP_PIN, 1);
digitalWrite(DIR_PIN, 0);
}
void loop() {
// Крутимся в одну сторону
digitalWrite(DIR_PIN, HIGH);
// 1 оборот
for(int i = 0; i < STEP_ROUND; i++) {
digitalWrite(STEP_PIN, HIGH);
delay(DELAY_STEPS);
digitalWrite(STEP_PIN, LOW);
delay(DELAY_STEPS);
}
// Затем меняем направление и крутимся в другую сторону
digitalWrite(DIR_PIN, LOW);
// сделать 1 оборот
for(int i = 0; i < STEP_ROUND; i++) {
digitalWrite(STEP_PIN, HIGH);
delay(DELAY_STEPS);
digitalWrite(STEP_PIN, LOW);
delay(DELAY_STEPS);
}
}
Давнешенько выискивал эту публикацию. Выискал на выше расположенном вебсайте. Благодарствую
Указанная выше публикация оказала на мою сущность мощное ощущеньице. Поделюсь обязательно с приятелями
Это сегодня самое лучшее, собственно что возможно было разыскать по вышеуказанной тематике. Молодцы
Безгранично полезная информация. К месту поразмыслить.
Для работы в режиме микрошага необходим слабый ток. На модуле A4988 поддерживает тока можно ограничить находящимся на плате потенциометром. Драйвер очень чувствителен к скачкам напряжения по питанию двигателя, поэтому производитель рекомендует устанавливать электролитический конденсатор большой емкости по питанию VMOT для сглаживания скачков. Внимание ! — Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя!!!
Кроме того, есть вариант использования микросхем L293D. Но A4988 считается более подходящим вариантом, так что на нем и остановились во избежание потенциальных проблем.
Используйте библиотеку AcclStepper вместо голого кода Arduino. Шаговый двигатель с использованием этой библиотеки будет работать без лишних вибраций.
Алексей спасибо за совет…
Перед подключением Nema 17, за плечами был определенный опыт работы с шаговиком yj48 ( даташит ). Управлялся он и с помощью Arduino, и с помощью Raspberry pi, проблем не возникало. Основная прелесть этого двигателя — цена (около 3 долларов в Китае). Причем, за эту сумму вы приобретаете двигатель с драйвером в комплекте. Согласитесь, такое можно даже и спалить, не особо сожалея о содеянном.
Второй код для Arduino для обеспечения плавного вращения двигателя. Используется библиотека AccelStepper library .
Для работы в режиме микрошага необходим слабый ток. На модуле A4988 поддерживает тока можно ограничить находящимся на плате потенциометром. Драйвер очень чувствителен к скачкам напряжения по питанию двигателя, поэтому производитель рекомендует устанавливать электролитический конденсатор большой емкости по питанию VMOT для сглаживания скачков. Внимание ! — Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя!!!
Елена спасибо за более подробный и полезный совет.
Если после загрузки скетча не происходит движения двигателя, проверьте правильность подключения обмоток к выводам драйвера A4988. К выводам 2B и 2A (1A и 1B) подключаются провода двигателя, которые «прозваниваются» тестером.
Полностью с Софьей согласен…