цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

Автор: Mike(admin) от 13-09-2019, 03:55

Шаговый двигатель – это тип двигателя постоянного тока, который работает дискретно и используется повсеместно, от камеры наблюдения до сложных роботов и машин. Шаговый двигатель NEMA 17 имеет угол шага 1,8°, что означает, что для поворота на 360 ° потребуется 200 шагов. Изменяя скорость подачи управляющего сигнала, мы можем легко контролировать скорость двигателя. Шаговый двигатель может работать в различных пошаговых режимах, таких как полный шаг, полшага, ¼ шаг путем применения соответствующих логических уровней к контактам шагового модуля. В нашем предыдущем проекте мы контролировали шаговый двигатель 28-BYJ48 с помощью Arduino. 28-BYJ48 имеет относительно более низкий крутящий момент, чем другие шаговые двигатели, такие как NEMA 14, NEMA17.


Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

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


Модуль шагового привода или драйвер контролирует работу шагового двигателя. Драйверы шагового двигателя посылают ток на шаговый двигатель через различные фазы. DRV8825 – это модуль микрошагового драйвера, аналогичный модулю A4988. Используется для управления биполярными шаговыми двигателями. Этот модуль управления шаговым двигателем Nema 17 имеет встроенный транслятор, который означает, что он может управлять как скоростью, так и направлением биполярного шагового двигателя, такого как NEMA 17, используя только два контакта, то есть STEP и DIR. Вывод STEP используется для управления шагами, а вывод DIR – для управления направлением вращения.


DRV8825

Драйвер двигателя Nema 17 DRV8825 имеет максимальную выходную мощность 45 В и ± 2,2А. Этот драйвер может управлять шаговым двигателем в шести различных пошаговых режимах, то есть с полным шагом, полушагом, четвертьшагом, одной восьмой шага, одной шестнадцатой шага и одной тридцать второй шага. Вы можете изменить разрешение шага, используя линии микрошага (M0, M1 и M2). Установив соответствующие логические уровни для этих контактов, мы можем установить двигатели на одно из шести шагов разрешения.


Схема подключения шагового двигателя NEMA 17, Arduino, DRV8825 и сопутствующих компонентов приведена на следующем изображении.


Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

Питание шагового двигателя осуществляется от источника питания 12 В, а модуль DRV8825 получает питание от Arduino. Контакты RST и SLEEP оба подключены к 5V от Arduino, чтобы драйвер оставался включенным. Потенциометр подключен к выводу A0 Arduino; он используется для управления направлением двигателя. Если вы поворачиваете потенциометр по часовой стрелке, то шаговый двигатель будет вращаться по часовой стрелке, а если вы поворачиваете потенциометр против часовой стрелки, то он будет вращаться против часовой стрелки. Конденсатор 47 мкФ используется для защиты платы от скачков напряжения. Выводы M0, M1 и M2 оставлены отсоединенными, это означает, что драйвер будет работать в режиме полного шага.


Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

Перед использованием двигателя измените ограничение тока модуля DRV8825 на 350 мА с помощью потенциометра ограничения тока. Вы можете измерить текущий предел с помощью мультиметра. Измерьте ток между двумя точками заземления и потенциометром и отрегулируйте его до требуемого значения.


Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825

Полный код для управления Nema 17 с помощью Arduino приведен далее.



#include <Stepper.h> 
#define STEPS 200
//#define dirPin 2
//#define stepPin 3
// Определение соединения шагового двигателя и тип интерфейса двигателя. Тип интерфейса двигателя должен быть установлен на 1 при использовании драйвера
Stepper stepper(STEPS, 2, 3);
#define motorInterfaceType 1
int Pval = 0;
int potVal = 0;
void setup() {
  // Установим максимальную скорость в шагах в секунду
  stepper.setSpeed(800);
 // pinMode(stepPin, OUTPUT);
 // pinMode(dirPin, OUTPUT);
}
void loop() {
 
  potVal = map(analogRead(A0),0,1024,0,500);
  if (potVal>Pval)
      stepper.step(10);
  if (potVal<Pval)
      stepper.step(-10);
Pval = potVal;
  
}



© digitrode.ru


Теги: Arduino, шаговый двигатель



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

Комментарии:

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