Arduino Motor Shield L298P
Зміст
Опис
L298P Motor Shield - це плата драйвера двигунів постійного струму, що використовує мікросхему потужного драйвера електродвигунів L298P, яка може безпосередньо управляти двома двигунами постійного струму; струм через навантаження - до 2 ампер. Вихідні інтерфейси управління двигунами використовують 8 високошвидкісних діодів Шоттки в якості захисту. Дана плата може бути встановлена безпосередньо на плату Arduino.
Цей Шилд особливо стане в нагоді тим, хто збирає роботів і робоплатформи з використанням колекторних двигунів. На платі, крім самого драйвера двигунів L298, зручно розміщені роз'єми для підключення Bluetooth модуля, сервоприводу і датчиків. Зручне підключення, гарна якість монтажу вигідно відрізняють даний Шилд від аналогічних.
Характеристики
- Вхідна напруга логіки VD: 5В.
- Вхідна напруга для моторів: VIN 6.5-12 В, PWR IN 4.8-24В.
- Струм споживання логіки ISS: ≤ 36мА.
- Струм споживання моторів IO: ≤ 2А.
- Максимальна потужність: 25 Вт (T = 75°C).
- Електричні рівні вхідних сигналів:
- Логічна одиниця: 2.3 В ≤ Vin ≤ 5 В.
- Логічний нуль: -0.3 В ≤ Vin ≤ 1.5.
- Робоча температура: -25...130°C.
Особливості
- Основою модуля є мікросхема драйвера двигунів L298P, тому ви можете використовувати цифровий інтерфейс вводу/виводу D10, D11, D12, D13 без додаткових складних схем підключення.
- На платі встановлений зумер (D4), який можна використовувати, наприклад, для формування сигналу тривоги.
- На платі передбачений спеціальний роз'єм для модулів Bluetooth, що дозволяє встановлювати модулі без додаткових провідників безпосередньо на плату.
- На платі виведений інтерфейс шести, незадіяних, цифрових портів D2, D3, D5, D6, D7, D9.
- На платі виведений інтерфейс шести, незадіяних, аналогових портів A0, A1, A2, A3, A4, A5.
- На платі встановлені світлодіоди для індикації прямого або зворотнього напрямку обертання.
Інтерфейси
Габаритні розміри
На платі розташовані
- Драйвер двигунів L298P підключений до пінів D10, D11, D12 і D13 без необхідності використання додаткових проводів.
- Звуковий випромінювач на піні D4 на який Ви можете виводити сигнал тривоги.
- Цифровий ШІМ вихід D9 виведений на 3-х піновий роз'єм для підключення сервоприводу.
- Цифровий вхід / вихід D2 виведений на 3-піновий роз'єм для підключення датчика.
- Зручні роз'єми для підключення двигунів, що дозволяє підключити одночасно два колекторних двигуна як піновим роз'ємом так і під гвинт.
- Два роз'єму різних типів для підключення bluetooth модуля.
- 7 цифрових, що не використовуються Шілд, входів / виходів: D2, D3, D5, D6, D7, D9.
- 6 аналогових входів виведені на 3-х піновий раз'єм для зручного підключення аналогових і цифрових датчиків: A0, A1, A2, A3, A4, A5.
- Індикатори стану виходів драйвера.
- Перемичка "OPT" для гнучкого конфігурування живлення силовою частиною драйвера. При встановленій перемичці використовується живлення Vin контролера для живлення драйвера двигунів.
- Кнопка скидання контролера.
- Виводи контролера підключені до наступних виводів драйвера:
- 10 - Enable A - ШИМ управління двигуном А.
- 11 - Enable B - ШИМ управління двигуном В.
- 12 - Input 1 – Напрямок обертання двигуна А.
- 13 - Input 3 - Напрямок обертання двигуна В.
Схема
Приклад підключення
1.Матеріальна підготовка.
- L298 Driver Shield для Arduino
- Arduino Uno Board та USB
- 2x двигуни
2.Встановлення L298 Driver Shield в основну плату Arduino Uno.
3.Апаратне підключення.
Зібравши тестову схему, як показано на малюнку вище, ми можемо керувати напрямком обертання (пряме або зворотне), зупинкою двигуна і швидкістю обертання (за допомогою ШІМ) двох двигунів постійного струму.
Виводи E1 і E2 мікросхеми, що управляє двома двигунами, відповідають за управління швидкістю і підключені до виводи 10 і 11 плати Arduino. А виводи M1 і M2, керуючі напрямком обертання, підключені до виводи 12 і 13 плати Arduino.
4.Програма
Підключіть Arduino до USB-порту комп'ютера та відкрийте середовище розробки Arduino.
Щоб зробити що-небудь, потрібно ініціалізувати моторний канал, перемикаючи три параметри:
- Спочатку потрібно встановити напрямок двигуна (полярність джерела живлення), встановивши його як HIGH, або LOW.
- Потім потрібно роз'єднати гальмівний штифт для моторного каналу, встановивши його на LOW.
- Нарешті, щоб двигун почав рухатися, потрібно встановити швидкість, надіславши команду PWM (analogWrite) на відповідний штифт.
Якщо ви не зробите всі ці три дії, двигун не включиться.
Вихідний код програми:
1) int E1 = 10;
2) int M1 = 12;
3) int E2 =11;
4) int M2 = 13;
5)
6) void setup()
7) {
8) pinMode(M1, OUTPUT);
9) pinMode(M2, OUTPUT);
10) }
11)
12) void loop()
13) {
14) {
15) int value;
16) for(value = 0 ; value <= 255; value+=5)
17) {
18) digitalWrite(M1,HIGH);
19) digitalWrite(M2, HIGH);
20) analogWrite(E1, value);
21) analogWrite(E2, value);
22) delay(30);
23) }
24) delay(1000);
25) }
26)
27) {
28) int value;
29) for(value = 0 ; value <= 255; value+=5)
30) {
31) digitalWrite(M1,LOW);
32) digitalWrite(M2, LOW);
33) analogWrite(E1, value);
34) analogWrite(E2, value);
35) delay(30);
36) }
37) delay(1000);
38) }
39) }
5.Результат на відео
Принцип роботи мікросхеми L298
Мікросхема L298 представляє собою подвійний повний мостовий драйвер, застосовуваний для управління двигунами постоянного струму і кроковими двигунами. Завдяки наявності двох мостів мікросхема может управляти двома двигунами постійного струму, причому незалежно, чи одним біполярним чи уніполярним кроковим двигуном. При управлінні двигуном постійного струму мікросхема може змінювати напрямок струму в двигуні, реверсуючи його чи повністю відключити живлення. При управленні кроковим двигуном можливе також управління напрямком руху. Однак ці функції не можуть бути реалізовані без керуючого пристрою, підключеного на вход мікросхеми. Тому вона і носит назву – драйвер, тобто підсилювач.
Щоб зрозуміти як працює мостовий драйвер, розглянемо спрощену схему включення одної обмотки біполярного двигуна (аналогічно включається двигун постійного струму), де ключові елементи замінені виключателями.
В верхній частині рисунка зображено міст зі всіма виключателями, встановленими в виключене положення. В цьому випадку струм через обмотку відсутній.
Внизу зліва зображена ситуація, коли включений верхній лівий і нижній правий виключателі. Синім кольором нарисовано шлях протікання струму.
В цьому випадку напруга прикладена до обмотки так, що плюс находиться зліва, а мінус – справа. Допустим, що двигун в цьому випадку обертається за годинниковою стрілкою.
Якщо виключити ці ключі, а включити лівий нижній і правий верхній, як на правому нижньому рисунку, напруга до обмотки буде прикладена в зворотній полярності, тобто мінус зліва, плюс – справа. Шлях протікання струму вказаний червоним кольором. А оскільки змінився напрямок протікання струму, то і двигун поміняє напрямок і стане обертатися проти ходу годинникової стрілки. З кроковим двигуном ситуація аналогічна. Оскільки положення ротора крокового двигуна не тільки від того, до якої обмотки прикладена напруга, но і від того, в якій полярності, в цих двох випадках ротор двигуна займе два різних положення. Щоб зрозуміти, як це відбувається, порівняємо ротор стрілкою компаса і розміщеним рядом зі стрілкою електромагнітом:
При зміні напрямку протікання струму в обмотці стрілка також повернется в протилежному напрямку.
Можливо, у спостережливого читача виникне питання: А що буде якщо замкнути, наприклад, два правих, або два лівих ключа? По ідеї повинно бути коротке замикання!
Но це не відбувається, тому що в мікросхемі L298 ключами управляє спеціальна схема, яка виключає такий катастрофічний збіг подій.
Настав час подивитись на схему половинки L298.
Вхід «En» - це вхід дозволу роботи ключей. Для нормальної роботи на цьому вході повинна бути присутня напруга «лог 1», тоді логічні елементи можуть пропускати сигнали управління від входу до ключів.
Зверніть увагу на логічні елементи,які керують ключами. Не дивлячись на то, що лівій чи праві половинці ключа управління іде по одному входу, нижні схеми співпадіння мають інверсний вхід, а верхні - прямий. Це призведе до того, що якщо на вхід управлення In1 або In2 буде подано напругу «лог 1», то відкриються тільки верхні транзистори ключів. І навпаки, якщо на вході буде подано напругу «лог 0», то будут відкриті тільки нижні транзистори.
В двох цих випадках струм через обмотку відсутній і виключена ситуація, коли включені обидва праві або обидва ліві транзистор.
Для того, щоб струм через обмотку появився, на виходах Out1 і Out2 повинен бути різний потенціал. Це відбудеться в тому випадку якщо справа відкритий верхній, а зліва – нижній транзистори. Тоді на виході Out 1 появиться «плюс», а на виході Out 2 – «мінус» джерела живлення. Но для цього потрібно подати на вхід In1 напругу «лог 1», а на вхід In2 – напругу «лог 0».
Для того, щоб поміняти напрямок струму в обмотці потрібно поміняти рівні напруги на входах, тобто подати на вхід In1 напругу «лог 0», а на вхід In2 – напругу «лог 1».
Для одного двигуна постійного струму достатньо тільки одної половини мікросхеми, а для крокового двигуна необхідно використати два мости мікросхеми, підключаючи обмотки біполярного двигуна кожну до свого мосту.
У випадку з уніполярними двигунами кожна із обмоток підключається до одної половинки мосту. Розглянем на спрощенній схемі роботу одної половинки мікросхеми.
Зверніть увагу, що на верхньому рисунку, тобто якщо загальний вивід обмоток КД підключається до «плюсу», включенням обмоток управляют нижні ключі. Вернемся на схему L298 і побачимо, що нижній ключ буде замкнутий тільки в тому випадку якщо на вхід In 1 або In2 подано рівень «лог 0», тобто для цієї схеми активний рівень – низький.
А для нижньої схеми, де загальні виводи обмоток підключаються до мінусу, керуючими являются верхні ключі, а вони замикаються, якщо на входах In 1 або In2 діє високий рівень, тобто напруга «лог 1». Це необхідно обов'язково враховувати при розробці своїх схем.
Тепер настав час розглянути повну схему L298.
Як бачимо половинки повністю ідентичні, логіка управління описана вище також одинакова для двох мостів. Як уже було сказано вище обмотки біполярного двигуна підключаються до правої і до лівої половинок моста. Розглянемо логіку управління мікросхемою. Для управління двома двигунами постійного струму потрібно просто підключити виводи першого двигуна до виходів Out1 і Out2, а виводи другого двигуна до виводів Out3 і Out 4. Міняючи рівні вхідних сигналів на входах In1 і In2, управляємо першим двигуном, а міняючи рівні In3 і In4, управляємо другим двигуном.
важке стоїть діло з кроковим двигуном. розглянемо для початку біполярний двигун. Одну обмотку цього двигуна підключаємо до виходів Out1 і Out2, а другу до виходів Out3 і Out4. Нагадаю, що в найпростішому випадку обмотки двигуна розміщені перпендикулярно. Для спрощення знову порівняємо ротор крокового двигуна з стрілкою компасу.
На рисунку зображено положення стрілки, яке вона прийме при вказаній полярності напруги на виходах мікросхеми L298.
А тепер основні правила для L298:
- Щоб вихід OUT-х був підключений до плюсу джерела живлення, на вхід IN-х повинна бути подана «Лог 1».
- Щоб вихід OUT-х був підключений до мінусу живлення, на вхід IN-x повинен бути поданий «Лог 0».
- Щоб обезструмити обмотку, підключену до виходів OUT-y OUT-z , на входах IN-y і IN-z повинні бути присутні одинакові рівні (або «Лог1» або «Лог0»). Аналогічно обезструми обмотку можно і встановленням рівня «Лог 0» на вході EN, тої половини мікросхеми, до якої підключена ця обмотка.
Скориставшись цим правилом, складемо таблицю вхідних рівнів для 4-х положень стрілки:
Тепер зверніть увагу на послідовність положень. Стрілка нібито обертається за ходом стрілки годинника. Точно так же буде обертатись і ротор крокового двигуна. Щоб ротор крутився безперервно, потрібно після того, як він займе 4-е положення, знову подати на входи мікросхеми рівні, вдповідні 1-му положенню, потім 2-му, потім 3-му и т.д.
Якщо вам необхідно змінити напрямок обертання, наприклад з положення 3, то то наступним кроком, тобто наступною комбінацією напруг на входах повинна бути комбінація, відповідно положенню з номером 2, потім 1, потім 4 и т.д.
Ці комбінації відповідають так званому півкроковому режиму.
Півкроковий режим характеризується тим, що в паузах між повними кроками живлення подається зразу на дві обмотки, тобто обмотку з попереднім положенням і обмотку з наступним положенням. Це приводить до того, що ротор під дією електромагнітних сил двох обмоток займе деяке середнє між кроками положення. Якщо струми в обмотках суворо рівні, то це положення буде рівне посередині між попереднім і наступним.
Складемо таблицю для півкрокового режиму.
Синім кольором позначені входи, які в даний момент відключають «свою» обмотку. Це аналогічно установці рівня «Лог 0» на відповідному вході «ЕN» Для уніполярного двигуна правила розподілення вхідних рівнів такіж як і в випадку підключення біполярного. Виходячи із того можна зробити висновок, що остання таблиця буде відповідати підключенню уніполярного двигуна в тому випадку, якщо спільні виводи обмоток підключені до мінусового проводу. Якщо необхідно підключити загальний вивід обмоток уніполярного двигуна до плюсового проводу, то в таблиці потрібно просто замінити нулі на одиниці і навпаки, за виключенням позначених синім кольором. Зміна напрямку обертання проводиться так же як і у випадку з повнокроковим режимом.
Підключення драйвера до мікросхеми ТМ7 в контролері VRI-CNC. Забезпечує повнокроковий і півкроковий режими. Для підключення уніполярного двигуна необхідно спільні виводи обмоток з'єднати з корпусом, а другі виводи обмоток підключити до виводів 2,3,13,14 мікросхеми L298.
При умові правильного виконання монтажу схема налаштування не потребує. Підключення ТМ7 до LPT порту здійснюється як зазвичай для контролера VRI-CNC. Резистори в схемі повинні бути потужністю не менше 0,125 Ват, діоди - будь - які малопотужні низькочастотні. Для збільшення швидкості обертання крокових двигунів рекомендується включити послідовно з обмотками резистори.