- Потрібні компоненти
- Робота управління вентилятором змінного струму за допомогою Arduino
- 1. Детектор нульового перетину
- 2. Схема управління фазовим кутом
- 3. Потенціометр для регулювання швидкості обертання вентилятора
- 4. Блок формування сигналу ШІМ
- Кругова діаграма
- Програмування Arduino для регулювання швидкості обертання вентилятора змінного струму
УВАГА!! Схема, розглянута в цьому проекті, призначена лише для навчальних цілей. Майте на увазі, що робота з напругою мережі змінного струму 220 В вимагає граничних запобіжних заходів, і слід дотримуватися процедур безпеки. Не торкайтесь будь-яких компонентів або проводів, коли схема працює.
Увімкнути або вимкнути будь-який побутовий прилад легко за допомогою перемикача або за допомогою якогось механізму управління, як це було зроблено в багатьох проектах домашньої автоматизації на базі Arduino. Але є багато додатків, де нам потрібно частково контролювати потужність змінного струму, наприклад, регулювати швидкість вентилятора або інтенсивність лампи. У цьому випадку використовується ШІМ-техніка, тому тут ми дізнаємось, як використовувати ШІМ, згенерований Arduino, для управління швидкістю обертання вентилятора змінного струму за допомогою Arduino.
У цьому проекті ми продемонструємо регулювання швидкості обертання вентилятора Arduino за допомогою TRIAC. Тут метод фазового контролю сигналу змінного струму використовується для управління швидкістю обертання вентилятора змінного струму, використовуючи ШІМ-сигнали, генеровані Arduino. У попередньому підручнику ми контролювали швидкість обертання вентилятора постійного струму за допомогою ШІМ.
Потрібні компоненти
- Arduino UNO
- 4N25 (детектор перетину нуля)
- 10k потенціометр
- MOC3021 0pto-муфта
- (0-9) В, 500 мА понижуючий трансформатор
- BT136 ТРІАК
- Осевий вентилятор змінного струму 230 В змінного струму
- Підключення проводів
- Резистори
Робота управління вентилятором змінного струму за допомогою Arduino
Роботу можна розділити на чотири різні частини. Вони такі
1. Детектор нульового перетину
2. Схема управління фазовим кутом
3. Потенціометр для управління величиною швидкості обертання вентилятора
4. Схема генерації сигналу ШІМ
1. Детектор нульового перетину
Живлення змінного струму, яке ми отримуємо в нашому домогосподарстві, становить 220 В змінного струму, 50 Гц. Цей сигнал змінного струму має змінний характер і періодично змінює свою полярність. У першій половині кожного циклу він тече в одному напрямку, досягаючи пікової напруги, а потім зменшується до нуля. Потім у наступному напівперіоді він тече в змінному напрямку (негативному) до пікової напруги, а потім знову приходить до нуля. Для регулювання швидкості обертання вентилятора змінного струму пікову напругу в обох напівциклах потрібно перервати або контролювати. Для цього нам потрібно виявити нульову точку, з якої сигнал повинен контролюватися / рубатися. Ця точка на кривій напруги, де напруга змінює напрямок, називається перетином нульової напруги.
Схема, показана нижче, є ланцюгом детектора перетину нуля, який використовується для отримання точки перетину нуля. Спочатку напруга 220 В змінного струму знижується до 9 В змінного струму за допомогою понижуючого трансформатора, а потім вона подається на оптопару 4N25 на своїх виводах 1 і 2. Оптрон 4N25 має вбудований світлодіод зі штирком 1 як анодом і виводом 2 як катод. Отже, згідно схеми нижче, коли хвиля змінного струму наближається до точки перетину нуля, вбудований світлодіод 4N25 вимкнеться, і як результат, вихідний транзистор 4N25 також вимкнеться, а вихідний імпульсний штифт буде підтягуються до 5В. Подібним чином, коли сигнал поступово збільшується до пікуточки, тоді світлодіод увімкнеться, і транзистор також увімкнеться із заземленням, підключеним до вихідного виводу, що робить цей висновок 0В. Використовуючи цей імпульс, точку перетину нуля можна виявити за допомогою Arduino.
2. Схема управління фазовим кутом
Виявивши точку перетину нуля, тепер ми повинні контролювати величину часу, протягом якого живлення буде ввімкнено та вимкнено. Цей ШІМ-сигнал визначає величину напруги, що виводиться на двигун змінного струму, який, у свою чергу, контролює його швидкість. Тут використовується BT136 TRIAC, який контролює напругу змінного струму, оскільки це силовий електронний вимикач для управління сигналом змінного струму.
TRIAC - це триконтактний перемикач змінного струму, який може спрацьовувати через сигнал низької енергії на його затворі. У SCR він проводить лише в одному напрямку, але у випадку TRIAC потужність можна контролювати в обох напрямках. Щоб дізнатись більше про TRIAC та SCR, дотримуйтесь наших попередніх статей.
Як показано на малюнку вище, TRIAC спрацьовує під кутом стрільби 90 градусів, подаючи на нього невеликий імпульсний сигнал затвора. Час "t1" - це час затримки, який надається відповідно до вимоги затемнення. Наприклад, у цьому випадку кут випалу становить 90 відсотків, отже, вихідна потужність також буде зменшена вдвічі, а отже, лампа також буде світитися з половиною інтенсивності.
Ми знаємо, що частота сигналу змінного струму тут становить 50 Гц. Отже, проміжок часу складе 1 / f, що становить 20 мс. Для напівцикла це буде 10 мс або 10 000 мікросекунд. Таким чином, для регулювання потужності лампи змінного струму діапазон "t1" може варіюватися від 0-10000 мікросекунд.
Оптрон:
Оптопар також відомий як Оптоізолятор. Він використовується для підтримки ізоляції між двома електричними ланцюгами, такими як сигнали постійного та змінного струму. В основному, він складається зі світлодіода, який випромінює інфрачервоне світло, і фотодатчика, який його виявляє. Тут оптрон MOC3021 використовується для управління вентилятором змінного струму від сигналів мікроконтролера, який є сигналом постійного струму.
Схема підключення TRIAC та оптрона:
3. Потенціометр для регулювання швидкості обертання вентилятора
Тут використовується потенціометр для регулювання швидкості вентилятора змінного струму. Ми знаємо, що потенціометр - це 3-х термінальний пристрій, який діє як дільник напруги і забезпечує змінну вихідну напругу. Ця змінна аналогова вихідна напруга подається на аналоговому вхідному терміналі Arduino для встановлення значення швидкості вентилятора змінного струму.
4. Блок формування сигналу ШІМ
На завершальному етапі імпульс ШІМ подається на TRIAC відповідно до вимог до швидкості, який, у свою чергу, змінює час включення / вимикання сигналу змінного струму і забезпечує змінний вихід для управління швидкістю обертання вентилятора. Тут Arduino використовується для генерації ШІМ-імпульсу, який приймає вхід від потенціометра і подає ШІМ-сигнал на TRIAC та схему оптрона, яка в подальшому приводить вентилятор змінного струму з бажаною швидкістю. Дізнайтеся більше про генерацію ШІМ за допомогою Arduino тут.
Кругова діаграма
Схема для цієї схеми управління швидкістю обертання вентилятора на 230 В на основі Arduino наведена нижче:
Примітка: Я показав повну схему на макеті лише з метою розуміння. Ви не повинні використовувати джерело живлення змінного струму 220 В безпосередньо на вашому макеті, я використав пунктирну дошку для встановлення з'єднань, як ви можете бачити на зображенні нижче
Програмування Arduino для регулювання швидкості обертання вентилятора змінного струму
Після апаратного підключення нам потрібно записати код для Arduino, який генеруватиме ШІМ-сигнал для управління синхронізацією вмикання / вимикання сигналу змінного струму за допомогою входу потенціометра. Раніше ми використовували методи ШІМ у багатьох проектах.
Повний код цього проекту управління швидкістю обертання вентилятора Arduino AC наведено внизу цього проекту. Покрокове пояснення коду наведено нижче.
На першому кроці оголосіть усі необхідні змінні, які будуть використовуватися у коді. Тут BT136 TRIAC підключений до виводу 6 Arduino. І змінна speed_val оголошена для зберігання значення швидкості кроку.
int TRIAC = 6; int speed_val = 0;
Далі, всередині функції налаштування , оголосіть штифт TRIAC як вихід, оскільки вихід ШІМ буде сформований через цей штифт. Потім налаштуйте переривання для виявлення перетину нуля. Тут ми використовували функцію з назвою attachInterrupt, яка налаштує цифровий Pin 3 Arduino як зовнішнє переривання і викличе функцію з іменем zero_crossing, коли виявить будь-які переривання на своєму pin.
void setup () {pinMode (LAMP, OUTPUT); attachInterrupt (digitalPinToInterrupt (3), zero_crossing, CHANGE); }
Всередині нескінченного циклу зчитуйте аналогове значення з потенціометра, який підключений в точці А0, і відображайте його в діапазоні значень (10-49).
Щоб з’ясувати цей діапазон, нам потрібно зробити невеликий розрахунок. Раніше вже говорили, що кожен напівцикл еквівалентний 10 000 мікросекунд. Отже, тут регулювання затемнення здійснюватиметься у 50 кроків, що є довільним значенням і може бути змінено. Тут мінімальні кроки приймаються як 10, а не нульові, оскільки 0-9 кроків дають приблизно однакову вихідну потужність, а максимальні кроки приймаються як 49, оскільки не рекомендується практично приймати верхню межу (що в цьому випадку становить 50).
Тоді час кожного кроку можна обчислити як 10000/50 = 200 мікросекунд. Це буде використано в наступній частині коду.
void loop () {int pot = analogRead (A0); int data1 = map (pot, 0, 1023,10,49); швидкість_вал = дані1; }
На завершальному кроці налаштуйте функцію zero_crossing, керовану перериванням. Тут час затемнення можна розрахувати, помноживши час індивідуального кроку на значення. кроків. Потім після цього часу затримки TRIAC може спрацьовувати, використовуючи невеликий високий імпульс 10 мікросекунд, якого достатньо для включення TRIAC.
void zero_crossing () {int chop_time = (200 * speed_val); delayMicroseconds (chop_time); digitalWrite (TRIAC, HIGH); delayMicroseconds (10); digitalWrite (TRIAC, LOW); }
Повний код разом із робочим відео для цього управління вентилятором змінного струму за допомогою Arduino та ШІМ наведено нижче.