У цьому посібнику ми збираємося з'єднати двигун постійного струму з Arduino UNO та контролювати його швидкість за допомогою концепції ШІМ (модуляція ширини імпульсу). Ця функція включена в UNO для отримання змінної напруги над постійною напругою. Тут пояснено метод ШІМ; розглянемо просту схему, як показано на малюнку.
Якщо кнопку натиснути, якщо на фігурі, то двигун почне обертатися, і він буде рухатися, поки не буде натиснута кнопка. Це натискання є безперервним і представлене на першій хвилі малюнка. Якщо для конкретного випадку розглянути кнопку натиснути на 8 мс і відкрити на 2 мс протягом циклу 10 мс, у цьому випадку двигун не буде отримувати повну напругу акумулятора 9 В, оскільки кнопка натискається лише на 8 мс, тому середньоквадратична напруга на клем двигун буде близько 7В. Завдяки цій зниженій середньоквадратичній напрузі двигун буде обертатися, але зі зниженою швидкістю. Тепер середнє значення увімкнення протягом періоду 10 мс = час увімкнення / (час увімкнення + час вимкнення), це називається робочим циклом і становить 80% (8 / (8 + 2)).
У другому та третьому випадках кнопка натискається ще менше часу, ніж у першому випадку. Через це середньоквадратична середньоквадратична напруга на клемах двигуна ще більше зменшується. Через цю знижену напругу частота обертання двигуна навіть зменшується ще більше. Це зниження частоти обертання при постійному робочому циклі відбуватиметься до тієї точки, де напруга на клем двигуна буде недостатньою для обертання двигуна.
Отже, з цього можна зробити висновок, що ШІМ може використовуватися для варіювання швидкості двигуна.
Перш ніж йти далі, нам потрібно обговорити H-BRIDGE. Тепер ця схема має в основному дві функції, перша полягає у приведенні двигуна постійного струму з контрольних сигналів низької потужності, а інша - у зміні напрямку обертання двигуна постійного струму.
Фігура 1
Малюнок 2
Ми всі знаємо, що для двигуна постійного струму, щоб змінити напрямок обертання, нам потрібно змінити полярність напруги живлення двигуна. Тому для зміни полярності ми використовуємо H-міст. Тепер на рисунку 1 ми маємо чотири перемикача. Як показано на малюнку2, для обертання двигуна А1 і А2 закриті. Через це струм протікає через двигун справа наліво, як показано на 2- й частині рисунка 3. Наразі розглянемо обертання двигуна за годинниковою стрілкою. Тепер, якщо перемикачі A1 і A2 відкриті, B1 і B2 закриті. Струм через двигун протікає зліва направо, як показано на 1 ст частина малюнка3. Цей напрямок потоку струму протилежний першому, і тому ми бачимо протилежний потенціал на клемці двигуна до першого, тому двигун обертається проти годинникового механізму. Ось як працює H-BRIDGE. Однак двигуни низької потужності можуть керуватися H-BRIDGE IC L293D.
L293D - це мікросхема H-BRIDGE, призначена для керування двигунами постійного струму низької потужності і показана на малюнку. Цей ІС складається з двох h-мостів і тому він може керувати двома двигунами постійного струму. Отже, ця ІС може використовуватися для керування двигунами робота від сигналів мікроконтролера.
Тепер, як обговорювалося раніше, ця ІС має можливість змінювати напрямок обертання двигуна постійного струму. Це досягається контролем рівнів напруги на INPUT1 та INPUT2.
Увімкнути PIN-код |
Вхідний штифт 1 |
Вхідний штифт 2 |
Напрямок руху |
Високий |
Низький |
Високий |
Поверніть праворуч |
Високий |
Високий |
Низький |
Поверніть наліво |
Високий |
Низький |
Низький |
Стій |
Високий |
Високий |
Високий |
Стій |
Так, як показано на малюнку вище, для обертання за годинниковою стрілкою 2А має бути високим, а 1А - низьким. Так само для проти годинникової стрілки 1А має бути високим, а 2А - низьким.
Як показано на малюнку, Arduino UNO має 6PWM-каналів, тому ми можемо отримати ШІМ (змінну напругу) на будь-якому з цих шести контактів. У цьому підручнику ми будемо використовувати PIN3 як вихід ШІМ.
Апаратне забезпечення: ARDUINO UNO, блок живлення (5 В), конденсатор 100 мкФ, світлодіод, кнопки (дві штуки), резистор 10 кОм (дві штуки).
Програмне забезпечення: arduino IDE (Arduino nightly).
Кругова діаграма
Схема підключена в макет відповідно до схеми, показаної вище. Однак слід звертати увагу під час підключення світлодіодних клем. Хоча кнопки в цьому випадку відображають ефект підстрибування, це не викликає значних помилок, тому нам цього разу не потрібно хвилюватися.
ШІМ від UNO є простим, в звичайних випадках налаштування контролера ATMEGA для ШІМ-сигналу непросте, нам доводиться визначати багато регістрів та налаштувань для точного сигналу, проте в ARDUINO нам не доводиться мати справу з усіма цими речами.
За замовчуванням усі файли заголовків та регістри заздалегідь визначені ARDUINO IDE, нам просто потрібно викликати їх, і все, ми отримаємо ШІМ-вихід на відповідному штифті.
Тепер, щоб отримати вихід ШІМ на відповідному штифті, нам потрібно попрацювати над трьома речами,
|
Спочатку нам потрібно вибрати вихідний штир ШІМ із шести контактів, після цього нам потрібно встановити цей штифт як вихідний.
Далі нам потрібно увімкнути функцію ШІМ UNO, викликавши функцію “analogWrite (pin, value)”. Тут "pin" представляє номер контакту, де нам потрібен вихід ШІМ, ми ставимо його як "3". Отже, на PIN3 ми отримуємо ШІМ-вихід.
Значення - робочий цикл включення, між 0 (завжди вимкнено) та 255 (завжди увімкнено). Ми збираємося збільшувати та зменшувати це число натисканням кнопки.
ООН має максимальну роздільну здатність “8”, далі йти не можна, отже значення від 0-255. Однак можна зменшити роздільну здатність ШІМ, використовуючи команду “analogWriteResolution ()”, ввівши в дужках значення від 4-8, ми можемо змінити її значення з чотирибітової ШІМ до восьми бітової ШІМ.
Перемикач призначений для зміни напрямку обертання двигуна постійного струму.