Arduino для початківців. Моторизована вертушка на Arduino (Частина 9)

24.02.2025 1 хвилин Автор: Lady Liberty

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

Моторизована вертушка

Змусьте Arduino обертати кольорову вертушку за допомогою мотора

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

Рух об’єктів потребує великої кількості енергії. Мотори зазвичай споживають більше струму, ніж може забезпечити Arduino. Деякі двигуни також потребують вищої напруги. Під час запуску або при великому навантаженні мотор намагається спожити якомога більше струму. Однак цифрові виходи Arduino можуть видавати лише 40 мА, що значно менше, ніж потрібно більшості моторів для нормальної роботи.

Транзистори – це компоненти, які дозволяють керувати джерелами високого струму та напруги за допомогою малострумових виходів Arduino. Існує багато різновидів транзисторів, але всі вони працюють за одним принципом. Ви можете уявити транзистор як цифровий перемикач. Коли на один із його виводів, що називається затвором (gate), подається напруга, це замикає ланцюг між двома іншими виводами – стоком (drain) і витоком (source). Таким чином, Arduino може вмикати та вимикати мотор, що працює на вищому струмі або напрузі.

Мотори є індуктивними пристроями. Індукція – це процес, за якого змінний електричний струм у проводі створює змінне магнітне поле навколо нього. Коли мотор отримує електроенергію, щільно намотана котушка мідного дроту всередині корпусу генерує магнітне поле. Це поле змушує вал (деталь, що виступає з корпусу) обертатися.

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

Коли ви перестаєте подавати живлення на мотор, він продовжує обертатися за інерцією. Під час цього процесу він генерує напругу у напрямку, протилежному тому, який ви подавали. Ви вже бачили цей ефект, коли підключали до нього світлодіод. Ця зворотна напруга (back-voltage) може пошкодити транзистор. Щоб уникнути цього, слід підключити діод паралельно мотору – він пропустить зворотну напругу через себе, захищаючи решту схеми. Діод пропускає струм лише в одному напрямку, забезпечуючи безпечну роботу всієї електроніки.

Збираємо схему

З’єднання схеми

1. Підключіть живлення та землю до макетної плати через Arduino.

2. Додайте кнопку на плату, під’єднавши один її вивід до живлення, а інший – до цифрового піна 2 на Arduino. Для коректної роботи кнопки підключіть 10-кілоомний pull-down резистор між виходом кнопки та землею.

3. Якщо у схемі використовуються різні рівні напруги, потрібно з’єднати їхні заземлення для створення спільної точки відліку. Вставте роз’єм для 9V батареї у макетну плату. З’єднайте землю батареї із землею Arduino за допомогою перемички. Після цього підключіть вільний провід мотора до 9V живлення.

4. Розмістіть транзистор на платі. Тримайте його так, щоб металева пластина була спрямована від вас.

  • Під’єднайте лівий вивід транзистора (затвор – gate) до цифрового піна 9 на Arduino. Коли Arduino подасть напругу на цей пін, транзистор відкриється.

  • Підключіть один із виводів мотора до середнього виводу транзистора (стік – drain).

  • Останній, правий вивід (витік – source) підключіть до землі.

5. Далі підключіть живлення мотора до макетної плати.

Останній компонент – діод. Це поляризований елемент, тому його можна підключати лише в одному напрямку.

  • Знайдіть смугу на одному кінці діода – це катод (мінус), а інший кінець – анод (плюс).

  • З’єднайте анод діода із землею мотора.

  • Підключіть катод діода до живлення мотора.

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

Світлодіоди теж є діодами, якщо ви замислювалися, чому їхні виводи також називаються анодом і катодом. Існує багато видів діодів, але всі вони мають одну спільну властивість: пропускають струм лише в одному напрямку – від анода до катода.

Код для керування мотором

  • Оголосіть ваші константи та змінні. Код надзвичайно схожий на той, що ви спочатку використовували для ввімкнення світлодіода. Перш за все, налаштуйте деякі константи для пінів кнопки та мотора і змінну з назвою switchState, щоб зберігати значення кнопки.

  • Оголосіть напрямок пінів. У вашій setup(), оголосіть pinMode() для мотора (OUTPUT) і кнопки (INPUT).

  • Прочитайте вхід і встановіть вихідний сигнал у HIGH, якщо кнопка натиснута. Ваш loop() досить простий. Перевірте стан switchPin за допомогою digitalRead(). Якщо кнопка натиснута, встановіть motorPin у стан HIGH. Якщо не натиснута – у стан LOW. Коли HIGH, транзистор активується, завершуючи ланцюг мотора. Коли LOW, мотор не буде обертатися.

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

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

const int switchPin = 2;
const int motorPin = 9;
int switchState = 0;
void setup() {
 pinMode(motorPin, OUTPUT);
 pinMode(switchPin, INPUT);
}
void loop(){
 switchState = digitalRead(switchPin);
 if (switchState == HIGH) {
 digitalWrite(motorPin, HIGH);
 }
 else {
 digitalWrite(motorPin, LOW);
 }
}

Транзистори – це напівпровідникові пристрої, які не містять рухомих частин. Завдяки цьому їх можна миттєво вмикати та вимикати. Спробуйте підключити потенціометр до аналогового входу та використати його для ШІМ-керування (PWM) піна, що контролює транзистор. Як ви думаєте, що станеться зі швидкістю мотора, якщо змінювати напругу, яку він отримує? Чи зможете ви створити різні візуальні ефекти, змінюючи швидкість обертання вашої вертушки?

Використання

  1. Зберіть CD-хаб згідно з кроком 1 та прикріпіть його до мотора (крок 2).

  2. Приклейте паперовий візерунок до CD-диска (крок 3).

  3. Закріпіть диск на хабі та зафіксуйте краплею клею. Дочекайтеся висихання перед тестуванням.

  4. Підключіть 9V батарею до роз’єму живлення.

  5. Підключіть Arduino через USB для живлення.

  6. Натисніть кнопку на макетній платі – мотор почне швидко обертатися, приводячи в рух вашу вертушку.

Вставте частину C у частину B, а потім обережно притисніть до них частину D.
Обережно натисніть на вал двигуна в отвір у задній частині частини B.
Покладіть паперовий диск на компакт-диск і зафіксуйте його клапанами на звороті.
Прикріпіть компакт-диск до хреста, утвореного частинами B і D. Використовуйте краплю клею, щоб компакт-диск не відклеївся.

Оскільки мотор обертається дуже швидко, ви можете зробити досить велику вертушку. Проте будьте обережні, щоб вона не злетіла та не травмувала когось. Переконайтеся, що всі деталі надійно закріплені, особливо CD-диск і хаб.

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

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Інші статті по темі
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.