- Кроковий двигун:
- Драйвер крокового двигуна ULN2003:
- Необхідні компоненти
- Принципова схема та пояснення
- Пояснення коду
Кроковий двигун - це спеціально розроблений двигун, який обертається кроками. Швидкість крокового двигуна залежить від швидкості подаваного на нього електричного сигналу. Різні схеми можуть контролювати напрямок і тип обертання крокового двигуна. Доступні в основному два типи крокових двигунів, однополюсний та біполярний. Unipolar простіше в експлуатації, керуванні, а також легше дістатись. У цьому посібнику ми взаємодіємо кроковий двигун з мікроконтролером PIC16F877A.
Для цього проекту ми використовуємо кроковий двигун 28BYJ-48, який є дешевим та легко доступним. Це однополюсний кроковий двигун постійного струму 5 В. Ми також використовуємо модуль, доступний з цим двигуном, який складається з мікросхеми крокового двигуна ULN2003. ULN2003 - це парний масив Дарлінгтона, який корисний для керування цим двигуном, оскільки мікроконтролер PIC не може забезпечити достатню кількість струму для керування. ULN2003A здатний управляти 500мА навантаження з 600мА пікового струму.
Кроковий двигун:
Давайте подивимось специфікацію крокового двигуна 28BYJ-48 з таблиці даних.
Як обертати кроковий двигун:
Якщо ми побачимо таблицю даних, ми побачимо розпізнавання.
Всередині двигуна є дві котушки з центральним різьбленням. Червоний провід є загальним для обох, які будуть підключені до VCC або 5V.
Інші 4 дроти рожевого, червоного, жовтого та синього контролюватимуть обертання залежно від електричного сигналу. Також, залежно від руху, цим двигуном можна керувати за допомогою 3 кроків. Режим повного приводу, режим Half Drive і режим 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 |
Хвильовий привід: У цьому режимі вмикається один електромагніт статора. Він виконує 4 кроки, як і режим повного приводу. Він споживає низьку потужність з низьким крутним моментом.
Крок |
Синій |
Рожевий |
Жовтий |
Помаранчевий |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Раніше ми взаємодіяли кроковий двигун з іншими мікроконтролерами:
Кроковим двигуном також можна керувати без будь-якого мікроконтролера, див. Цей ланцюг драйвера крокового двигуна.
Драйвер крокового двигуна ULN2003:
Давайте розберемося в платі, що складається з мікросхеми ULN2003. Важливо зрозуміти шпильку.
Жовта частина використовуються для підключення двигуна, Червона частина демонструє перемичку, це важливо помістити перемичку, оскільки це дозволить зіткнулося диоду захисту для двигуна . Рожевий вхід призначений для підключення мікроконтролера.
Ми повернемо двигун у режимі повного приводу в годинниковому напрямку і знову повернемо його в режимі хвильового приводу в напрямку проти годинникової стрілки. Перевірте демонстраційне відео в кінці.
Необхідні компоненти
- Pic16F877A
- Комплект для програмування
- Макет
- Кристал 20 МГц
- Дисковий конденсатор 33pF - 2шт
- Резистор 4.7k
- Провід і шпильки Berg
- Пробивна плата ULN2003A разом із кроковим двигуном 28BYJ-48.
- Додаткові дроти для підключення
- Блок живлення 5 В або настінний адаптер з номіналом 500 мА
Принципова схема та пояснення
На електричній схемі ліворуч показано PIC16F877A, а праворуч - з'єднання ULN2003A. ULN2003 і частина крокового двигуна знаходяться всередині плати пробою.
Підключення плати Breakout до блоку мікроконтролера буде
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Я підключив усі компоненти та ваше обладнання для повороту крокового двигуна з мікроконтролером PIC готово.
Якщо ви новачок у мікроконтролері PIC, дотримуйтесь наших посібників із мікроконтролера PIC, де вказано Початок роботи з мікроконтролером PIC.
Пояснення коду
Повний код цього драйвера крокового двигуна на основі PIC наведено в кінці цього підручника з демонстраційним відео. Як завжди спочатку, нам потрібно встановити біти конфігурації в мікроконтролері pic, а потім розпочати з головною функцією void .
Це макроси для бітів конфігурації блоку мікроконтролера та файлів заголовків бібліотеки.
#define _XTAL_FREQ 200000000 // Частота кристала, що використовується із затримкою #define speed 1 // Діапазон швидкості від 10 до 1 10 = найнижча, 1 = найвища #define кроки 250 // скільки кроку буде потрібно #define за годинниковою стрілкою 0 // напрямок за годинниковою стрілкою macro #define anti_clockwise 1 // проти годинникової стрілки макрос
У першому рядку ми визначили частоту кристалів, яка необхідна для процедури затримки. Інші макроси використовуються для визначення параметрів, пов'язаних із користувачем.
Якщо ви бачите код, для керування двигуном у трьох режимах із годинниковою стрілкою та проти годинникової стрілки визначено три функції. Ось три функції:
1. void full_drive (напрямок char)
2. void half_drive (напрямок символу)
3. void wave_drive (напрямок символу)
Перевірте визначення цих функцій у повному коді, наведеному нижче:
Тепер, коли основна функція порожня , ми рухаємо двигун за годинниковою стрілкою, використовуючи режим повного приводу, залежно від кроків, і через кілька секунд затримки ми знову обертаємо двигун проти годинникової стрілки, використовуючи режим хвильового приводу.
void main (void) { system_init (); while (1) { / * Приводьте двигун в режим повного приводу за годинниковою стрілкою * / for (int i = 0; i
Ось як ми можемо обертати кроковий двигун за допомогою мікроконтролера PIC. Крокові двигуни дуже корисні в верстатах з ЧПУ, робототехніці та інших вбудованих додатках.