Просмотров: 65371

Драйвер шагового двигателя а4988

Закрыть ... [X]

Содержание:

  • Обзор
  • Технические характеристики модуля
  • Назначение контактов драйвера
  • Подключение драйвера к Arduino
  • Пример использования
  • Часто задаваемые вопросы FAQ

Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол.
Достоинствами шаговых двигателей по сравнению с простыми являются:

  • Высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 2,5 % от величины шага, при этом данная ошибка не накапливается при последующих шагах;
  • Шаговый двигатель может быстро стартовать, останавливаться и выполнять реверс;
  • Четкая взаимосвязь угла поворота ротора от количества входных импульсов (в штатных режимах работы) позволяет выполнять позиционирование без применения обратной связи;
  • Шаговые двигатели обеспечивают получение сверхнизких скоростей вращения вала без использования редуктора;
  • Шаговые двигатели работают в широком диапазоне скоростей, поскольку. скорость напрямую зависит от количества входных импульсов.

Шаговые двигатели применяются там, где требуется высокая точность перемещений. Примеры использования – принтеры, факсы и копировальные машины, станки с ЧПУ, 3D-принтеры.
Для управления шаговыми двигателями используют специальные устройства – драйверы шаговых двигателей.
Популярный драйвер шагового двигателя А4988 (рис. 1) работает от напряжения 8 — 35 В и может обеспечить ток до 1 А на фазу без радиатора (и до 2 A с радиатором). Модуль A4988 имеет защиту от перегрузки и перегрева. Одним из параметров шаговых двигателей является количество шагов на один оборот 360°. Например, для шаговых двигателей Nema17 это 200 шагов на оборот, т.е 1 шаг равен 1.8°. Драйвер A4988 позволяет увеличить это значение за счёт возможности управления промежуточными шагами и имеет пять режимов микрошага (1(полный), 1/2, 1/4, 1/8 и 1/16).

Драйвер A4988

Рисунок 1. Драйвер биполярных двигателей A4988

Технические характеристики A4988

  • напряжения питания: 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В);
Выводы драйвера A4988

Рисунок 2. Выводы драйвера A4988

Значение микрошага устанавливается комбинацией сигналов на входах MS1, MS2, и MS3. Есть пять вариантов дробления шага (см. с таблицу 1).

MS1 MS1 MS1 Дробление шага 0 0 0 1 1 0 0 1/2 0 1 0 1/4 1 1 0 1/8 1 1 1 1/16

Таблица 1. Комбинация значений для выбора микрошага

Для работы в режиме микрошага необходим слабый ток. На модуле A4988 поддерживает тока можно ограничить находящимся на плате потенциометром. Драйвер очень чувствителен к скачкам напряжения по питанию двигателя, поэтому производитель рекомендует устанавливать электролитический конденсатор большой емкости по питанию VMOT для сглаживания скачков.
Внимание ! — Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя!!!

Подключение драйвера к Arduino

Схема подключения A4988 к плате Arduino

Рисунок 3. Схема подключения A4988 к плате Arduino

Схема подключения драйвера A4988 для управления биполярным шаговым двигателем показана на рисунке 3. Вывод RESET подключен к выводу SLEEP, чтобы на нем был высокий уровень HIGH.

Загрузим на плату Arduino скетч из листинга 1, который управляет движением биполярного шагового двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.
Листинг 1

// пины для подключения контактов STEP, DIR #define PIN_STEP 3 #define 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) подключаются провода двигателя, которые «прозваниваются» тестером.

Пример использования

В качестве примера использования рассмотрим управление дроблением шага и направлением вращения шагового двигателя с платы Arduino. Нам потребуются следующие компоненты:

  • Плата Arduino Uno -1;
  • Драйвер A4988 — 1;
  • Шаговый двигатель NEMA17 — 1;
  • Потенциометр 10 кОм — 1;
  • Кнопка — 1;
  • Переключатель 2-х позиционный — 1;
  • Резистор 10 кОм – 3;
  • Провода MF — 20
  • Соединение деталей по схеме соединений на рис. 4.
Схема подключения для управления скоростью и направлением движения

Рисунок 4. Схема подключения для управления скоростью и направлением движения

Приступим к написанию скетча. Нажатие на кнопку включает/выключает двигатель, подавая сигнал LOW/HIGH на вход ENABLE драйвера A4988. С помощью переключателя выбираем направление вращения двигателя (сигнал с переключателя подается напрямую на вход DIR драйвера A4988). C помощью потенциометра мы выбираем один из режимов микрошага. Содержимое скетча представлено в листинге 2.
двигателя с постоянной скоростью на один оборот в одну сторону, затем в другую, и далее в цикле.
Листинг 2

// пины для подключения контактов STEP, DIR const int STEP 3 int DIR 2 // для регулировки скорости - пин потенциометра #define POT A0 // для кнопки #define BUTTON 9 // для включения/выключения #define EN 8 // количество шагов на 1 оборот #define ROUND 200 // скорость двигателя #define SPEED 10 // массив пинов для MS1,MS2,MS3 int pins_steps[]={7,6,5}; int steps[5][3]={ {0,0,0}, // 1 {1,0,0}, // 1/2 {0,1,0}, // 1/4 {1,1,0}, // 1/8 {1,1,1} // 1/16 }; // для кнопки int prevB=0; int tekB=0; boolean movement=false; void setup() { // режим для выводов STEP и DIR как pinModeSTEP, OUTPUT); pinMode(DIR, OUTPUT); // начальные значения digitalWrite(STEP, 1); digitalWrite(DIR, 0); // режим для enable pinMode(EN, OUTPUT); // не разрешать digitalWrite(EN, 1); // для MS1,MS2,MS3 for(int i=0;i<3;i++) { pinMode(pins_steps[i], OUTPUT); } } void loop() { // получить режим микрошага digitalWrite(DIR, 1); int mode=map(analogRead(POT),0,1024,0,5); // установить for(int i=0;i<3;i++) { digitalWrite(pins_steps[i], steps[mode][i]); } // сделать 1 оборот if(movement==true) { digitalWrite(STEP, 1); delay(SPEED); digitalWrite(STEP, 0); delay(SPEED); } // проверка нажатия кнопки tekB = debounce(prevB, BUTTON); if (prevB == 0 && tekB == 1) { movement=!movement; digitalWrite(EN,!movement); } prevB = tekB; } // проверка на дребезг int debounce(int prev,int pin) { int tek = digitalRead(pin); if (prev != tek) { delay(5); tek = digitalRead(pin); return tek; } }

Часто задаваемые вопросы FAQ

  1. Шаговый двигатель на движется
    — Проверьте правильность подключения драйвера к плате Arduino.
    — Проверьте правильность подключения проводов двигателя к выводам A1,A2,B1,B2.
    — Недостаточная мощность блока питания двигателя.

Источник: http://makerplus.ru/wiki/drajver-shagovogo-dvigatelya-a4988


Поделись с друзьями



Рекомендуем посмотреть ещё:



РОБОТОТЕХНИКА - Драйвер шагового мотора Pololu на A4988 1А Как сделать запеканку без яйца

Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988 Драйвер шагового двигателя а4988

ШОКИРУЮЩИЕ НОВОСТИ