Драйвер шагового двигателя A4988
- Информация о материале
- Обновлено: 30.03.2023, 16:12
- Опубликовано: 07.03.2023, 13:24
- Автор: DeniS
Применение драйвера для шагового двигателя A4988 - управление шаговым двигателем
Драйвер 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 х 10 мм;
- габариты радиатора: 9 х 5 х 9 мм;
- вес с радиатором: 3 г;
- вес без радиатора: 2 г
A4988 Datasheet DMOS Microstepping Driver with Translator And Overcurrent Protection >>>
Назначение контактов драйвера A4988.
ENABLE – включение/выключение драйвера
MS1, MS2, MS3 – контакты для установки микрошага
RESET - сброс микросхемы
STEP - генерация импульсов для движения двигателей (каждый импульс – шаг), можно регулировать скорость двигателя
DIR – установка направления вращения
VMOT – питание для двигателя (8 – 35 В)
GND – общий
2B, 2A, 1A, 1B – контакты для подключения обмоток двигателя
VDD – напряжение питания микросхемы (3.5 –5В)
Микрошаг драйвера A4988
Драйвер A4988 допускает использование режима микрошага. Это достигается за счет подачи питания на катушки с промежуточными уровнями тока.
Для управления шаговым двигателем NEMA 17 с шагом 1,8 градуса (200 шагов на оборот) в режиме 1/4 шага, двигатель будет выдавать 800 микрошагов на оборот.
MS1 | MS2 | MS3 | Микрошаг |
0 | 0 | 0 | Полный шаг |
1 | 0 | 0 | 1/2 шага |
0 | 1 | 0 | 1/4 шага |
1 | 1 | 0 | 1/8 шага |
1 | 1 | 1 | 1/16 шага |
По умолчанию эти три контакта подтянуты к земле внутренним резистором. Если оставить эти выводы не подключенными, то двигатель будет работать в режиме полного шага.
Управление драйвером A4988
Драйвер A4988 имеет два управляющих вывода, а именно: STEP и DIR.
STEP — управляет микрошагом мотора. Каждый высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.
DIR — управляет направлением вращения двигателя. Если на него подать высокий уровень, то двигатель будет вращаться по часовой стрелке, а если низкий — против часовой стрелки.
Чтобы двигатель вращался только в одном направлении, можно соединить вывод DIR непосредственно с VCC или GND соответственно.
Выводы STEP и DIR не подтянуты внутренними резисторами, поэтому вы не должны оставлять их не подключенными.
Питание драйвера A4988
A4988 имеет три различных вывода для управления состоянием питания, а именно. EN, RST и SLP
EN — вывод включения (0) / выключения (1) драйвера A4988. По умолчанию на этом выводе установлен низкий уровень, поэтому драйвер всегда включен.
SLP — подача на данный вывод сигнала низкого уровня переводит драйвер в спящий режим, сводя к минимуму потребление энергии. Можно использовать для экономии энергии.
RST — при подаче сигнала низкого уровня все входные данные STEP игнорируются, до тех пор, пока не будет установлен высокий уровень. Низкий уровень также сбрасывает драйвер, устанавливая внутренний транслятор в предопределенное состояние Home. Исходное состояние — это в основном начальное положение, с которого запускается двигатель, и оно различается в зависимости от разрешения микрошага.
Подключение шагового двигателя к драйверу A4988.
Выходные контакты: 1B, 1A, 2A и 2B.
К этим выводам можно подключить любой биполярный шаговый двигатель с напряжением питания от 8 до 35 В.
Каждый выходной контакт модуля может обеспечить ток до 2 А. Однако величина тока, подаваемого на двигатель, зависит от источника питания системы, системы охлаждения и настройки ограничения тока.
Этот драйвер имеет на плате керамические конденсаторы с низким ESR , что делает его уязвимым для скачков напряжения. В некоторых случаях эти выбросы могут превышать 35 В (максимальное номинальное напряжение A4988), и это может потенциально необратимо повредить плату и даже двигатель.
Один из способов защитить драйвер от таких скачков — подключить электролитический конденсатор емкостью 100 мкФ (или как минимум 47 мкФ) к контактам источника питания двигателя.
Ограничение тока драйвера A4988.
Перед использованием драйвера нужно ограничить максимальный ток, протекающий через катушки шагового двигателя, и предотвратить превышение номинального тока двигателя.
На драйвере A4988 есть небольшой потенциометр, который можно использовать для установки ограничения тока. Требуется установить ограничение по току равным или ниже номинального тока двигателя.
Расчет и установка ограничещего тока драйвер шагового двигателя A4988.
Установка ограничение тока путем измерения напряжения (Vref) на выводе «ref».
Из datasheet взять максимальный ток ШД. Для примера расчета используем NEMA17 200 шагов/об, 12В 350 мА.
Перевести драйвер в полношаговый режим, оставив три контакта выбора микрошага отключенными.
Удерживnm двигатель в фиксированном положении, не синхронизируя вход STEP.
Во время регулировки измерить напряжение Vref (один щуп мультиметра на минус питания, а другой к металлическому корпусу потенциометра).
Отрегулировать напряжение Vref по формуле:
Vref = Imax * 8 * (RS)
Imax — ток двигателя;
RS — сопротивление резистора. В моем случае RS = 0,100.
Формула Vref для A4988 изменяется от номинала токочувствительных резисторов. Обычно подписаны R050 или R100.
Для 17HS4401 Vref = 1,7 * 8 * 0,100 = 1,36 В.
В связи с тем что рабочий ток двигателя равен 70% от тока удержания. Полученное значение нужно умножить на 0,7. В противном случае двигатель в режиме удержания будет сильно греться.
Для 17HS4401 Vref ист. = 1,36*0,7 = 0,952 В.
Аналогично можно рассчитать значения для EM-181
Vref = 1,2 * 8 * 0,100 = 0,96 В
Vrefист. = 0,96*0,7 = 0 ,672 В.
Схема подключения ШД и драйвера к Ардуино
// Установка выводов
const int dirPin = 2;
const int stepPin = 3;
const int stepsPerRevolution = 200;
void setup()
{
// Объявить контакты как выходы
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void loop()
{
// Установка направления вращения двигателя по часовой стрелке.
digitalWrite(dirPin, HIGH);
// Медленное вращение двигателя
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(4000);
digitalWrite(stepPin, LOW);
delayMicroseconds(4000);
}
delay(3000); // Ждем 3 сек
// Установка направления вращения двигателя против часовой стрелке.
digitalWrite(dirPin, LOW);
// Быстрое вращение двигателя
for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
delay(3000); // Ждем 3 сек
}
Пояснения к скетчу
В цикле loop() медленно вращатся двигатель по часовой стрелке, а затем быстро вращаетсяо против часовой стрелки с интервалом в секунду.
Управление направлением вращения: для управления направлением вращения двигателя устанавливается вывод DIR в высокое или низкое положение. Сигнал высокого уровня вращает двигатель по часовой стрелке, а низкого — против часовой стрелки.
digitalWrite(dirPin, HIGH);
Скорость двигателя определяется частотой импульсов, которые поступает на вывод STEP. Чем чаще импульсы, тем быстрее вращается двигатель. Изменяя задержку между двумя импульсами, изменяется частота этих импульсов и, следовательно, скорость двигателя.
Заключение
ШД PL42H34-D5
Конденсатор 47мкф 16В
Питание 11 В 0,5А
Резистор подстроечный драйвера 12ч
Работает
ШД от CD-ROM
Конденсатор 47мкф 16В
Питание 7,5В В 0,15А
Резистор подстроечный драйвера 9ч
Работает. мотор греется 70град