- Кроковий двигун
- Обертання крокового двигуна з ARM7-LPC2148
- Потрібні компоненти
- Кроковий двигун (28BYJ-48)
- Драйвер крокового двигуна ULN2003
- Кругова діаграма
- Програмування ARM7-LPC2148 для крокового двигуна
У сучасному світі автоматизації кроковий двигун та сервомотор є двома найбільш часто використовуваними двигунами у вбудованих системах. Обидва вони використовуються в різних машинах автоматизації, таких як роботизовані зброї, верстати з ЧПУ, камери і т. Д. У цьому посібнику ми побачимо, як взаємодіяти кроковий двигун з ARM7-LPC2148 і як контролювати його швидкість. Якщо ви не знайомі з ARM7, почніть з вивчення ARM7-LPC2148 та його інструментів програмування.
Кроковий двигун
Кроковий двигун - це безщітковий двигун постійного струму, який можна обертати на невеликі кути, ці кути називаються ступенями. Ми можемо покроково обертати кроковий двигун, подаючи цифрові імпульси на його висновки. Крокові двигуни недорогі і мають міцну конструкцію. Швидкість двигуна можна регулювати, змінюючи частоту цифрових імпульсів.
Існує два типи крокових двигунів на основі типу обмотки статора: UNIPOLAR та BIPOLAR. Тут ми використовуємо кроковий двигун UNIPOLAR, який є найбільш часто використовуваним кроковим двигуном . Для обертання крокового двигуна нам потрібно подавати живлення котушок крокового двигуна послідовно. На основі операції обертання вони класифікуються на два режими:
- Повнокроковий режим: (4-крокова послідовність)
- Однофазний крок (ХВИЛЬНИЙ КРОК)
- Двофазна на крок
- Напівкроковий режим (8-крокова послідовність)
Щоб дізнатися більше про кроковий двигун та його роботу, перейдіть за посиланням.
Обертання крокового двигуна з ARM7-LPC2148
Тут ми будемо використовувати ПОВНИЙ КРОК: ОДНУ ФАЗУ або режим ХВИЛЬНОГО КРОКУ, щоб повернути кроковий двигун за допомогою ARM7-LPC2148
У цьому методі ми підключатимемо лише одну котушку (один штифт LPC2148) за раз. Тобто, якщо перша котушка А подається під напругу протягом короткого часу, вал змінить своє положення, а потім котушка В буде під напругою в той же час, і вал знову змінить своє положення. Подібно до цього, котушка C, а потім котушка D отримують напругу для подальшого переміщення вала. Це змушує вал крокового двигуна обертатися поетапно, подаючи енергію по одній котушці за раз.
За допомогою цього методу ми покроково обертаємо вал, послідовно включаючи котушку. Це називається чотирикроковими послідовностями, оскільки займає чотири кроки.
Ви можете обертати кроковий двигун методом HALF STEP (метод 8-послідовності) відповідно до значень, наведених нижче.
Крок |
Котушка A |
Котушка B |
Котушка C |
Котушка D |
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 |
Потрібні компоненти
Обладнання:
- ARM7-LPC2148
- Схема драйвера двигуна ULN2003
- Світлодіод - 4
- КРОКОВИЙ МОТОР (28BYJ-48)
- ЗНАЧЕННЯ
- ПІДКЛЮЧЕННЯ ДРОТІВ
Програмне забезпечення:
- Keil uVision5
- Flasic Magic Tool
Кроковий двигун (28BYJ-48)
Кроковий двигун 28BYJ-48 вже показано на малюнку вище. Це уніполярний кроковий двигун, який вимагає живлення 5 В. Двигун має однополярне розташування з 4 котушками, і кожна котушка розрахована на + 5 В, отже, відносно легко керувати будь-якими мікроконтролерами, такими як Arduino, Raspberry Pi, STM32, ARM тощо.
Але нам потрібна мікросхема двигуна типу ULN2003, щоб керувати нею, оскільки крокові двигуни споживають сильний струм, і це може пошкодити мікроконтролери.
Технічні характеристики 28BYJ-48 наведені в технічному паспорті нижче:
Також перевірте взаємодію крокового двигуна з іншими мікроконтролерами:
- Зв'язок крокового двигуна з Arduino Uno
- Управління кроковим двигуном з Raspberry Pi
- Інтерфейс крокового двигуна з мікроконтролером 8051
- Зв'язок крокового двигуна з мікроконтролером PIC
- Зв'язок крокового двигуна з MSP430G2
Кроковим двигуном також можна керувати без будь-якого мікроконтролера, див. Цей ланцюг драйвера крокового двигуна.
Драйвер крокового двигуна ULN2003
Більшість крокових двигунів працюватимуть лише за допомогою драйвера. Це пов’язано з тим, що модуль контролера (у нашому випадку LPC2148) не зможе забезпечити достатньо струму зі своїх штифтів вводу-виводу для роботи двигуна. Отже, ми використовуватимемо зовнішній модуль, такий як модуль ULN2003, як драйвер крокового двигуна.
У цьому проекті ми будемо використовувати мікросхему драйвера двигуна ULN2003. Схема контактів ІС наведена нижче:
Виводи (IN1 - IN7) - це вхідні виводи для підключення виходу мікроконтролера, а OUT1 - OUT7 - відповідні вихідні висновки для підключення вхідних крокових двигунів. COM отримує позитивну напругу джерела, необхідну для вихідних пристроїв та для зовнішнього джерела живлення.
Кругова діаграма
Схема схеми взаємодії крокового двигуна з ARM-7 LPC2148 наведена нижче
ARM7-LPC2148 з мікросхемою драйвера двигуна ULN2003
Виводи GPIO LPC2148 (P0.7 - P0.10) розглядаються як вихідні висновки, які з'єднані з вхідними виводами (IN1-IN4) IC ULN2003.
LPC2148 Шпильки |
ШИПИ ULN2003 IC |
P0.7 |
IN1 |
P0.8 |
IN2 |
P0.9 |
IN3 |
С.10 |
IN4 |
5 В |
COM |
GND |
GND |
З'єднання мікросхеми ULN2003 із кроковим двигуном (28BYJ-48)
Вихідні штирі (OUT1-OUT4) ULN2003 IC підключені до штифтів крокових двигунів (синій, рожевий, жовтий та оранжевий).
ULN2003 IC PINS |
ШИПКИ КРОКОВОГО МОТОРА |
ВИХІД1 |
СИНІЙ |
ВИХІД2 |
РОЗОВИЙ |
ВИХІД3 |
ЖОВТИЙ |
ВИХІД4 |
ПОМАРАНКОВИЙ |
COM |
ЧЕРВОНИЙ (+ 5 В) |
Світлодіоди з IN1 до IN4 ULN2003
Чотири світлодіодні (LED1, LED2, LED4, LED 4) анодні штифти з'єднані зі штифтами IN1, IN2, IN3 та IN4 ULN2003 відповідно, а катод світлодіодів підключений до GND, що позначає імпульси від LPC2148. Ми можемо відзначити схему поданих імпульсів. Візерунок показаний у демонстраційному відео, доданому в кінці.
Програмування ARM7-LPC2148 для крокового двигуна
Для програмування ARM7-LPC2148 нам потрібен інструмент keil uVision & Flash Magic. Ми використовуємо USB-кабель для програмування ARM7 Stick через порт Micro USB. Ми пишемо код за допомогою Keil і створюємо шістнадцятковий файл, а потім шістнадцятковий файл перепрошивається на ARM7 за допомогою Flash Magic. Щоб дізнатись більше про встановлення keil uVision та Flash Magic та їх використання, перейдіть за посиланням Початок роботи з мікроконтролером ARM7 LPC2148 та запрограмуйте його за допомогою Keil uVision.
Повний код управління кроковим двигуном за допомогою ARM 7 наведено в кінці цього посібника, тут ми пояснюємо кілька його частин.
1. Для використання методу FULL STEP-ONE PHASE ON нам потрібно включити команду нижче. Тому ми використовуємо наступний рядок у програмі
беззнаковий знак за годинниковою стрілкою = {0x1,0x2,0x4,0x8}; // Команди для обертання за годинниковою стрілкою unsigned char проти годинникової стрілки = {0x8,0x4,0x2,0x1}; // Команди для обертання проти годинникової стрілки
2. Наступні рядки використовуються для ініціалізації контактів PORT0 як вихідних та встановлення їх у LOW
PINSEL0 = 0x00000000; // Встановлення контактів PORT0 IO0DIR - = 0x00000780; // Встановлення штифтів P0.7, P0.8, P0.9, P0.10 як ВИХІД IO0CLR = 0x00000780; // Встановлення P0.7, P0.8, P0.9, P0.10 штифтів ВИХІД як НИЗЬКИЙ
3. Встановіть виводи PORT (P0.7 до P0.10) HIGH відповідно до команд за годинниковою стрілкою, використовуючи це для циклу із затримкою
для (int j = 0; j
Те саме для анти-годинника мудрого
для (int z = 0; z
4. Змініть час затримки, щоб змінити швидкість обертання крокового двигуна
затримка (0x10000); // Змініть це значення, щоб змінити швидкість обертання (0x10000) -Повна швидкість (0x50000) -Отримується повільно (0x90000) -Отримується повільно, ніж попередня. Отже, збільшуючи затримку, ми знижуємо швидкість обертання.
5. Кількість кроків за одне повне обертання можна змінити за допомогою наведеного нижче коду
int no_of_steps = 550; // Змінюємо це значення для необхідної кількості обертів кроків (550 дає одне повне обертання)
Для мого крокового двигуна я отримав 550 ступенів для повного обертання та 225 для половинного обертання. Тож змініть його відповідно до своїх вимог.
6. Ця функція використовується для створення часу затримки.
void delay (unsigned int value) // Функція генерування затримки { unsigned int z; для (z = 0; z
Повний код із демонстраційним відео наведено нижче.