Драйвер шагового двигателя L293D подключение к Arduino
- Информация о материале
- Обновлено: 07.03.2023, 15:41
- Опубликовано: 07.03.2023, 14:58
- Автор: DeniS
L293D Двухтактный четырехканальный драйвер двигателей постоянного тока или шагового двигателя, с защитными диодами
Схема подключения драйвера шагового двигателя L293D к Arduino
Компоненты схемы:
• контроллер Arduino;
• плата для прототипирования;
• шаговый двигатель;
• микросхема L293;
• кнопка – 2 шт.;
• резистор 1 кОм – 2 шт.;
• внешний блок питания +5 В.
Скетч управление шаговым двигателем через драйвер L293D
При нажатии на первую кнопку шаговый двигатель перемещается на 200 шагов по часовой стрелке, при нажатии на другую кнопку шаговый двигатель перемещается на 200 шагов против часовой стрелки. При написании скетча будем использовать Arduino-библиотеку Stepper. Содержимое скетча показано в листинге 19.1.
#include <Stepper.h>
#define STEPS 200 // Количество шагов
Stepper stepper(STEPS, 8, 9, 10, 11);
// клавиши
int pinButtons1[]={6,7};
int lastButtons1[]={0,0};
int currentButtons1[]={0,0};
int countButtons1=2;
void setup()
{
stepper.setSpeed(50);
}
void loop()
{
// проверка нажатия кнопок
for(int i=0;i<countButtons1;i++)
{
currentButtons1[i] = debounce(lastButtons1[i],pinButtons1[i]);
if (lastButtons1[i] == 0 && currentButtons1[i] == 1)
// если нажатие...
{
if(i==0)
stepper.step(10*STEPS);
else
stepper.step(-10*STEPS);
}
lastButtons1[i] = currentButtons1[i];
}
}
// Функция сглаживания дребезга
int debounce(int last,int pin1)
{
int current = digitalRead(pin1); // Считать состояние кнопки
if (last != current) // если изменилось...
{
delay(5); // ждем 5 м с
current = digitalRead(pin1); // считываем состояние кнопки
return current; // возвращаем состояние кнопки
}
}
Характеристики драйвера шагового двигателя L293D
Диаграмма драйвера шагового двигателя L293D
Распиновка драйвера шагового двигателя L293D
Схема подключения 2 драйвера шагового двигателя L293D к Arduino