Все для Arduino в одном месте
Адрес: Павлодар
Телефон: +7 705 336-36-03

whatsapp +7 705 336-36-03

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

Обзор драйвера 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

  • напряжения питания: 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

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

Комбинация значений для выбора микрошага
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

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

Внимание ! - Подключение или отключение шагового двигателя при включённом драйвере может привести выходу двигателя из строя!!!

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

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

Схема подключения драйвера A4988 для управления биполярным шаговым двигателем показана на рисунке выше. Вывод 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

Соединение деталей по схеме  на рисунке ниже

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

 

Приступим к написанию скетча. Нажатие на кнопку включает/выключает двигатель, подавая сигнал 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;
}
}

 

 

 

 

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

Рекомендуемые товары

StepStick A4988 драйвер шагового двигателя с радиатором ( Красный)

StepStick A4988 драйвер шагового двигателя с радиатором ( Красный)

StepStick драйвер шаговых двигателей, построенный на чипе Allegro’s A4988 DMOS.Используется со..

900 ₸

Uno SMD с кабелем (Аналог Arduino)

Uno SMD с кабелем (Аналог Arduino)

Uno SMD использует ATmega328 микроконтроллер и имеет 14 цифровых входов/выходов (6 может использоват..

3 000 ₸

Плата расширения для драйвера A4988/DRV8825

Плата расширения для драйвера A4988/DRV8825

Характеристики Для драйверы ШД: A4988, DRV8825 и TMC 2100;Подключение к источнику питания: 5В и 12В..

1 200 ₸

Тактовая кнопка B3F 12X12X7-5

Тактовая кнопка B3F 12X12X7-5

Кнопка B3F без фиксации с шляпкой./p>..

72 ₸

Шаговый двигатель Nema 17

Шаговый двигатель Nema 17

Модель: 42BYGH40-1700AУгол шага : 1.8Размеры: 42мм * 42мм * 34ммРабочее напряжение DC(V): 12-24 ..

6 000 ₸