- Стъпков мотор:
 - Шофьор на стъпков двигател 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 машини, роботика и други вградени приложения.
