РЕКЛАМА НА ФОРУМХАУС Не должно такого быть. Чтобы понять, почему так получилось (?) надо посмотреть всю конструкцию в целом.
Должно: соединение метровым телефонным проводом вдоль силовой линии 2кВт, чтобы собрать заранее помех побольше. Ну можно конечно взять экранированный в 10см, и собрать аккуратно на столе - а потом удивляться, если в щите что-то пойдет не так. Вот почему оптрон так странно открывается, что 3В не хватает - не очень понятно. Можно конечно перепаять ради интереса, там внутри похожий на 817, я посмотрел уже. Кстати, вот тоже - контроль наличия 220В в сети без подключения к самой сети - просто длинный провод поближе к сетевой проводке, и на вход транзистора. Есть наводки - есть сеть (особенно в загородном доме, где "ближайшие соседи" это уже далеко).
Я уже писал здесь про мой самодельный контроллер DALI, к которому подключено десятка полтора проводов в десятки метров длиной проложенных совместно с силовыми линиями. Прием DALI организован по прерываниям. Причем никаких программных ухищрений для подавления помех нет. Главный секрет простой - гальваническая развязка как управляющих входов, так и самой шины DALI. Если всё сделано правильно, то всё должно пойти "так" Если что-то пошло "не так", значит, что-то сделали неправильно Это подтверждает любое промышленное оборудование, которое работает без проблем и в очень сложной помеховой обстановке. То есть, всё уже давно придумано и изобретено. Надо только всё сделать правильно. P. S. Тут как бы два основных варианта - изучать тему самому, "методом тыка", самому собрать все грабли и найти (для себя) какое-то решение (не факт, что оптимальное). Или изучить чужой опыт и следовать готовым рекомендациям. В идеале, ещё и понимать, откуда эти рекомендации взялись. Мне приходилось пройти и по тому, и по другому варианту, но я всегда больше склонялся к второму. То есть, сначала разобраться, "как оно тикает". Такой вариант пусть и медленнее и изначально более трудозатратный, но результат более гарантированный. И лично мне так просто интереснее
Там нет никакой особой магии: все наводки, даже относительно высоковольтные, имеют малую мощность, поэтому обычно легко не глядя гасятся простым резистором. В сложных случая - фильтром с емкостью или индуктивностью. Поэтому ваш DALI и работает нормально. Но конкретно в данном случае непонятно, почему сработавший оптрон дает такой малый ток. Так-то по хорошему через 817 можно даже электромагнитным реле успешно управлять, он обеспечивает ток даже больше чем по даташиту, но тут то ли открывающий импульс короче чем время срабатывания, то ли оптрон битый, то ли сопротивление где-то в цепи большое возникло - импульс тока через него по характеристикам слабо отличим от помех. Даже не удивился бы, если и управляющий импульс в самом счетчике "не идет" как надо (счетчик несколько лет висел в неиспользуемом щите на улице, хоть и не заливался водой ни разу, но все-таки он не новый, снят для тестов).
Почему у меня работает нормально, я знаю. Потому что я делал схему так, чтобы работало нормально. Почему вас с @AVG111 возникает какая-то "вредная" магия, которая создает помехи, в общем-то на ровном месте, я не знаю. И могу только предполагать (из общих соображений и типовых ошибок в схемотехнике). Поэтому могу и ошибаться в причинах проблем в ваших устройствах. Для меня странно явную хардверную проблему или, скорее, неисправность, пытаться лечить софтовой обработкой. IMHO, это совсем не тот случай чтобы софтверной обработкой стараться вытащить сигнал из под шума. Вы же говорили, что у вас есть осциллограф. С осциллом, я думаю, найти проблему был бы вопрос пяти минут. Посмотреть импульс на выходе счетчика и т. д.
Ну ОК: Спойлер: для тех кто поймет - наводка на голом проводе, без подавления - около 1В, 50Гц - при подтягивании к земле 4.7кОм помехи нет, гасится. - импульс срабатывания при этом не виден вообще (+3.3 на + оптрона), т. е. резистор его тоже гасит - подключаем ключ между резистором и +3.3, на базу тот же провод от оптрона. - без подавления наводка все те же 1В, 50Гц. - импульс срабатывания - 1.5В, около 10мкс, с наложением помех, но ключ срабатывает. - импульсы на эмитере ключа соответствуют импульсу срабатывания, но поскольку есть помеха - они "рваные". Прерывание считает кучу мусора в этот момент, что логично, ее видно на осциллографе. - варианты по вашему предложению с конденсатором "коллектор-эмитер", независимо от "к земле" или "к питанию" дают более длительный и более четкий импульс, соответственно 0 или 1, неважно, модулированный помехой. Прерывание считает кучу мусора от помехи. - при попытке как-то куда-то прижать входную линию (конденсаторы, резисторы до 300кОм, неважно как и к чему, по всякому) - гасят в 0 и помеху и импульс. Т. е. мощность импульса сопоставима с мощность наведенной помехи. Различие есть, теоретически его можно выцепить каким-нибуль компаратором, настроенным по осциллографу так, чтобы захватывать полезный импульс и не захватывать модуляцию его помехой (много возни), либо усиливать входной сигнал, пропускать его через фильтр на 50Гц и потом считать импульсы (еще больше возни), попытаться подать на оптрон 12В и усилить сигнал относительно помехи, или добавить в программе условие по времени. В программе проще. Еще вариант - сигнал через оптрон подать на второй оптрон, и рассчитывать что сигнала хватит для срабатывания, а помехи не хватит. Благо у меня этих оптронов полно... PS: не работает, не хватает. Ну и наконец - перепаять оптрон в самом счетчике на новый. Потому что не должно быть таких плясок с бубном. Вариант "соединить экранированным проводом" не рассматривается как неспортивный.
Выделил ключевое, с моей точки зрения Мои рекомендации по фильтрации помех относились к использованию нормальных, рабочих, правильно подключенных компонентов. Гадать, каким образом где-то что-то сдохло, занятие не очень продуктивное, хотя, может быть, и интересное Из вашего текста у меня не возникло однозначного понимания схемы вашего "аналогового фронтенда". Нарисуйте, если не трудно. Тогда бы я мог сказать, как бы я выполнил этот узел. Или, что с моей точки зрения, там всё хорошо и правильно. А нужно только рабочие детальки поставить
Предсказуемо - никаких чудес: битый оптрон в счетчике. Заменил - все прекрасно работает. Спойлер: Извращения Должно было быть вот так: Но поскольку вот так оно не работало совсем никак, пришлось извратиться: Вот так оно заработало, но со всеми сопутствующими помехами, которые однако удалось обойти с помощью извращений уже в коде. Это к тому, что программно можно решить и аппаратные проблемы, по крайней мере некоторые. После замены оптрона в счетчике все пришло в норму (хотя это тоже неспортивно - не в каждый счетчик можно залезть). Теперь первая схема прекрасно работает. Хотя правильнее всего наверное было бы использовать второй оптрон вместо резистора R1, ну или добавить там какой-нибудь диод-супрессор, на случай если рядом молния ударит...
Сначала по "простому" варианту, без дополнительного оптрона. Как я уже писал, я бы притянул вход МК к плюсу, чтобы выход оптопары притягивал вход к земле. Причем подтягивающий резистор поставил бы поменьше (порядка килоома или меньше), чтобы рабочий ток был порядка нескольких миллиампер. Или даже до 5-10мА, что должно обеспечить лучшую помехоустойчивость. Сюда же можно параллельно входу включить фильтрующую емкость, про которую я писал раньше. Но она, скорее всего, и не понадобится. И да, самый правильный вариант, с точки зрения помехо- и прочей защиты, это поставить еще одну оптопару. И также обеспечить ток в цепи от счетчика до входа оптопары порядка 5-10мА. А выход оптопары подключить аналогично предыдущему варианту. Но резистор подтяжки можно поставить и побольше, примерно как у вас, например, 4К7.
в этом варианте один провод от внешней оптопары лежит на "земле", а вот второй висит на пине, и удерживает его только подтяжка к плюсу МК. В случае отсоединения от оптопары на дальнем конце получаем антенну-диполь, для приема всяких помех. Как-то это не очень хорошо, КМК, но обосновать не могу. PS: кстати сказать, при попытке подключить на вход параллельно резистору светодиод, для индикации и в качестве ограничители 3В, получаем в прерывании некую множественность, хотя по осциллографу четкий прямоугольный импульс 75мс. Множественость в том смысле, что один диод дает дополнительно +2-4 к вспышке, другой +100-110. Что это за загадка такая - честно, не знаю, если наводки то почему их не видно, если фотоэффект светодиода от ламп - то почему такая разница? В общем, просто вернул контроль времени: увеличиваем счетчик если прошло более 75мс, игнорируем остальное. Теперь работает идеально. Костыль, но рабочий.
Он висит в любом случае. Но за счет достаточно низкоомной (см. выше) подтяжки, навести на него что-либо не так просто. Для этого требуется уже существенная мощность. Но цифровые входы ПЛК обычно все делаются с опторазвязкой. Ниже первые попавшиеся схемы из интернета: (И да, про триггеры Шмидта тоже не забываем )
Именно так! Многие вещи так и делаются! (Назло здравому смыслу) Иначе было бы совсем скучно жить. Включаешь какую нибудь фигню, а она просто работает и работает. Скукота! И никакой магии не ощущается.
И оно работает и работает, хоть и не по учебнику (это вообще отдельная тема для споров - но на специализированных форумах)
Этот условный "спор" похож на споры, например, о нужности образования. И, на мой взгляд, смысла не имеет. Если кто-то убежден, что он и так самый умный, а в школу ходят одни дураки, то разубеждать его в этом дело неблагодарное. P. S. Если человек понимает, почему устройство, "сделанное не по учебнику", работает правильно, значит он хорошо изучил этот самый учебник. И к нему вопросов нет. Если же не понимает, но говорит, видишь, "не по учебнику", а всё равно работает, то к нему тоже вопросов нет. И да, на "специализированных форумах" люди очень разные, как, впрочем, и везде. И на ФХ в том числе