● Проект 19: Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)

Опубликовано: 23.04.2018
В этом эксперименте мы рассмотрим подключение к Arduino шагового двигателя.

Необходимые компоненты:

контроллер Arduino UNO R3;
плата для прототипирования;
• шаговый двигатель;
• микросхема L293;
провода папа-папа.
кнопка – 3 шт.;
резистор 1 кОм – 3 шт.;
внешний блок питания +5 В.

Шаговые двигатели представляют собой электромеханические устройства, задачей которых является преобразование электрических импульсов в перемещение вала двигателя на определенный угол. ШД нашли широкое применение в области, где требуется высокая точность перемещений или скорости. Наглядными примерами устройств с ШД могут служить принтеры, факсы и копировальные машины, а также более сложные устройства: станки с ЧПУ (числовым программным управлением), фрезерные, гравировальные машины и т. д.
Шаговый двигатель – синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора. Напрямую, к выводам Arduino подключать ШД нельзя, для подключения используют либо драйверы шаговых двигателей (например, A4988), либо драйверы двигателей постоянного тока (ULN2003, L293). В эксперименте будем использовать микросхему L393, которая содержит в себе четыре мощных усилителя (см. рис. 19.1). Если на вход усилителя подается 1, то выход сажается на 12 В, если на вход подается 0, то вывод сажается на землю. Таким образом, подавая комбинации 0 и 1 на разные входы, можно сажать выводы двигателя на шины разной полярности, вращая движок в разные стороны.

Рис. 19.1. Драйвер двигателей L293

Подключим к Arduino шаговый двигатель и с помощью кнопок будем задавать перемещение шагового двигателя в разные стороны.
Схема соединений для данного эксперимента показана на рис. 19.2.

подключение к Arduino шагового двигателя
Рис. 19.2. Схема соединений шагового двигателя и Arduino

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



1. Подключаем элементы к плате Arduino по схеме на рис. 19.2.
2. Загружаем в плату Arduino скетч из листинга 19.1.
3. При нажатии на одну из кнопок шаговый двигатель делает 200 шагов в одну сторону и останавливается, при нажатии на другую кнопку двигатель делает 200 шагов в обратную сторону.



Листинги программ скачать

Главное меню

Каталог

Полезные ссылки

Цена
от
до