Підключення крокового двигуна до "Ардуїнов"

8 0 Новини високих технологій

При роботі з Arduino багато радіоаматори користуються кроковими двигунами. Але що ж це таке? Як його підключати? А як працювати з ним? І взагалі, де вони використовуються? Відповіді на всі ці питання будуть представлені в цій статті.

Про крокових двигунах

Можна сказати, що крокові двигуни є основою точної робототехніки. Вони застосовуються скрізь завдяки їх точності. Справа в тому, що крокові двигуни при повороті вала використовують маленькі кроки, це дозволяє їм бути точними при роботі. Саме завдяки "кроків" їх і почали називати кроковими двигунами. Взяти, наприклад, принтер. Там теж використовується кроковий двигун. Або який-небудь маніпулятор, де точність дуже важлива, адже якщо навіть робот зробить помилку на половину градуси - вже все піде не так. Аналогом крокових двигунів можна вважати сервоприводи, так як при їх програмуванні також вказується градус повороту, однак серво поступаються кроковим двигунів в точності. Але є безліч ситуацій, де використання сервоприводів доцільно, ніж використання "шаговиков".


Підключення крокового двигуна до "Ардуїнов"

Кроковий двигун 28BYJ-48

Серед безлічі вибору крокових двигунів слід звернути увагу саме на кроковий двигун моделі 28BYJ-48. Коштує вона досить дешево, всього лише 100-150 рублів за штуку. Як виглядає кроковий двигун для "Ардуїнов", можна побачити на фото нижче.
Підключення крокового двигуна до "Ардуїнов"
Багато радіоаматори віддають перевагу саме цієї моделі з-за низької ціни і гарної точності. Тип мотора - уніполярний, число фаз - 4. Споживає кроковий двигун для "Ардуїнов" від 5 до 12V. Однак рекомендується використовувати 6-7V. Двигуни можуть працювати в двох режимах: полношаговый і полушаговый. Рекомендується для використання в полушаговом режимі. Це 5625 градуси на крок. При полношаговом на крок дається 1125 градуси. Вага двигуна - 30 грам.


Драйвер ULN2003

Для підключення крокового двигуна до "Ардуїнов" використовується спеціальний драйвер. Одним з таких є ULN2003. Пов'язано це з тим, що при роботі крокового двигуна досить потужна сила струму, яку контакти Arduino просто не можуть витримати. Для цього і використовується драйвер. Сам двигун підключається до драйвера, переплутати все майже неможливо, так як є ключ, який показує, як саме треба підключити. Ну, і далі вже сам драйвер підключається до Arduino для подальшої роботи. Найчастіше у магазинах драйвер вже йде в комплекті з кроковим двигуном. Однак є випадки, коли двигуни продаються без драйвера, на це треба звертати увагу. Якщо купувати на Aliexpress, то краще працювати тільки з перевіреними продавцями, у яких багато відгуків.
Підключення крокового двигуна до "Ардуїнов"

Підключення

Як вже говорилося вище, для роботи крокового двигуна з "Ардуїнов" використовується драйвер. Для живлення двигуна слід використовувати інший джерело, щоб не перевантажувати плату Arduino. А інші висновки, починаючи з IN1 до IN4 підключаємо до будь-яким цифровим контактів на "Ардуїнов". Як можна помітити, підключення крокового двигуна до "Ардуїнов" досить просте. На фотографії можна побачити приклад підключення.
Підключення крокового двигуна до "Ардуїнов"

Управління

Для управління кроковим двигунів з "Ардуїнов" у складі середовища розробки вже є готова бібліотека, яка дозволяє управляти двигуном, використовуючи маленький програмний код. Якщо б його не було, довелося б при допомозі спеціальної таблиці складати і розраховувати рух двигуна, що зайняло б дуже багато часу. Проте є і мінус цієї бібліотеки. Справа в тому, що вона дає можливість використання двигуна лише в полношаговом режимі. Хоча спочатку рекомендується використання "шаговика" в полушаговом. Але для простих проектів з використанням одного крокового двигуна ця бібліотека підійде. Називається вона Stepper. Можна написати код для управління кроковим двигуном з "Ардуїнов". Скетч виглядає так, як на прикладі нижче.


#include

const int stepsPerRevolution = 200;

Stepper myStepper(stepsPerRevolution, 891011); //підключення до пинам 811 на Ардуїнов

void setup() {

myStepper.setSpeed(60); //установка швидкості обертання ротора

Serial.begin(9600);

}

void loop() {

//Функція чекає, поки надійде команда перетворює текст і подає сигнал на двигун для його обертання на вказану кількість кроків.

Serial.println("Move right"); //за годинниковою стрілкою

myStepper.step(stepsPerRevolution);

delay(1000);

Serial.println("Move left"); //проти годинникової стрілки

myStepper.step(-stepsPerRevolution);

delay(1000);

}


Це приклад із самої бібліотеки для керування кроковими двигунами. Ви можете самі вказати, яку кількість кроків потрібно виконати, а також з якою швидкістю. Розглянемо код більш детально. На самому початку підключається бібліотека Stepper, про яку вже було сказано вище. Після чого створюється масив з кількістю кроків, які повинен виконати кроковий двигун. Далі створюється змінна типу Stepper з даними, використовуючи які контакти підключений кроковий двигун до "Ардуїнов". Встановлюється швидкість і вже сам процес руху крокового двигуна. Але якщо ж ви бажаєте використовувати більше одного двигуна в своєму проекті і працювати в полушаговом режимі, то можна застосовувати сторонні бібліотеки. Одним з таких є Accel Stepper. Ця бібліотека дуже добре показала себе в роботі, має багато можливостей. При роботі з нею кроки точні, двигуни не гріються. Загалом, рекомендовано до використання. Для установки бібліотеки її необхідно скачати і перенести вміст архіву в папку Libraries в кореневій папці Arduino. У цій статті було розглянуто приклад підключення крокового двигуна до "Ардуїнов", а також його управління за допомогою програмного коду. Кожен радіоаматор повинен хоч раз у своїх проектах спробувати працювати з ним!