Мій перший проект

Перші "спроби пера"


L298N
    Я не сидів, склавши руки, і вже зібрав мій перший проект - "керування кроковим двигуном". Це дуже простий проект, адже він дозволяв здійснювати тільки певні маніпуляції з двигуном, тобто обертати його ротор як завгодно. Як вже було сказано вище - це не простий двигун, а кроковий, тому без мікроконтролера не обійтися.
    Зазвичай кроковий двигун має чотири виведення. Саме такий двигун є у мене.
Докладніше про крокові двигуни ви можете дізнатися тут та в YouTube.
  Для підключення я використав   драйвер L298NArduino Uno, сам двигун та акумулятор на 12В.
   Як ви могли замітити, у драйвера (зліва) є 6 контактів. IN1, IN2, IN3, IN4 це контакти на які подається сиглал від Arduino. Тобто, якщо подати на ці контакти сигнал від Arduino високого рівня, (5В) то цей сигнал піддасться обробці на силовому модулі (драйвері) і через сині парні контакти, які ви можете бачити на фото по боках, відправиться до двигуна. Це обумовлено специфікою будови Arduino.

QK1-3962


Arduino Uno R3


Акумулятор


 Як відомо, двигуни споживають порівняно великий струм і напругу, навідміну від контролера Arduino, тому не можна підключити двигун без комутатора до Arduino. (Arduino споживає напругу 5В і струм до 0.5А, а двигун 12В і струм до 2-4А. Це має велике значення, тому необхідно використовувати драйвер, інакше двигун не запуститься.)
    Інші контакти - Е1 і Е2 регулюють саме силу струму, яка йде безпосередньо до двигуна. Ця сила вказується програмно в діапазоні від 0 до 255. Від неї буде залежати в колекторному двигуні швидкість обертів, а в кроковому сила, з якою ротор проходить 1 крок.
    "+" Акумулятора потрібно під'єднати до контакту PWR на L298N, а "-" зробити спільним для Arduino і L298N, під'єднавши його до GND.
    Отже, перейдемо до програмної частини. Як я під'єднав контакти ви можете побачити з фото.
   Сам код або скетч, як його називають виглядає так:

int E1 = 3;
int E2 = 9;
int input1 = 10;
int input2 = 11;
int input3 = 4;
int input4 = 5;
int s = 10; //час між кроками
void setup()
{
 pinMode (E1, OUTPUT);
 pinMode (E2, OUTPUT);
 pinMode(input1,OUTPUT);
 pinMode(input2,OUTPUT);       //ініціалізація контактів
 pinMode(input3,OUTPUT);
 pinMode(input4,OUTPUT);
 analogWrite(E1,50); //сила струму на 1 і 2 контакт
 analogWrite(E2,50); //сила струму на 3 і 4 контакт
}
void loop()
{
//1 крок
digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
digitalWrite(input3,LOW);
digitalWrite(input4,HIGH);
delay(s);

//2 крок
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
digitalWrite(input3,LOW);
digitalWrite(input4,HIGH);
delay(s);

//3 крок
digitalWrite(input1,LOW);
digitalWrite(input2,HIGH);
digitalWrite(input3,HIGH);
digitalWrite(input4,LOW);
delay(s);

//4 крок

digitalWrite(input1,HIGH);
digitalWrite(input2,LOW);
digitalWrite(input3,HIGH);
digitalWrite(input4,LOW);
delay(s);
}

 За допомогою цього коду двигун буде крутитися безперервно в один бік. Напрям руху можна задавати, змінюючи контакти IN1 i IN2 або IN3 i IN4 місцями на силовій частині драйвера.
До зустрічі!

Комментариев нет:

Отправить комментарий