- Необходимые компоненты
- Описание контактов шагового двигателя
- Принципиальная схема управления шаговым двигателем с помощью модуля ULN2003
- Принципиальная схема управления шаговым двигателем с помощью модуля L293D:
- Управление шаговым двигателем с помощью AVR ATmega16
Шаговые двигатели - это бесщеточные двигатели постоянного тока, которые могут вращаться от 0 0 до 360 0 с шагом. Шаговый двигатель использует электронные сигналы для пошагового вращения двигателя, и каждый сигнал вращает вал с фиксированным шагом (один шаг). Угол поворота регулируется подачей определенной последовательности сигналов. В отличие от серводвигателя, шаговые двигатели могут приводиться в движение с помощью выводов GPIO микроконтроллера, а не выводов ШИМ, и могут вращаться в (+360 0) и (-360 0).). Порядок сигналов определяет направление шагового двигателя по часовой стрелке и против часовой стрелки. Чтобы управлять скоростью двигателя, нам просто нужно изменить скорость подаваемых управляющих сигналов. Шаговые двигатели вращаются ступенчато. Существует несколько режимов работы шагового двигателя, таких как полный шаг, полушаг и микрошаг. Чтобы узнать больше об основах, теории и принципе работы шагового двигателя, перейдите по ссылке.
Ранее мы связали шаговый двигатель со многими микроконтроллерами:
- Подключение шагового двигателя к ARM7-LPC2148
- Взаимодействие шагового двигателя с Arduino Uno
- Подключение шагового двигателя к MSP430G2
- Подключение шагового двигателя к STM32F103C8
- Взаимодействие шагового двигателя с микроконтроллером PIC
- Подключение шагового двигателя к микроконтроллеру 8051
- Взаимодействие шагового двигателя с Raspberry Pi
В этом руководстве мы будем сопоставлять шаговый двигатель 28BYJ-48 с микроконтроллером AVR Atmega16 с помощью Atmel Studio 7.0. Шаговый двигатель рассчитан на работу при напряжении 5 В. Мы будем сопрягать шаговый двигатель с обоими драйверами двигателя, то есть ULN2003 и L293. Оба будут питаться от источника питания 5 В. Чтобы упростить интерфейс, мы используем готовый модуль для обоих драйверов двигателей. Вы также можете использовать автономные ИС ULN2003 и L293D. Количество проводов и перемычек может быть больше, поэтому будьте осторожны при подключении всех соединений.
Необходимые компоненты
- Шаговый двигатель (28BYJ-48)
- Модуль ULN2003 / Драйвер двигателя L293D
- Микроконтроллер Atmega16 IC
- Кристаллический осциллятор 16 МГц
- Два конденсатора по 100 нФ
- Два конденсатора 22 пФ
- Нажать кнопку
- Перемычки
- Макетная плата
- USBASP v2.0
- Светодиод (любой цвет)
Описание контактов шагового двигателя
Принципиальная схема управления шаговым двигателем с помощью модуля ULN2003
Подключите все компоненты, как показано на схеме ниже, при использовании ULN2003.. Точно так же мы будем сопрягать его с помощью L293D на следующем шаге. Мы используем ПОРТУ Atmega16 для сопряжения шагового двигателя с обоими драйверами двигателя. Нет необходимости подключать вывод 5V шагового двигателя. Для движения шагового двигателя требуются только штифты катушки. Порядок вывода очень важен для привода шагового двигателя, так как катушки должны быть запитаны для достижения ступенек. В этом проекте используются четыре входа ULN2003 и четыре выхода ULN2003. Входы будут подключены к контактам PORTA, а выходы будут подключены к контактам сигнала шагового двигателя. Кроме того, подключите одну кнопку к контакту сброса для сброса Atmega16, когда это необходимо. Подключите Atmega16 к правильной схеме кварцевого генератора. Вся система будет питаться от источника питания 5 В.
Ниже приведено фактическое изображение модуля драйвера двигателя ULN2003:
Ниже мы приводим контактные соединения Atmega16 с ULN2003 и L293D для вращения шагового двигателя. Взаимодействие шагового двигателя с модулем L293D объясняется в следующем разделе, помните, что для управления шаговым двигателем требуется только один модуль ULN2003 или L293D.
Контакты для INPUT следующие:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Контакты для ВЫХОДА следующие:
Шаговый двигатель |
ULN2003 |
L293D |
апельсин |
OUT1 (PIN16) |
OUT1 (PIN3) |
Желтый |
OUT2 (PIN15) |
OUT2 (PIN6) |
Розовый |
OUT3 (PIN14) |
OUT3 (PIN11) |
Синий |
OUT4 (PIN13) |
OUT4 (PIN14) |
Принципиальная схема управления шаговым двигателем с помощью модуля L293D:
Управление шаговым двигателем с помощью AVR ATmega16
Как уже говорилось, в отличие от серводвигателя, шаговым двигателям требуются внешние драйверы, например драйвер двигателя ULN2003 или L293D. Так что просто подключите схему, как указано выше, и загрузите программу main.c, указанную в конце.
На рисунке показан шаговый двигатель, вращающийся в обе стороны, то есть по часовой стрелке и против часовой стрелки. Если вы хотите повернуть шаговый двигатель в одном направлении, просто закомментируйте строки кода другого направления в эскизе.
Полный код АРН для управления шаговым двигателем приведен ниже. Код прост и понятен. Ниже приведены два кода: один для вращающегося шагового двигателя с ULN2003, а второй с модулем L293D.
Подключите USBASP v2.0 и следуйте инструкциям по этой ссылке, чтобы запрограммировать микроконтроллер Atmega16 AVR с помощью USBASP и Atmel Studio 7.0. Просто создайте эскиз и загрузите его с помощью внешнего инструментария.
Полный код с демонстрационным видео приведен ниже.