Допоможіть розробці сайту, ділитися статтею з друзями!

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

Вступ

Електрична машина постійного струму є однією з найпростіших в експлуатації, завдяки чому її так часто застосовують в пристроях радіоелектроніки та робототехніки. Така популярність обумовлена простотою харчування та управління - для цього подаються два полюси від джерела ЕРС (негативний і позитивний), і при протіканні струму по обмотках відбувається обертання валу. При зміні полярності двигун робить реверсивний рух.

У системах радіоелектроніки такі способи управління роботою двигуна отримали назву широтно-імпульсної модуляції (ШІМ). Такий процес характеризується зміною тривалості напруги, що подається або форми його сигналу.

Як можна змінювати швидкість обертання за допомогою ШІМ?

Застосовуючи спосіб ШІМ, ви робите поперемінно подачу і відключення напруги на обмотки двигуна з великою частотою. Частота імпульсів при цьому може досягати декількох кілогерц.

Величина середньої напруги, що подається на двигун, безпосередньо залежить від форми сигналу ШІМ. Форма сигналу, в свою чергу, визначається робочим циклом, який можна представити у вигляді відношення часу подачі сигналу до загального періоду (сумі часу подачі напруги і його відключення). В результаті виходить безрозмірна величина, яку висловлюють в процентному відношенні - скільки часу від загального періоду напруга подавалося на двигун. У слабкострумових системах на 5, 12, 24 або 36 В застосовується цикл на 25%, 50%, 75% і 100%.

Широтно-імпульсна модуляція

Управління двигуном за допомогою Arduino і згенерував сигналом ШІМ

Для запуску процесу плата генерує сигнал, який подається на обмотки двигуна. Щоб контролювати величину подається сигналу в робочу схему включається транзистор. Який включається в розрив мережі живлення, а на його базу подається керуючий імпульс від Arduino. Ставлячи певні параметри роботи набором команд для Arduino, транзистор буде переходити у відкрите, закрите або відкрите стан.

На малюнку нижче ви можете побачити приклад схеми, на якій харчування двигуна контролюється Arduino через транзистор. Як бачите, тут від ШІМ виходу подається сигнал на базу транзистора, а через його колектор і емітер буде подаватися напруга на обмотку.

Принципова схема управління dc мотором

Програмування Ардуіно може виконуватися за допомогою комп'ютера, для цього використовуються як спеціальні утиліти, так і класичні мови програмування. При програмуванні роботи пристрою ви можете використовувати стандартний набір команд, який надасть доступ до найбільш простим командам. Або збирати їх в комбінації для формування специфічної логіки роботи пристрою.

Приклад програмних команд для роботи вищенаведеної схеми включення Arduino ви можете завантажити за посиланням нижче. Застосовуючи їх, ви зможете управляти швидкістю обертання, поступово нарощуючи її до максимального значення, і так само плавно знижуючи до повної зупинки.

Повний скетч проекту:

Управління DC мотором за допомогою Arduino UNO (340 bytes, завантажено: 84)

Використовувані команди:

  • void setup - поле для установки робочого виходу з ШІМ порту;
  • void loop - поле для формування робочого процесу;
  • motorSpeed - задає швидкість обертання двигуна;
  • analogWrite - задає роботу конкретного висновку плати;
  • delay - встановлює величину часового проміжку.

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

Управління двигуном постійного струму з використанням Н-моста

Якщо розглянути принцип дії, то Н-міст являє собою логічну схему з чотирьох логічних елементів (релейного або напівпровідникового типу), здатних переходити в два стану (відкрите і закрите). В даному прикладі розглядається міст зібраний на напівпровідниках. Простим зміною попарного стану цих елементів двигун буде обертатися то в одну, то в іншу сторону без необхідності перемикання його контактів.

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

Схема H-моста

Подивіться на малюнок, у цій схемі управління живленням двигуна походить від висновків А і В, на які подається керуючий потенціал.

Принцип визначення напрямку обертання в Н-мосту відбувається наступним чином:

  • при подачі на бази транзисторів Q1 і Q4 імпульсу для відкриття переходу відбувається протікання струму по обмотках двигуна в одному напрямку;
  • при подачі на бази транзисторів Q2 і Q3 імпульсу для відкриття переходу струм буде протікати в протилежному напрямку, в порівнянні з попереднім і станеться реверсивний рух;
  • попарне відкриття транзисторів Q1 і Q3, Q2 і Q4 призводить до гальмування ротора;
  • відкриття транзисторів в послідовності Q1 і Q2 або Q3 і Q4 абсолютно неприпустимо, оскільки воно призведе до виникнення короткого замикання в ланцюзі.

Застосовуючи схему Н-моста для управління роботою двигуна постійного струму, ви зможете реалізувати повний набір операцій для електричної машини без необхідності перепідключення її висновків. З причини складності підбору транзисторів і підключення їх в схему Н-моста, набагато простіше використовувати вже існуючі драйвера, які мають таку функцію. Серед них найбільш популярними є драйвери L293D і L298N.

Порівнюючи обидва драйвера, слід зазначити, що L298N перевершує L293D як за параметрами роботи, так і за доступними опцій. Незважаючи на те, що L293D дешевша модель, L298N, зважаючи на значні переваг, став використовуватися куди частіше. Тому в даному прикладі ми розглянемо принцип управління двигуном за допомогою драйвера L298N і плати Arduino.

