Обзор драйвера A4988
Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. Достоинствами шаговых двигателей по сравнению с простыми являются:
- Высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;
- Шаговый двигатель может быстро стартовать, останавливаться и выполнять реверс;
- Четкая взаимосвязь угла поворота ротора от количества входных импульсов (в штатных режимах работы) позволяет выполнять позиционирование без применения обратной связи;
- Шаговые двигатели обеспечивают получение сверхнизких скоростей вращения вала без использования редуктора;
- Шаговые двигатели работают в широком диапазоне скоростей, поскольку. скорость напрямую зависит от количества входных импульсов.
Шаговые двигатели применяются там, где требуется высокая точность перемещений. Примеры использования – принтеры, факсы и копировальные машины, станки с ЧПУ, 3D-принтеры. Для управления шаговыми двигателями используют специальные устройства – драйверы шаговых двигателей. Популярный драйвер шагового двигателя А4988 (фото ниже) работает от напряжения 8 - 35 В и может обеспечить ток до 1 А на фазу без радиатора (и до 2 A с радиатором). Модуль A4988 имеет защиту от перегрузки и перегрева. А купить в Казахстане можно на нашем сайте. Одним из параметров шаговых двигателей является количество шагов на один оборот 360°. Например, для шаговых двигателей Nema17 это 200 шагов на оборот, т.е 1 шаг равен 1.8°. Драйвер A4988 позволяет увеличить это значение за счёт возможности управления промежуточными шагами и имеет пять режимов микрошага (1(полный), 1/2, 1/4, 1/8 и 1/16).
- напряжения питания: 8-35 В
- режим микрошага: 1, 1/2, 1/4, 1/8, 1/16
- напряжение логики: 3-5.5 В
- защита от перегрева
- максимальный ток на фазу: - 1 А без радиатора; - 2 А с радиатором
- размер: 20 х 15 мм
- без радиатора: 2 г
Назначение контактов драйвера A4988
- ENABLE – включение/выключение драйвера
- MS1, MS2, MS3 – контакты для установки микрошага
- RESET - cброс микросхемы
- STEP - генерация импульсов для движения двигателей (каждый импульс – шаг), можно регулировать скорость двигателя
- DIR – установка направление вращения
- VMOT – питание для двигателя (8 – 35 В)
- GND – общий
- 2B, 2A, 1A, 1B – для подключения обмоток двигателя
- VDD – питание микросхемы (3.5 –5В)
Значение микрошага устанавливается комбинацией сигналов на входах MS1, MS2, и MS3. Есть пять вариантов дробления шага
Комбинация значений для выбора микрошага
Для работы в режиме микрошага необходим слабый ток. На модуле A4988 поддерживает тока можно ограничить находящимся на плате потенциометром. Драйвер очень чувствителен к скачкам напряжения по питанию двигателя, поэтому производитель рекомендует устанавливать электролитический конденсатор большой емкости по питанию VMOT для сглаживания скачков.
Внимание ! - Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя!!!
Подключение драйвера к Arduino
Схема подключения драйвера A4988 для управления биполярным шаговым двигателем показана на рисунке выше. Вывод RESET подключен к выводу SLEEP, чтобы на нем был высокий уровень HIGH. Загрузим на плату Arduino скетч из примера №1, который управляет движением биполярного шагового двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.
// пины для подключения контактов STEP, DIR
##define PIN_STEP 3
##define3 PIN_DIR 2
// количество шагов на 1 оборот
##define STEP_ROUND 200
// скорость двигателя
##define SPEED 10
void setup() {
// режим для STEP и DIR как OUTPUT
pinMode(PIN_STEP, OUTPUT);
pinMode(PIN_DIR, OUTPUT);
// начальные значения
digitalWrite(PIN_STEP, 1);
digitalWrite(PIN_DIR, 0);
}
void loop() {
// направление вращения
digitalWrite(PIN_DIR, HIGH);
// сделать 1 оборот
for(int j = 0; j < STEP_ROUND; j++) {
digitalWrite(PIN_STEP, HIGH);
delay(SPEED);
digitalWrite(PIN_STEP, LOW);
delay(SPEED);
}
// изменить направление вращения
digitalWrite(PIN_DIR, HIGH);
// сделать 1 оборот
for(int j = 0; j < STEP_ROUND; j++) {
digitalWrite(PIN_STEP, HIGH);
delay(SPEED);
digitalWrite(PIN_STEP, LOW);
delay(SPEED);
}
}
Если после загрузки скетча не происходит движения двигателя, проверьте правильность подключения обмоток к выводам драйвера A4988. К выводам 2B и 2A (1A и 1B) подключаются провода двигателя, которые "прозваниваются" тестером.