Категория: Arduino - проекты | Комментарии: 0
8 февраля 2016

Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]

Управление шаговым биполярным двигателем A88ET



Многие схемотехники начинают городить большие платы с кучей транзисторов и интегральных схем для управления шаговыми биполярными (4 провода) двигателями. Очень часто это сложно, долго, громоздко, проблематично, дорого. Для решения данных проблемы существует плата драйвера биполярных двигателей основанная на микросхеме A4988ET. В оригинале эта плата предназначена для 3D принтеров. Далее о самой плате, распиновка и проверенный код для Arduino.
Сразу заглянем внутрь самой микросхемы A4988ET, что бы понять в чем её преимущество. На рисунке ниже.

Управление шаговым биполярным двигателем A88ET



Биполярный двигатель имеет 4 провода
В отличии от драйвера шагового биполярного двигателя на ULN2803APG данная схема имеет ряд преимуществ.
Самое главное это то что развязка организованна на Mosfet транзисторах с затвором, с обратной защитой. Остальные преимущества узнаем после разбора просмотра распиновки платы A4988ET и характеристик.

Я долго мучался когда "городил" драйвер на микросхеме ULN2803 с резисторами (для создания разно полярного напряжения на обмотках, по ссылке выше). Резисторы часто перегревались, а парочка и вовсе взорвалась.

Поэтому данная микросхема - счастье и находка. В оригинале плата A4988ET предназначена для управления двигателями от 3D принтера и прекрасно сочетается с платой RAMPS.

RAMPS


Как видно на рисунке на плате A4988ET находятся радиаторы. При условии что рабочая температура всего лишь 60 градусов, основная микросхема имеет защиту от перегрева.

О характеристиках:
Напряжения питания для двигателей: от 8 до 35 В
Возможно установить шаг двигателя: от 1 до 1/16 от целого шага (микрошаги)
Сама микросхема имеет питание: 3-5.5В
Максимальный ток: 1А без радиатора, 2А с радиатором
Размер платы: 20 х 15 мм - как копейка

Ниже на рисунке изображена схема подключения платы.

A88ET



ENABLE - Включение или выключение микросхемы
RESET - Сброс работы логики
STEP - Генерация ШИМ - скорости биполярного двигателя. Каждый импульс это шаг
DIR - Установка высокого или низкого уровня на входе регулирует направление вращения.
VMOT -Питание для двигателя от 8 до 35 вольт
GND - Минус питания для двигателя
2B, 2A, 1A, 1B - Обмотки двигателя. Для определения обмоток двигателя замерьте сопротивление. Между разными обмотками бесконечное сопротивление, иначе вы увидите сопротивление 4-8 Ом значит что вы определили или 1ю или 2ю обмотку двигателя.
VDD - Питание 5В для микросхемы
GNG - Минус питания для микросхемы
MS1, MS2, MS3 - Устанавливая на данных входах уровни 000, 100, 010, 110, 111 достигается режим полношагового, половинного шага, четверти шага, одна восьмая шага, и даже 1\16 от целого шага.
Таким образом плата имеет широкие возможности.

A88ET



Так выглядят на скорую руку подпаянные провода. Так же важно установить поддерживающий конденсатор в 1000 мкф (не 100, а 1000мкф 16Вольт !)

Основными моментами является:
Не дай вам Боже случайно выдернуть подключенный двигатель от микросхемы при поданном питании - сгорит. В мануале к микросхеме написано что есть защита от кз. Но защиты от резкой смены нагрузки нет.

Код программы ниже опробован на Arduino Mega с довольно большим биполярным двигателем.

  1. /*
  2. * 1injener.ru
  3. * Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]
  4. *
  5. */
  6. int dirPin = 2; //Название переменной указывает DIR
  7. int stepperPin = 3; //STERR Pin
  8. void setup() {
  9. pinMode(dirPin, OUTPUT);
  10. digitalWrite(4,LOW); // Установка высокого уровня на Enable
  11. pinMode(stepperPin, OUTPUT);
  12. }
  13. //Функция ШАГ. Принимает направление движения и количество шагов.
  14. void step(boolean dir,int steps){
  15. digitalWrite(dirPin,dir);
  16. delay(50);
  17. for(int i=0;i<steps;i++){
  18. digitalWrite(stepperPin, HIGH);
  19. delayMicroseconds(800);
  20. digitalWrite(stepperPin, LOW);
  21. delayMicroseconds(800);
  22. }
  23. }
  24. void loop(){
  25. step(true,1000); //Движемся в одну сторону 1000 шагов
  26. delay(3000);
  27. step(false,3000); //Движемся в обратную сторону 3000 шагов
  28. delay(3000); //Пауза
  29. }
  30. //http://www.geeetech.com/wiki/index.php/A4988_Stepper_Motor_Driver_Carrier_Board

Скачать скетч для Arduino: 1injener_ok_A4988.ino
Официальные документы на A4988: Скачать a4988.pdf

Всё просто!
Другие статьи по разделу:

anchore ЖКИ дисплей WH0802 подключение к Ардуино [Много проводов]


anchore Управление шаговым биполярным двигателем A4988ET [Рабочий код ino]




Новые изобретения инженеров и техников, дизайнеров и обычных людей, все то что может изменить наш мир к лучшему. Новая техника и оружие, спасателей и спецназа. Гаджеты и девайсы, устройства для отдыха и работы. Советы для экономии семейного состояния. Все гениальные изобретения в простом формате! Ведь "Все - Просто!"
Copyright © 2013–2017
Автоматизация и проектирование - 1injener.ru