Мой процессор (MSP430) хочет знать о том что в некую цепь подано напряжение 220. Я подключил GPIO через оптопару вот таким образом:
Нажмите для просмотра прикрепленного файла
Как и следовало ожидать - я получил 100 прерываний в секунду. Время "недооткрытого состояния" показалось слишком большим, поэтому я уменьшил сопротивление в высоковольтной части с 200К до 100К (при этом пришлось увеличить мощность резистора до одного ватта) и добавил RC цепочку:
Нажмите для просмотра прикрепленного файла
Результат мне не нравится по трем причинам:
- это не красиво.
- входное сопротивление большое, но не бесконечное. Поэтому ножка немного подтягивается к VCC
- оставил схему работать на несколько часов. После этого время от времени сигнал стал "пропадать".
Посмотрев ножку 4, я увидел что там вот такое безобразие:
Нажмите для просмотра прикрепленного файла
Это странно, так как сразу после сборки я смотрел сигнал. Он был логичным - бОльшую часть времени был ноль, сто раз в секунду были пики, примерно до двух вольт. Почему после суточного прогона сигнал изменился? Почему транзистор открывается не полностью даже на максимуме сигнала? Одноватный резистор греется, но не сильно. Градусов до пятидесяти. Его сопротивление не изменилось с нагревом.
К тому же у меня ощущение, что я изобретаю велосипед. Наверняка есть стандартные решения. Однако все что я нагуглил - это схемы типа первой. Без фильтра вообще.
Апдейт.
Пока писал сообщение - отключил 220. Сейчас снова включил - сигнал на четвертой ножке оптопары стал нормальный:
Нажмите для просмотра прикрепленного файла
Кто виноват и что делать? Температура? Резистор греется до 50 градусов, оптопара практически не греется.