- Стъпков мотор:
- Шофьор на стъпков двигател ULN2003:
- Необходими компоненти
- Електрическа схема и обяснение
- Обяснение на кода
Stepper Motor е специално проектиран мотор, който се върти на стъпки. Скоростта на стъпковия двигател зависи от скоростта на подадения към него електрически сигнал. Различните модели могат да контролират посоката и типа на въртене на стъпковия двигател. Предлагат се основно два вида стъпкови двигатели, еднополюсни и биполярни. Unipolar е по-лесен за управление, управление и по-лесен за получаване. Тук в този урок ние свързваме стъпков двигател с PIC микроконтролер PIC16F877A.
За този проект използваме стъпков двигател 28BYJ-48, който е евтин и лесно достъпен. Това е 5V DC еднополюсен стъпков двигател. Също така използваме модул, наличен с този двигател, който се състои от ULN2003 IC драйвер за стъпков двигател. ULN2003 е двойка от Дарлингтън, която е полезна за задвижване на този двигател, тъй като микроконтролерът PIC не може да осигури достатъчно ток за задвижване. ULN2003A е способен да задвижва 500 mA товар с 600 mA пиков ток.
Стъпков мотор:
Да видим спецификацията на стъпковия двигател 28BYJ-48 от листа с данни.
Как да завъртите стъпков двигател:
Ако видим листа с данни, ще видим извода.
Вътре в мотора има две централни намотки. Червеният проводник е общото за двете, които ще бъдат свързани към VCC или 5V.
Други 4 проводника розово, червено, жълто и синьо ще контролират въртенето в зависимост от електрическия сигнал. Също така, в зависимост от движението, този мотор може да се управлява с 3 стъпки. Пълен режим на работа, Half Режим на снимане и режим Wave диск.
Три режима на задвижване на стъпков двигател:
Пълен задвижващ механизъм : Ако едновременно се захранват два електромагнита на статора, двигателят ще работи с пълен въртящ момент, посочен като режим на последователност на задвижване.
Стъпка |
Син |
Розов |
Жълто |
Оранжево |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Полузадвижване: Когато алтернативно една и две фази са захранени, двигателят ще работи в режим на половин задвижване. Използва се за увеличаване на ъгловата разделителна способност. Недостатъкът е по-малък въртящ момент, произведен при това движение.
Стъпка |
Син |
Розов |
Жълто |
Оранжево |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Wave Drive: В този режим е включен един статорен електромагнит. Следват 4 стъпки, същите като режима на пълно задвижване. Той консумира ниска мощност с нисък въртящ момент.
Стъпка |
Син |
Розов |
Жълто |
Оранжево |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Преди това сме свързвали стъпков двигател с други микроконтролери:
Стъпков двигател може да се управлява и без никакъв микроконтролер, вижте тази схема на драйвер за стъпков двигател.
Шофьор на стъпков двигател ULN2003:
Нека разберем платката, която се състои от ULN2003 IC. Важно е да разберете щифта.
В жълто част се използва за свързване на мотора, The Red част се показва скачач, Важно е да се поставят на скок, тъй като ще даде възможност за свободен ход защитен диод за двигателя . В розово вход е за връзката микроконтролер.
Ще завъртим мотора в режим на пълно задвижване по посока на часовниковата стрелка и отново ще го завъртим с режим на задвижване на вълната в посока, обратна на часовниковата стрелка. Проверете демонстрационното видео в края.
Необходими компоненти
- Pic16F877A
- Комплект за програмиране
- Макет
- 20Mhz кристал
- 33pF дисков кондензатор - 2бр
- 4.7k резистор
- Телове и щифтове Berg
- ULN2003A дъска за разбиване заедно със стъпков двигател 28BYJ-48.
- Допълнителни проводници за свързване
- 5V захранващ блок или адаптер за стена с номинал 500mA
Електрическа схема и обяснение
В електрическата схема от лявата страна се показва PIC16F877A, а от дясната се показва връзката ULN2003A. Частта ULN2003 и стъпковият двигател е вътре в платката за разбиване.
Връзката от платката Breakout към микроконтролера ще бъде-
А. IN1 => Pin33
Б. IN2 => ПИН34
C. IN3 => Pin35
D. IN4 => Pin36
Свързах всички компоненти и вашият хардуер за завъртане на стъпков двигател с PIC микроконтролер е готов.
Ако сте нов в PIC Microcontroller, следвайте нашите уроци по PIC Microcontroller, посочвайки с Първи стъпки с PIC Microcontroller.
Обяснение на кода
Пълният код за този базиран на PIC драйвер за стъпков двигател е даден в края на този урок с демонстрационно видео. Както винаги първо, трябва да зададем конфигурационните битове в микроконтролера pic и след това да започнем с void main function.
Това са макросите за конфигурационни битове на микроконтролера и заглавните файлове на библиотеката.
#define _XTAL_FREQ 200000000 // Кристална честота, използвана със закъснение #define speed 1 // Диапазон на скоростта 10 до 1 10 = най-нисък, 1 = най-висок #define steps 250 // колко стъпка ще отнеме #define по часовниковата стрелка 0 // посока на часовниковата стрелка macro #define противоположно на часовниковата стрелка 1 // макрос посока против часовниковата стрелка
В първия ред определихме кристалната честота, която е необходима за рутинното забавяне. Други макроси се използват за дефиниране на опции, свързани с потребителя.
Ако видите кода, има три функции, дефинирани за задвижване на двигателя в три режима по посока на часовниковата стрелка и обратно на часовниковата стрелка. Ето трите функции:
1. void full_drive (посока char)
2. void half_drive (посока char)
3. void wave_drive (посока на char)
Проверете дефинициите на тези функции в пълния код, даден по-долу:
Сега в невалидна основна функция, ние задвижваме двигателя по посока на часовниковата стрелка, като използваме режим на пълно задвижване в зависимост от стъпките и след няколко секунди закъснение отново завъртаме двигателя срещу часовниковата стрелка, използвайки режим на задвижване на вълната.
void main (void) { system_init (); докато (1) { / * Задвижвайте двигателя в режим на пълно задвижване по посока на часовниковата стрелка * / за (int i = 0; i
Ето как можем да завъртим стъпковия двигател с PIC микроконтролер. Стъпковите двигатели са много полезни в CNC машини, роботика и други вградени приложения.