- Необходими компоненти
- Pin описание на стъпков двигател
- Електрическа схема за управление на стъпков двигател с помощта на модул ULN2003
- Електрическа схема за управление на стъпков двигател с помощта на модул L293D:
- Управление на стъпков двигател с AVR ATmega16
Стъпковите двигатели са безчеткови двигатели с постоянен ток, които могат да се въртят от 0 0 до 360 0 на стъпки. Стъпковият двигател използва електронни сигнали за завъртане на двигателя на стъпки и всеки сигнал завърта вала с фиксиран прираст (една стъпка). Ангелът на въртенето се контролира чрез прилагане на определена последователност от сигнали. За разлика от серво мотора, стъпковите двигатели могат да бъдат задвижвани чрез използване на GPIO щифтове на микроконтролера, а не на PWM щифтове и могат да се въртят в (+360 0) и (-360 0). Редът на сигналите решава посоката на часовниковата стрелка и обратно на часовниковата стрелка на стъпковия двигател. За да контролираме скоростта на двигателя, просто трябва да променим скоростта на прилаганите управляващи сигнали. Стъпковите двигатели се въртят на стъпки. Има няколко режима на стъпки за работа със стъпков двигател, като пълна стъпка, половин стъпка и микро стъпка. За да научите повече за основите, теорията и принципа на работа на стъпковия двигател, следвайте връзката.
Преди това сме свързали стъпков двигател с много микроконтролери:
- Свързване на стъпков двигател с ARM7-LPC2148
- Свързване на стъпков двигател с Arduino Uno
- Свързване на стъпков двигател с MSP430G2
- Свързване на стъпков двигател със STM32F103C8
- Свързване на стъпков двигател с микроконтролер PIC
- Свързване на стъпков двигател с микроконтролер 8051
- Свързване на стъпков двигател с Raspberry Pi
В този урок ще свържем 28BYJ-48 стъпков двигател с микроконтролер Atmega16 AVR, използвайки Atmel Studio 7.0. Стъпковият двигател е класиран да работи в 5V. Ще свържем стъпковия двигател с двата драйвера на двигателя, т.е. ULN2003 и L293. И двете ще се задвижват от 5V захранване. За да опростим взаимодействието, използваме модул за предварително изграждане на двата драйвера на двигателя. Можете също да използвате ULN2003 и L293D самостоятелни интегрални схеми. Броят на проводниците и джъмперите може да бъде повече, така че просто бъдете внимателни, докато свързвате всички връзки.
Необходими компоненти
- Стъпков двигател (28BYJ-48)
- Модул ULN2003 / Двигател на двигателя L293D
- IC микроконтролер Atmega16
- 16Mhz кристален осцилатор
- Два кондензатора 100nF
- Два кондензатора 22pF
- Натисни бутона
- Джъмперни проводници
- Макет
- USBASP v2.0
- LED (всеки цвят)
Pin описание на стъпков двигател
Електрическа схема за управление на стъпков двигател с помощта на модул ULN2003
Свържете всички компоненти, както е показано на диаграмата по-долу, когато използвате ULN2003. По същия начин ще го свържем с помощта на L293D в следващата стъпка. Използваме PORTA на Atmega16 за свързване на стъпков двигател и за двата драйвера на двигателя. Не е необходимо да свързвате 5V щифт на стъпков двигател. За преместване на стъпковия двигател са необходими само щифтовете на бобината. Редът на щифтовете е много важен за задвижване на стъпков двигател, тъй като захранването на бобините трябва да бъде, за да се постигнат стъпки. Четири входа на ULN2003 и четири изхода на ULN2003 се използват в този проект. Входовете ще бъдат свързани към щифтове PORTA, а изходите ще бъдат свързани към сигнални щифтове на стъпков двигател. Също така свържете един бутон в Reset pin за нулиране на Atmega16, когато е необходимо. Свържете Atmega16 с подходяща верига на кристален осцилатор. Цялата система ще се захранва от 5V захранване.
По-долу е действителната снимка на ULN2003 Motor Driver Module:
По-долу сме дали връзки Atmega16 с ULN2003 и L293D за завъртане на стъпковия двигател. Взаимовръзка на стъпков двигател с модул L293D е обяснен в следващия раздел, не забравяйте, че за управлението на стъпков двигател е необходим само един модул ULN2003 или L293D.
ПИН връзките за INPUT са както следва:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
А1 |
IN2 (PIN2) |
IN2 (PIN7) |
А2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Пиновите връзки за OUTPUT са както следва:
Стъпков мотор |
ULN2003 |
L293D |
Оранжево |
ИЗХОД1 (PIN16) |
ИЗХОД1 (ПИН3) |
Жълто |
OUT2 (PIN15) |
ИЗХОД2 (ПИН6) |
Розов |
OUT3 (PIN14) |
OUT3 (PIN11) |
Син |
OUT4 (PIN13) |
OUT4 (PIN14) |
Електрическа схема за управление на стъпков двигател с помощта на модул L293D:
Управление на стъпков двигател с AVR ATmega16
Както вече беше казано, за разлика от Servo Motor, стъпковите двигатели се нуждаят от външни драйвери, например ULN2003 или L293D двигател. Така че просто свържете схемата, както по-горе, и качете програмата main.c, дадена в края.
Скицата показва стъпковия двигател, въртящ се от двете страни, т.е. по посока на часовниковата стрелка и обратно на часовниковата стрелка. Ако искате да завъртите стъпката в една посока, просто коментирайте кодовите линии на друга посока в скицата.
Пълният AVR код за управление на стъпков двигател е даден по-долу. Кодът е прост и може да се разбере лесно. По-долу са дадени два кода, един за въртящ се стъпков двигател с ULN2003 и втори с модул L293D.
Свържете вашия USBASP v2.0 и следвайте инструкциите в тази връзка, за да програмирате Atmega16 AVR Microcontroller с помощта на USBASP и Atmel Studio 7.0. Просто изградете скицата и качете с помощта на външна верига от инструменти.
Пълният код с демонстрационно видео е даден по-долу.