- Крокові двигуни:
- Розрахунок кроків на оберт для крокового двигуна:
- Навіщо нам потрібні модулі драйверів для крокових двигунів?
- Схема та пояснення регулювання положення крокового двигуна Arduino:
- Код для Arduino Board:
- Робота крокового двигуна з Arduino:
Крокові двигуни все більше займають свої позиції у світі електроніки. Починаючи від звичайної камери спостереження і закінчуючи складними верстатами з ЧПУ / роботом, ці крокові двигуни всюди використовуються як виконавчі механізми, оскільки вони забезпечують точне управління. Кроковий двигун - це безщітковий, синхронний двигун, який здійснює повне обертання на кілька етапів. У цьому посібнику крокового двигуна Arduino ми дізнаємося про найбільш часто доступний кроковий двигун 28-BYJ48 та про те, як взаємодіяти з Arduino за допомогою модуля крокового двигуна ULN2003.
Крокові двигуни:
Давайте подивимось на цей кроковий двигун 28-BYJ48.
Добре, отже, на відміну від звичайного двигуна постійного струму, у нього виходить п’ять проводів усіх вигадливих кольорів, і чому це так? Щоб зрозуміти це, нам слід спочатку знати, як працює степпер і в чому його особливість. Перш за все крокові двигуни не обертаються, вони ступають, і тому вони також відомі як крокові двигуни. Це означає, що вони рухатимуться лише по одному кроку за раз. У цих двигунах є послідовність котушок, і ці котушки повинні бути під напругою певним чином, щоб двигун обертався. Коли кожна котушка подається під напругу, двигун робить крок, і послідовність включення змусить двигун робити безперервні кроки, роблячи таким чином його обертання. Давайте подивимось на котушки, що знаходяться всередині двигуна, щоб точно знати, звідки беруться ці дроти.
Як бачите, двигун має уніполярну 5-свинцеву котушку. Існує чотири котушки, які повинні отримувати напругу в певній послідовності. Червоні дроти будуть постачатися з напругою + 5 В, а решта чотири дроти будуть витягнуті на землю для спрацьовування відповідної котушки. Ми використовуємо мікроконтролер, такий як Arduino, підживлює ці котушки в певній послідовності і змушує двигун виконувати необхідну кількість кроків.
Отже, чому цей двигун називається 28-BYJ48 ? Серйозно !!! Не знаю. Немає технічної причини для того, щоб цей двигун був названий так; можливо, нам слід зануритися набагато глибше в це. Давайте розглянемо деякі важливі технічні дані, отримані з технічного паспорта цього двигуна на малюнку нижче.
Це голова, повна інформації, але нам потрібно розглянути кілька важливих, щоб знати, який тип степпера ми використовуємо, щоб ми могли ефективно його запрограмувати. Спочатку ми знаємо, що це кроковий двигун на 5 В, оскільки ми подаємо напругу на Червоний провід на 5 В. Тоді ми також знаємо, що це чотирифазний кроковий двигун, оскільки в ньому було чотири котушки. Тепер передавальне число передається рівним 1:64. Це означає, що вал, який ви бачите зовні, здійснить одне повне обертання, лише якщо двигун всередині обертається 64 рази. Це пов’язано з передачами, які пов’язані між двигуном та вихідним валом, і ці шестерні допомагають збільшити крутний момент.
Іншими важливими даними, які слід помітити, є Кут кроку: 5,625 ° / 64. Це означає, що двигун, працюючи в 8-ступінчастій послідовності, рухатиметься на 5,625 градусів за кожен крок, і йому буде потрібно 64 кроки (5,625 * 64 = 360), щоб виконати один повний оберт. Ви можете дізнатись більше про роботу крокових двигунів з ARM LPC2148, мікроконтролером ATMega16, MSP430.
Розрахунок кроків на оберт для крокового двигуна:
Важливо знати, як розрахувати кроки на оберт для вашого крокового двигуна, оскільки лише тоді ви можете ефективно його запрограмувати.
В Arduino ми будемо працювати з двигуном в 4-ступінчастій послідовності, тому кут кроку буде 11,25 °, оскільки він становить 5,625 ° (наведено в технічному паспорті), для 8-ступінчастої послідовності він буде 11,25 ° (5,625 * 2 = 11,25).
Кроки за оберт = 360 / кут кроку
Тут 360 / 11,25 = 32 кроки за оборот.
Навіщо нам потрібні модулі драйверів для крокових двигунів?
Більшість крокових двигунів працюватимуть лише за допомогою драйвера. Це пов’язано з тим, що модуль контролера (у нашому випадку Arduino) не зможе забезпечити достатньо струму зі своїх штифтів вводу-виводу для роботи двигуна. Отже, ми використовуватимемо зовнішній модуль, такий як модуль ULN2003, як драйвер крокового двигуна. Існує безліч типів драйверів, і рейтинг модуля змінюватиметься залежно від типу використовуваного двигуна. Основним принципом для всіх модулів драйверів буде подача / поглинання достатнього струму для роботи двигуна.
Схема та пояснення регулювання положення крокового двигуна Arduino:
Принципова схема для проекту управління кроковим двигуном arduino показана вище. Ми використовували кроковий двигун 28BYJ-48 та драйверний модуль ULN2003. Для живлення чотирьох котушок крокового двигуна ми використовуємо цифрові висновки 8,9,10 і 11. Драйверний модуль живиться від 5-контактного виводу плати Arduino.
Але підключіть драйвер до зовнішнього джерела живлення, коли ви підключаєте деяке навантаження до степового двигуна. Оскільки я просто використовую двигун з демонстраційною метою, я використав рейку + 5 В плати Arduino. Також не забудьте підключити землю Arduino до землі модуля Diver.
Код для Arduino Board:
Перш ніж ми почнемо програмувати на нашому Arduino, давайте зрозуміємо, що насправді має відбуватися всередині програми. Як вже було сказано раніше, ми будемо використовувати метод послідовності з 4 кроків, тому для здійснення одного повного обертання у нас буде чотири кроки.
Крок |
Pin Енергійний |
Котушки під напругою |
Крок 1 |
8 і 9 |
А і В |
Крок 2 |
9 і 10 |
B і C |
Крок 3 |
10 і 11 |
C і D |
Крок 4 |
11 і 8 |
D та A |
Модуль драйвера матиме чотири світлодіоди, за допомогою яких ми можемо перевірити, яка котушка подається під напругу в будь-який момент часу. Відео, яке показує послідовність подачі енергії, можна знайти в кінці цього підручника.
У цьому посібнику ми збираємося написати код крокового двигуна arduino, і для цього ми запрограмуємо Arduino таким чином, щоб через послідовний монітор Arduino можна було ввести кількість кроків, які має зробити кроковий двигун. Повну програму можна знайти в кінці підручника, кілька важливих рядків пояснюються нижче.
Кількість кроків за оберт для нашого крокового двигуна була розрахована на 32; отже, ми вводимо це, як показано в рядку нижче
#define STEPS 32
Далі вам потрібно створити екземпляри, в яких ми вказуємо штирі, до яких ми підключили кроковий двигун.
Степпер кроковий (КРОКИ, 8, 10, 9, 11);
Примітка: Кількість штифтів спеціально не упорядкована як 8,10,9,11. Ви повинні слідувати тій самій схемі, навіть якщо ви змінюєте штифти, до яких підключений ваш двигун.
Оскільки ми використовуємо степ-бібліотеку Arduino, ми можемо встановити швидкість двигуна, використовуючи наведений нижче рядок. Швидкість може варіюватися від 0 до 200 для крокових двигунів 28-BYJ48.
stepper.setSpeed (200);
Тепер, щоб двигун рухався на крок, ми можемо використати наступний рядок.
stepper.step (val);
Кількість кроків, які потрібно перемістити, буде вказано змінною “val”. Оскільки у нас є 32 ступені і 64 як передавальне число, нам потрібно рухатись 2048 (32 * 64 = 2048), щоб зробити одне повне обертання.
Значення змінної “val” може вводити користувач за допомогою послідовного монітора.
Робота крокового двигуна з Arduino:
Після встановлення з'єднання апаратне забезпечення має виглядати приблизно так на малюнку нижче.
Тепер завантажте програму нижче у свій Arduino UNO та відкрийте послідовний монітор. Як обговорювалося раніше, нам доведеться зробити 2048 кроків, щоб зробити один повний оберт, тому, коли ми входимо в 2048, двигун зробить один повний оберт за годинниковою стрілкою, зробивши 2048 кроків. Для повороту проти годинникової стрілки просто введіть номер із позначкою «-» мінус. Отже, введення -1024 змусить двигун обертатися наполовину в напрямку проти годинникової стрілки. Ви можете ввести будь-які бажані значення, наприклад, якщо ввести 1, двигун зробить лише один крок.
Сподіваюся, ви зрозуміли проект і сподобалось його будувати. Повна робота проекту показана у відео нижче. Якщо у вас є якісь сумніви, розмістіть їх у розділі коментарів під нашим на наших форумах.