link0 link1 link2 link3 link4 link5 link6 link7 link8 link9 link10 link11 link12 link13 link14 link15 link16 link17 link18 link19 link20 link21 link22 link23 link24 link25 link26 link27 link28 link29 link30 link31 link32 link33 link34 link35 link36 link37 link38 link39 link40 link41 link42 link43 link44 link45 link46 link47 link48 link49 link50 link51 link52 link53 link54 link55 link56 link57 link58 link59 link60 link61 link62 link63 link64 link65 link66 link67 link68 link69 link70 link71 link72 link73 link74 link75 link76 link77 link78 link79 link80 link81 link82 link83 link84 link85 link86 link87 link88 link89 link90 link91 link92 link93 link94 link95 link96 link97 link98 link99 link100 link101 link102 link103 link104 link105 link106 link107 link108 link109 link110 link111 link112 link113 link114 link115 link116 link117
Категория: Arduino - проекты

Управление шаговым биполярным двигателем 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–. Политика конфиденциальности
Автоматизация и проектирование — 1injener.ru