Главная » Ардуино » Драйвер шагового двигателя A4988. Распиновка, подключение к Ардуино

Драйвер шагового двигателя A4988. Распиновка, подключение к Ардуино

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

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

В этом модуле используется отдельный источник питания для логической части и отдельный источник питания для самого шагового двигателя, поскольку для двигателей, как правило, требуется напряжение более 5 вольт, по сравнению с  логической частью модуля. Модуль A4988 имеет защиту от перегрузки по току, что обеспечивает  безопасную работу устройства.

Характеристики модуля A4988

• Напряжение логической части: 3,3 В или 5 В
• Напряжение двигателя: 8-35 В
• Максимальный ток двигателя: 2 А

Распиновка модуля A4988

Как работает драйвер шагового двигателя A4988

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

С помощью транслятора и логического контроллера, и в зависимости от количества поступающих импульсов, двигатель совершает одинаковое количество шагов.

Поскольку драйвер определяет все, то нам только необходимо на вывод STEP отправить необходимое количество импульсов соответствующее количеству шагов. Вывод модуля DIR используется для определения направления вращения двигателя и может быть установлен как «1» или «0», в зависимости от желаемого направления.

Внутри драйвера находятся MOSFET-транзисторы, которые позволяют драйверу подавать на катушку ток до 2 А.

Этот драйвер также имеет функцию микро-шага, которая позволяет разделить количество шагов на более мелкие части. То есть, если у нас есть шаговый двигатель, который совершает 200 шагов за один оборот, то с помощью этой функции мы можем достичь большего количества шагов, то есть достичь более высокого разрешения двигателя.

Таким образом, у нас есть полный шаг, 1/2, 1/4, 1/8, 1/16 шага. При использовании этой функции мы должны иметь в виду, что в этом случае двигатель будет выполнять больше шагов за один оборот, и это также займет больше времени.

Для выбора функции микро-шага на выводы MS1, MS2, MS3 необходимо подать сигнал в соответствии с желаемым микро-шагом согласно следующей таблице:

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

Как подключить модуль A4988 к Arduino

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

Мы подключаем шаговый двигатель к выходам драйвера, а к контактам STEP и DIR подключаем цифровые контакты Arduino, с помощью которых мы хотим управлять двигателем. Схема подключения показана ниже, где Arduino используется для логического питания, а адаптер 12 В — для питания двигателя.

Скетч

Этот драйвер легко программировать. Нам не нужна библиотека для его использования, у нас просто есть контакты DIR и STEP для управления двигателем. Мы устанавливаем вывод DIR в положение «1» или «0» в зависимости от направления вращения двигателя, а на выводе STEP мы подаем импульсы в зависимости от количества шагов двигателя.

Ниже приведен код, который вращает ротор двигателя на 200 шагов в одну сторону и после одной секунды паузы в другую.

const int stepPin = 6; // установка step на цифровой вывод 6
const int dirPin = 5; // установка dir на цифровой вывод 5
void setup() {
// установка выводов dir и step как выход
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
void loop() {
digitalWrite(dirPin,HIGH); // установка штифта dir в положение HIGH, чтобы двигатель вращался в одном направлении
// Отправка 200 импульсов на вывод step, чтобы сделать 200 шагов
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH); // установка step в «1» 
delayMicroseconds(5000); // установка ширины импульса «1» на 5 мс (минимальное значение для драйвера составляет 1 мкс) 
digitalWrite(stepPin,LOW); // установка step в «0»
delayMicroseconds(5000); // установка ширины импульса «0» на 5 мс (минимальное значение для драйвера составляет 1 мкс) 
}
delay(1000); // пауза 1 сек
digitalWrite(dirPin,LOW); //меняем направление вращения
// Отправка 200 импульсов на вывод step, чтобы сделать 200 шагов
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH); // установка step в «1»
delayMicroseconds(5000); // установка ширины импульса «1» на 5 мс (минимальное значение для драйвера составляет 1 мкс) 
digitalWrite(stepPin,LOW); // установка step в «0»
delayMicroseconds(5000); // установка ширины импульса «0» на 5 мс (минимальное значение для драйвера составляет 1 мкс)
}
delay(1000); // пауза 1 сек
}

 

 

Оставить комментарий

Ваш email нигде не будет показан. Обязательные для заполнения поля помечены *

*