Що являє собою драйвер L298N?

Дана плата містить мікросхему і 15 виходів для генерації керуючих сигналів. Призначено для передачі сигналів до робочих елементів індуктивного типу - обмоткам двигуна, котушок реле і т.д. Конструктивно L298N дозволяє підключати в роботу до двох таких елементів, наприклад, через неї можна одночасно керувати двома кроковими двигунами.

На схемі нижче наведений приклад розподілу висновків L298N від робочої мікросхеми.

L298N. висновки
  • Vss - виведення живлення для логічних ланцюгів в 5В;
  • GND - нульовий висновок (він же корпус);
  • INPUT1, INPUT 2, INPUT 3, INPUT 4 - дозволяють плавно нарощувати і зменшувати швидкість обертання двигуна;
  • OUTPUT1, OUTPUT2 - висновки для харчування першої індуктивного навантаження;
  • OUTPUT3, OUTPUT4 - висновки для харчування другий індуктивного навантаження;
  • Vs - висновок для перемикання харчування;
  • ENABLE A, B - висновки, за допомогою яких здійснюється роздільне управління каналами, можуть встановлювати активний і пасивний режим (з регульованою швидкістю обертання і з встановленої);
  • CURRENT SENSING A, B - висновки для установки поточного режиму.

Принцип управління двигуном за допомогою Arduino і драйвера L298N

Завдяки наявності в драйвері L298N вбудованого моста дана плата дозволяє здійснювати одночасне керування відразу двома електричними машинами від двох пар висновків. Логічна схема в цьому пристрої працює від напруги в 5В, а харчування самих електричних машин можна здійснювати до 45В включно. Максимально допустимий струм для одного каналу плати становить 2А.

Як правило, цей драйвер має модульне виконання, за рахунок чого в комплект модуля вже включені робочі елементи, висновки і роз'єми, необхідні для передачі керуючих сигналів. Приклад такого драйвера показаний на малюнку нижче:

Приклад драйвера L298N

Тепер розберемо, як здійснюється управління двигуном за допомогою драйвера L298N. Підключення двигуна проводиться до гвинтових клемним затискачів - по парі для харчування кожного моторчика. Решта клемні затискачі призначені для подачі живлення плюс і мінус, а також отримання зниженої напруги (на них подається певний рівень напруги живлення, від якого працюють двигуни, а внутрішній перетворювач знижує його до 5В для власних логічних ланцюгів). Штекерні висновки плати здійснюють широтно-імпульсну модуляцію при формуванні робочих сигналів.

Затискачі, куди підключати мотори

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

Важливим моментом для отримання 5В від цього клемного виведення є установка чорної перемички, яка відповідає за перетворення відмінного від 5 В рівня напруги, за умови, що його рівень нижче 12В. Якщо рівень напруги живлення вище 12В, перемичку необхідно зняти, так як внутрішній перетворювач на нього не розрахований, а сама плата повинна живитися від 5В через третій висновок цього ж клемника.

Простий приклад роботи Arduino з драйвером L298N

Зараз ми розглянемо приклад простої схеми спільного використання Arduino і L298N. Такий варіант дозволяє керувати швидкістю обертання валу і її оприлюдненням у двигуна постійного струму. Для цього задається спеціальна програма на ПК, яка буде визначати генерацію ШІМ сигналу від L298N і напрямок протікання електричного струму через Н-міст. Зрозуміло, для формування схеми будуть потрібні ще кілька додаткових компонентів, які дозволять поєднати між собою драйвер, Ардуіно, комп'ютер і двигуни.

Схема спільного використання Arduino і L298N

Перелік необхідних компонентів для збірки схеми:

  • Arduino UNO - найбільш проста модель з лінійки, але його функціоналу буде більш ніж достатньо. Якщо ви використовуєте більш просунутий варіант, то він також добре впорається з цим завданням.
  • Драйвер L298N - не самий доступний драйвер, але замінити його іншим не вийде, так як принцип роботи схожих моделей може докорінно відрізнятися.
  • Двигун на 12 В - в даному прикладі використовується електрична машина постійного струму.
  • Потенціометр 100 кОм.
  • Кнопка для комутації ланцюга.
  • Джерело живлення 12 В - може підійти будь-який варіант, включаючи кілька пальчикових батарейок.
  • Плата для установки елементів.
  • З'єднувальні дроти, бажано з готовими штекерами тато / мама.
компонент Специфікація кількість Де купити
Arduino UNO Rev3.0 1 Посилання
драйвер L298N 1 Посилання
Міні-двигун 12В, DC, 6000 об / хв. 1 Посилання
Блок живлення 12 Вольт 1 Посилання
кнопка Micro SMD SMT 1 Посилання
потенціометр 100 кОм 1 Посилання
з'єднувальні дроти тато мама Посилання

Повний код проекту:

Управління DC двигуном за допомогою Arduino UNO (491 bytes, завантажено: 104)

Практичне застосування.

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

В іншому варіанті двигуни, керовані Arduino і драйвером L298N можуть переміщувати руки робота в прямому і реверсивному напрямі, пересуватися по лінійної траєкторії і т.д. Повний перелік можливостей плати Arduino і драйвера L298N обмежується тільки вашою власною фантазією, тому ви можете самостійно знайти їм цікаве застосування.

Допоможіть розробці сайту, ділитися статтею з друзями!

Категорія: