Arduino і кроковий двигун 28byj-48

Arduino і кроковий двигун 28byj-48

Існує величезна різноманітність крокових двигунів різних розмірів і характеристик. Щоб керувати ними потрібно спеціальний пристрій - драйвер.

Arduino і кроковий двигун 28byj-48

У цій статті ми будемо використовувати:

Отже, завдання: підключити до arduino uno кроковий двигун і покриття їм.

Здавалося б, кількість проводів, що йдуть до двигуна, може ввести в ступор, навіщо так багато і куди все це встромляти? Насправді, нічого складного ні в підключенні, ні в коді. І зараз ми з вами в цьому переконаємося!

Підключаємо двигун до драйверу, а драйвер, в свою чергу до плати arduino до цифрових пінам 2, 3, 4, 5 і до харчування (5В) як показано на фото.

Arduino і кроковий двигун 28byj-48

Настійно рекомендую в своїх проектах використовувати окреме харчування для двигуна (від іншого блоку живлення, а не від arduino), тому як якщо дати серйозне навантаження на двигун - на платі arduino може перегрітися мікросхема, що відповідає за харчування - що не є добре!

Arduino і кроковий двигун 28byj-48

Щоб керувати двигуном, скористаємося бібліотекою Stepper, яку не потрібно ні від куди качати - вона входить в поставку Arduino IDE - середовище розробки, в якій ми пишемо код для arduino. Як параметри передаємо кількість кроків повного обороту і піни, до яких підключаємо двигун.

Методом setSpeed ​​() можна керувати швидкістю, а step () відповідає за переміщення вала на задану кількість кроків (якщо значення негативне - вал крутиться у зворотний бік).

Повний код програми:

Можливо, вам будуть потрібні файли:

#include
// змінити кількість кроків для вашого мотора
#define STEPS 4078
Stepper_28BYJ stepper (STEPS, 2, 3, 4, 5);
int but = 0;
int butl = 8;
int butr = 9;
void setup ()
// встановимо швидкість обертання 3 об / хв
stepper.setSpeed ​​(5);
pinMode (butl, INPUT);
pinMode (butr, INPUT);
>
void loop ()
if (digitalRead (butl) == HIGH) but = 1;
delay (100);
>
if (digitalRead (butr) == HIGH) but = 2;
delay (100);
>

switch (but) case 1:
stepper.step (STEPS);
but = 0;
break;
case 2:
stepper.step (-STEPS);
but = 0;
break;
>
>

butl - кнопка вліво (8) і butr - кнопка вправо (9)

Схожі статті