Андрей Смирнов
Время чтения: ~12 мин.
Просмотров: 58

Драйвер шагового двигателя A4988. Подключения к Arduino и пример использования

Содержание

</span>

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

Обзор драйвера A4988

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

  • Высокая точность позиционирования и повторяемости — качественные ШД имеют точность не хуже 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-Drajver-shagovogo-dvigatelya.jpg

Рисунок 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В)

driver-a4988-chema.png

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

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

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

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

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

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

Skhema-podklyucheniya-A4988-Arduino.jpg

Рисунок 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;ii++) {  pinMode(pins_steps[i], OUTPUT);  }  }    void loop() {  // получить режим микрошага  digitalWrite(DIR, 1);  int mode=map(analogRead(POT),0,1024,0,5);  // установить  for(int i=0;ii++) {  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. 
  2. Проверьте правильность подключения проводов двигателя к выводам A1,A2,B1,B2.
  3. Может быть недостаточной мощность блока питания двигателя.

Автор: · Опубликовано 11.04.2019 · Обновлено 26.09.2019

Сегодня расскажу о драйвере A4988, данный драйвер подойдет тем, кто планирует создать свой собственный 3D-принтер или станок ЧПУ с управлением шаговым двигателям.

Технические параметры

Общие сведения о драйвере A4988

Основная микросхема модуля это драйвер от Allegro — A4988, которая имеет небольшие размеры (всего 8 мм х 6 мм), хоть микросхема и маленькая, но она может работать с выходным напряжение до 35 В с током до 1 А на катушку без радиатора и до 2 А с радиатором (дополнительным охлаждением). Для управления шаговым двигателем, необходимо всего два управляющих контакта (по сравнению с L298N необходимо четыре), один используется для управления шагами, второй для управления вращения двигателем. Драйвер позволяет использовать пять вариантов шага, полный шаг, полшага, четверть шага, восьмой шаг и шестнадцатый шаг.

Распиновка драйвера A4988:На драйвере A4988 расположено 16 контактов, назначение каждого можно посмотреть ниже:

EN — включение и выключение модуля (0 — включен, 5 В — выключен).► MS1, MS2 и MS3  — выбор режима микро шаг (смотрите таблицу ниже).► RST — сброс драйвера. ► SLP — вывод включения спящего режима, если подтянуть его к низкому состоянию драйвер перейдет в спящий режим.► STEP — управляющий вывод, при каждом положительном импульсе, двигатель делает шаг (в зависимости от настройки микро шага), чем быстрее импульсы, тем быстрее вращаться двигатель. ► DIR — управляющий вывод, если подать +5 В двигатель будет вращается по часовой стрелке, а если подать 0 В против часовой стрелки. ► VMOT  &  GND  — питание шагового двигателя двигателя от 8 до 35 В (обязательное наличие конденсатора на 100 мкФ ). ► 2B, 2A, 1B, и 1A — подключение обмоток двигателя.► VDD  &  GND — питание внутренней логики от 3 В до 5,5 В.

Если не планируете использовать вывод RST необходимо подключить его к выводу SLP, чтобы подтянуть его к питанию, тем самым включить драйвер.

Настройка микрошагаДрайвер A4988 может работать микрошаговом режиме, то есть может подавать питание на катушки с промежуточным уровням. Например, если взять двигатель NEMA17 с шагом 1.8 или 200 оборотов, в режиме 1/4, двигатель будет выдавать 800 шагов за оборотДня настройки микрошагов, драйвер A4988 имеет три выхода, а именно MS1, MS2 и MS3. Установив соответствующие логические уровни для этих выводов, можно выбрать режим микрошага.

Вывода MS1, MS2 и MS3 в микросхеме A4988 подтянуты резистором к земле, поэтому, если не подключать их, двигатель будет работать в режиме полного шага.

Система охлаждения A4988При интенсивной работе микросхемы A4988 начинает сильно греется и если температура превысит придельные значение, может сгореть. По документации A4988 может работать с током до 2 А на катушку, но на практике микросхема не греется если ток не превышает 1 А на катушку. Поэтому если ток выше 1 А необходимо устанавливать радиатор охлаждения, который идет в комплекте.

Настройка тока A4988Перед использованием мотора нужно сделать небольшую настройку, необходимо ограничить максимальную величину тока, протекающего через катушки шагового двигателя и ограничить его превышение номинального тока двигателя, регулировка осуществляется с помощью небольшого потенциометра. Существует два способа настройки:1. Замерить ток, для этого возьмем амперметр и подключим его в разрыв любой из обмоток (двигатель должен работать в полношаговом режиме), так же, при настройки ток должен составлять 70% от номинального тока двигателя.2. Расчет значение напряжения Vref, согласно документации на A4988, есть формула I_TripMax = Vref / (8 × Rs), из которой мы можем получить формулу.

Vref = I_TripMax x 8 x Rs

В моем случаи на драйвере A4988 установлены резисторы Rs = 0,100 Ом (R100), а номинальный ток двигателя 17HS4401 равняется 1,7 А.

Vref = 1,7 х 8 х 0,100 = 1,36 В

Мы рассчитали максимальное значение для двигателя 17HS4401, но при таком напряжение двигатель будет греться в режиме ожидания, необходимо уменьшить это значение на 70%, то есть:

Vref х 0,7 = 0,952 В

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

Подключение драйвера шагового двигателя A4988 к Arduino UNO

Подключение:Теперь, можно приступить к сборке схемы. Первым делом, подключаем VDD и GND к 5 В и GND на Arduino. Контакты DIR и STEP подключим к цифровым контактам 2 и 3 на Arduino. Подключение шагового двигатель к контактам 2B, 2A, 1A и 1B.

Предупреждение: Подключение или отключение шагового двигателя при включенном приводе может привести к его повреждению.

Затем необходимо подключить контакт RST к соседнему контакту SLEEP, чтобы включить драйвер. Так-же контакты выбора микрошага необходимо оставить не подключенными, чтобы работал режим полный микрошаг. Теперь осталось подключить питание двигателя к контактам VMOT и GND, главное не забудьте подключить электролитический конденсатор на 100 мкФ, в противном случаи при скачке напряжение, модуль может выйти из строя.

Программа:Теперь можно приступки к программной части и начать управлять шаговым двигателем с помощью драйвера A4988, загружайте данный скетч в Arduino.

Скачать скетч

Описание скетча:Для работы данного скетча, не не требует никаких библиотек. Программа начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR. Так же указываем stepsPerRevolution количество шагов на оборот.В функции void setup() указываем управляющие контакты как выход.В основной функции void loop(), вращаем двигатель по часовой стрелке затем против с разной скоростью.

СсылкиСкачать документацию на A4988Габаритные размеры драйвера A4988

Купить на AliexpressКонтроллер Arduino UNO R3Провода DuPont, 2,54 мм, 20 смДрайвер шагового двигателя A4988Шаговый двигатель Nema 17

Купить в Самаре и области Контроллер Arduino UNO R3 Провода DuPont, 2,54 мм, 20 см Драйвер шагового двигателя A4988 Шаговый двигатель Nema 17

Содержание

Описание

A4988 — Это драйвер шагового двигателя, достаточно популярный из-за своей цены и функционала. Часто используется в 3D принтерах или других не больших домашних ЧПУ станках.

A4988.jpg

Характеристики A4988

  • Напряжения питания: 8-35 В
  • Режим микрошага: 1, 1/2, 1/4, 1/8, 1/16
  • Напряжение логики: 3-5.5 В
  • Максимальный ток на фазу: — 1 А без радиатора; — 2 А с радиатором
  • Защита от перегрева и короткого замыкания
  • Размер: 20 на 15 мм

Подключение A4988 к Arduino

a4988-подключение.jpg
Подключение 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

737px-Stepper_drivers_mixed_a4988_drv8825_RAMPS_1a1.jpg
Правильное расположение драйверов DRV8825 и A4988 на плате Ramps

Обратите внимание, на то, каким образом должен стоять драйвер, неправильное расположение может и скорее всего выведет ваш драйвер из строя. В остальном, подключение не должно вызвать у вас, какие-либо, сложности. Для деления шага на плате предусмотрены джамперы прямо под колодкой драйвера.

Настройка тока двигателя на A4988

На плате драйвера предусмотрен потенциометр для регулировки тока. Для настройки понадобиться мультиметр, для замера напряжения на потенциометре.

a4988-ток-1.jpg
Расположение токоограничительных резисторов и потенциометра Vref

Формула 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

Для настройки микрошага на данном модуле, нужно подать напряжение на определенные пины.

RKP-GY-4988-A4988_21.jpg
Таблица делителя шага 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); } }

Так же вы можете прочитать про подключение и настройку драйвера DRV8825, который является приемником этого драйвера на странице «Как подключить DRV8825 к Arduino».

Или приобрести товар на Aliexpress по самой выгодной цене, ссылка.

Используемые источники:

  • https://3d-diy.ru/wiki/arduino-moduli/drajver-shagovogo-dvigatelya-a4988/
  • https://robotchip.ru/obzor-drayvera-shagovogo-dvigatelya-a4988/
  • https://you-hands.ru/2019/03/31/kak-podklyuchit-a4988-k-arduino/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации