ATX блок живлення, керований Arduino
Чи може мікроконтролер контролювати власне джерело живлення? Майже!
Блок живлення від старого комп'ютера (або новий) - це чудовий спосіб живлення Arduino та інших пристроїв. Це розглядається в цій та кількох подібних статтях. Однак завдяки деяким особливостям ATX, ми можемо використовувати його як "розумний" блок живлення, а це ще краще.
У цій статті описано, як просто за допомогою мікроконтролера контролювати джерело живлення. Таким чином, ви можете використовувати ATX блок живлення в кількох режимах: він може відпочивати, працювати в економічному режимі для слаботочних пристроїв та давати десятки ампер на 5В і/або 12В лінії за потреби.
На відео в кінці показана ця ідея в дії.
Загальна вартість управління блоком живлення складає кілька фунтів, ви не пошкодите блок живлення, і зможете використовувати його в подальшому.
Матеріали та інструменти
Необхідні деталі:
Подовжувач ATX кабелю для материнської плати
3 дроти з BLS штирями
1K резистор (номінал не критичний)
Термозбіжна трубка
Інструменти:
Паяльник та припій
Ножиці
Запальничка для нагріву термозбіжної трубки.
Основні елементи:
Блок живлення ATX
5В мікроконтролер або Arduino
Потужні транзистори для комутації
Характеристики
Блок живлення ATX - це чудова річ!
На наклейці нового блоку живлення, купленого за 700 руб, вказані такі параметри:
20А на 3.3В
30А на 5В
30А на 12В
Плюс струм у режимі простою: 2А на 5В
Зараз 5В 2A цілком достатньо для запуску практично будь-яких мікроконтролерів 5В.
Все, що нам потрібно зробити, це використовувати 5В у режимі простою для запуску та роботи нашої плати, а при необхідності переключитися на високий струм.
Виготовлення роз'єму
Роз'єм живлення ATX добре відомий, і з його розпіновкою можна ознайомитися в Інтернеті, наприклад, тут.
Нам потрібні: провід резервного живлення 5В (фіолетовий), провід управління (зелений) та будь-який провід GND (чорний).
Розпочнемо з того кінця подовжувача, який показаний на першій картинці. Відріжте від нього все, що нам не потрібно. Потім відріжте фіолетовий, зелений та чорний проводи ближче до іншого кінця. Надягніть на них термозбіжну трубку та обріжте проводи з BLS штирями з одного кінця.
Необхідно додати резистор 1 кОм на провід управління, щоб уникнути надмірного струму. Припаяйте резистор до зеленого проводу з BLS штирем, а пізніше до зеленого проводу подовжувача ATX. Припаяйте до фіолетового та чорного проводу відповідні проводи з BLS штирями (в моєму випадку червоний і чорний). Нарешті, прогрійте термозбіжні трубки.
Контроль та використання Arduino ATX
Щоб використовувати і контролювати ATX блок живлення, достатньо використовувати Arduino.
Підключіть фіолетовий (на фото червоний) ATX провід до +5 В (не використовуйте Vin) та чорний провід ATX до GND.
Підключіть зелений провід ATX до будь-якого управляючого виходу. Я використав A0 (D14), але загальні виходи цифрового вводу-виводу працюють також.
Підключіть ATX, і Arduino буде отримувати резервний струм, і вентилятор, ймовірно, буде вимкнений.
При необхідності повної потужності просто використовуйте команду:
const int ctrlPin=14; // Використовуйте необхідний вам pin. Я використав D14.
digitalWrite(ctrlPin, LOW);
Для вимкнення повної потужності використовуйте:
digitalWrite(ctrlPin, HIGH);
Що еквівалентно команді:
pinMode(ctrlPin, INPUT);
т.е. вихід встановиться в стані з високим опором.
Тепер все, що вам потрібно зробити, це підключити високо точну навантаження до будь-якого з роз'ємів типу MOLEX блоку живлення ATX і керувати ними за допомогою транзисторів, MOSFET-транзисторів тощо. Коли вам знадобиться великий струм, просто використовуйте команди, вказані вище.
Примітка - ви повинні бути обережні при живленні Arduino безпосередньо від +5 В. Якщо ви також підключили кабель USB, то струм може йти в USB порт вашого ПК, так що будьте обережні.
Управління ATX в дії
Нижче наведено відео будильника зі світловим ефектом.
Ви бачите, що Arduino відображає час постійно, але спочатку вентилятор на ATX блоці живлення не працює. Це тому, що ми використовуємо резервну напругу.
Коли я запускаю основну світлодіодну лампу (близько 9 Вт на даний момент), Arduino вмикає основне живлення ATX, і вентилятор починає працювати. Коли лампа гасне, вентилятор зупиняється.
Для будильника це дуже корисно, тому що шум вентилятора буде заважати вночі. Є багато подібних ситуацій, коли основне живлення ATX потрібно тільки час від часу.