Arduino електромеханіка

1. Управляем маленькими моторчиками

Підключимо мініатюрний вібромоторчик до нашого Arduino.

  1. звичайний Ардуіно, підключений до USB-порту комп'ютера
  2. Резистор на 220 Ом

Мініатюрний вібромоторчик (можна знайти в старій непотрібної мобілці, або в магазині електроніки)

Підключення моторчика:

1. У вібромоторчик є два дроти живлення. З'єднайте один його провід з нульовим виводом (GND) харчування контролера. Не має значення який із двох проводів.

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

Наводимо схему, де для мотора обраний другий дискретний висновок плати контролера:

Arduino електромеханіка

А ось приклади, як все можна поєднати за допомогою макетної плати:

Arduino електромеханіка

Текст програми Arduino

Наступний скетч запустить моторчик на 1 секунду, і зупинить його на такий же час і так далі по колу:

// Декларуємо номер дискретного виходу

int motorPin = 2;

Як це працює

Всякий раз, коли програма буде подавати логічну одиницю на наш вихід, струм буде текти через резистор, через мотор (М), і на землю. Якщо М дійсно малопотужний, він почне обертатися, якщо це стандартний двигун постійного струму; інакше він почне вібрувати, якщо це вібромоторчик. Резистор дуже важливий для цієї схеми. Кожен дискретний вихід Arduino розрахований на струм тільки до 40 мА, при чому рекомендується не перевищувати 20 мА. Вибране значення резистора 220 Ом обмежить струм до 22 мА, і тому, що М включений з ним послідовно, струм буде навіть менше. Якщо загальний опір движка вище, ніж 200 Ом, то можна з упевненістю прибрати резистор і безпосередньо підключити моторчик до цифрового висновку і GND.

У цьому проекті ми безпосередньо до контролера підключили один вібромоторчик, але ніхто нам не забороняє підключити їх кілька.

Кілька двигунів можуть бути підключені на різні цифрові висновки плати контролера. Наприклад, виходи 2, 3, і 4 можуть незалежно управляти різними трьома електродвигунами. Кожен дискретний висновок, на Arduino може керувати окремим двигуном. Хоча вообщето, так робити не рекомендується, так як це збільшить струм, що проходить через Arduino. Давайте поки обмежимося одним двигуном в даній реалізації.

Кожен електродвигун постійного струму є котушкою індуктивності. Коли ми знімаємо з нього струм, або коли ми обертаємо М вручну, він буде генерувати зворотна напруга. Що може підпалити підключений до нього електронний компонент. Щоб уникнути цього, ми можемо підключити діод між дискретним виходом і висновком харчування 5В. Всякий раз, коли М буде віддавати паразитное зворотна напруга, діод буде з'єднувати його з плюсом харчування. На щастя, Ардуіно має вбудований захисний діод на кожному виводі. І нам немає необхідності його дублювати зовнішнім діодом.

2. Управляем електродвигуном за допомогою транзисторів.

Ми звичайно можемо управляти мініатюрним електродвигуном безпосередньо підключивши його до виходу Arduino; однак, дискретний вихід не потягне двигуни, які споживають більше 40 мА. Вихід полягає у використанні простого підсилює пристрої, транзистора, щоб мати можливість керувати електродвигунами постійного струму будь-якої потужності. Розглянемо на прикладі, як управляти великими електродвигунами, використовуючи два транзистора npn і pnp структури.

Для цього проекту нам знадобляться наступні електронні компонети:

  1. Плата Arduino, підключена до USB-порту комп'ютера
  2. Моторчик постійного струму
  3. Резистор опором між 220 Ом і 10 кОм
  4. npn транзистор (BC547, 2N3904, N2222A, TIP120)
  5. Діод (1N4148, 1N4001, 1N4007)

Нижче наведені кроки, при підключенні двигунів за допомогою транзистора:

  1. Підключіть нуль харчування Arduino GND до мінусової шини макетної плати.
  2. Підключіть один з проводів двигуна до плюса живлення +5 плати контролера. Ми будемо використовувати 5В харчування USB-порту. Якщо потрібна велика потужність, то потрібно використовувати зовнішнє джерело живлення, такий як наприклад батарея. Поки розглянемо харчування саме від USB.
  3. Інший провід двигуна з'єднуємо з колектором транзистора npn. За специфікації на ваш транзистор визначте який з трьох його висновків колектор, який база і який емітер.
  4. Підключіть емітер транзистора до мінуса харчування GND, використовуючи мінусову шину харчування макетної плати.
  5. Встановіть резистор між базою транзистора і дискретним виходом плати Arduino.
  6. Увімкніть захисний діод паралельно з двигуном. Мінус діода повинен бути підключений до плюса живлення 5В.

