Вчера собрал и подключил к макету датчик наличия напряжения в сети. Он был собран по следующей схеме. Схема нарисована на онлай ресурсе Scheme-It.
U1 и U2 — оптопара TLP504A (AOT101AC)
Q1 — KT3107A (BC308A)
R1 — 470K
R2 — 20K
R3 — 30K
R4 — 10K
C1 — 470mF
Левая половина схемы собрана внутри вилки, правая рядом с микроконтроллером. На выходе без конденсатора прямоугольные импульсы с частотой 100Hz. Конденсатор превращает их в логическую 1. При пропадании напряжения на выходе схемы появляется логический 0. На фото оптопара на плате.
На следующей фотографии вилка в сборе.
Обработка данных в программе.
#define LED_220 9 // HIGH - есть напряжение 220, LOW - нет void setup() { pinMode(LED_220, INPUT); // Установка пина для проверки напряжения сети } // В процедуре проверки if (digitalRead(LED_220) == LOW) { // Обработка пропадания напряжения }