Схема для Arduino Uno

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

Arduino електромеханіка

А ось один із способів з'єднання елементів схеми на макетної платі:

Arduino електромеханіка

Код програми Arduino

Цей скетч нічим не відрізняється від попереднього. Все так же програма запускає двигун на секунду, потім зупиняє його на секунду і так далі:

// Декларуємо номер дискретного керуючого виходу

int motorPin = 2;

Як це працює

Транзистори це дуже корисні компоненти, які, на жаль, важко зрозуміти. Ми можемо уявити транзистор як електричний клапан: чим більший струм подати на клапан, тим більше води через нього потече. Те ж саме відбувається з транзистором, тільки замість води тече струм. Якщо ми подамо струм на базу транзистора, пропорційний ток потече від колектора до емітера, в разі транзистора типу npn. Чим більший струм подати на базу, тим більша сила струму буде через два інших виведення.

Arduino електромеханіка

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

Транзистори цікаві в тому, що з дуже малим струмом бази, ми можемо контролювати дуже великий струм через колектор до емітера. Звичайний коефіцієнт посилення позначається hб для транзистора складає близько 200. Це означає, що для струму бази 1 мА, транзистор через колектор до емітера пропустить 200 мА. Важливим компонентом проекту є діод, про який не варто забувати. Як вже було сказано, движок має індуктивну складову, яка може генерувати великі сплески напруги, небезпечні для транзистора. Діод гарантує, що всі паразитні обурення від двигуна загасяться на ньому, а не на транзисторі.

3. Застосування підтягує резистора

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

Arduino електромеханіка

4. Застосування pnp-транзистора

pnp транзистор зрозуміти ще важче. Він використовує той же принцип, але в зворотному напрямку. Струм тече від бази до цифрового висновку Arduino; якщо допустити, що протікання струму бази змушує струм проходити від емітера до колектора (протилежно напрямку струму в транзисторі npn). Інша важлива відмінність в тому, що pnp-транзистор встановлений між плюсом джерела живлення і контрольованою нами навантаженням. Навантаження ж, в даному випадку, це двигун, буде підключена між колектором pnp-транзистора і землею.

Arduino електромеханіка

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

Arduino електромеханіка

5. Застосування силового транзистора MOSFET

Давайте подивимося правді в очі: застосування звичайних біполярних транзисторів для маніпулювання моторчиками вже давно не в моді. Є більш прості та зручні у використанні речі в наші дні, які можуть про безтурботний набагато більшу потужність управління. Їх називають MOSFET транзистори. Люди просто називають їх мосфети. База, колектор і емітер у MOSFETа називаються так затвор, стік і джерело. Функціонально їх використовують точно так же, як і звичайні транзистори. При подачі напруги на накоїв, струм буде проходити з витоку на стік в разі N-канального МОП-транзистора. P-канал є еквівалентом транзистора pnp.

Проте, є деякі важливі відмінності в роботі MOSFET в порівнянні зі звичайним транзистором. Не всі MOSFET-транзистори можуть належним чином працювати з Arduino. Зазвичай дискретні транзистори працюють нормально. Деякі з відомих N-канальних MOSFET мають маркування: FQP30N06. IRF510 і IRF520. Перший може витримувати до 30 А і 60 В той час як наступні два можуть віддавати 5,6 А і 10 А, відповідно, при 100 В.

Ось приклад схеми управління мотором за допомогою N-канального MOSFET:

Arduino електромеханіка

Ми також можемо використовувати наступний варіант монтажу проекту на макетної платі:

Arduino електромеханіка

Двигун - ще не все, чим ми можемо управляти через транзистор. Будь-який вид навантаження постійного струму може управлятися таким чином. Світлодіоди, лампочки або інші споживачі, навіть інший Arduino може бути запитан подібним чином.

Схожі статті