Как прочитать схему светодиодного индикатора беспроводного дверного звонка

У меня есть дешевый беспроводной дверной звонок. Мой план состоит в том, чтобы включить ESP8266 и включить дверной звонок от выхода микроконтроллера 3,3 В, так как дверной звонок также работает на 3 В

Я специально выбрал модель со светодиодом, так как думал, что светодиод будет легко использовать в качестве триггера на ESP8266 и использовать в качестве цифрового входа.

Я припаял два провода от положительной и отрицательной точек припоя светодиода. Что я нахожу странным, так это то, что я измеряю 3 В между заземлением печатной платы и положительным светодиодным проводом, когда дверной звонок не срабатывает. Если я измерю расстояние между отрицательным светодиодным проводом и положительным светодиодным проводом, я увижу скачок напряжения, соответствующий каждой светодиодной вспышке (она мигает 5 раз). Я планирую отказаться от этого в программном обеспечении.

Я не ожидал, что буду измерять напряжение, когда дверной звонок не срабатывает между положительным светодиодным проводом и заземлением печатной платы, и это определенно не сработает так, как я предполагал.

Отказ от ответственности: Я не инженер-электронщик, и мое испытательное оборудование состоит из мультиметра.

Я включил фотографию печатной платы. Он помечен как "QH-823A-19", но поиск этого в Интернете не дал никакой полезной информации.

Что я пробовал?

  1. Я пытался отследить дорожки, ведущие к точкам припоя светодиодов, но дорожки проходят под некоторыми компонентами, что затрудняет это
  2. Я пытался измерить разные точки на плате для положительного всплеска 3 В, когда светодиод мигает, но безуспешно

Есть какие-нибудь советы о том, как этого добиться? Я что, иду по этому неправильному пути?

, 👍1

Обсуждение

Светодиод будет подключен так, чтобы анод был подключен к +3 В, а катод-к выходному контакту MCU. Установите значение "ВЫСОКИЙ", светодиод выключен, а значение "НИЗКИЙ" включено. Это обычное явление, так как исторически микроконтроллеры могли пропускать больше тока, чем они могут генерировать, и, возможно, у этого микроконтроллера есть специальный вывод с ограниченным током для управления светодиодом, чтобы уменьшить количество требуемых внешних компонентов., @Majenko

Я измерил напряжение между катодным проводом и заземлением печатной платы. Он считывается как высокий, когда светодиод не горит, но пульсирует до НИЗКОГО, когда светодиод начинает мигать Если я вас не неправильно понял, я на самом деле не хочу включать светодиод с микроконтроллера, а скорее определять с помощью микроконтроллера, когда индикатор горит. Тогда я думаю, что, возможно, я смогу установить высокий входной сигнал и определить, когда он становится низким?, @Will777

Подумайте о том, чтобы выбросить купленный в магазине комплект дверного звонка, так как процессоры ESP обычно имеют встроенные антенны с радиоприемниками WI-Fi, позволяющие им напрямую подключаться к вашей домашней сети. Если работает от батареи, опция WI-FI может быть заменена сетью ESP-NOW с изменением программного обеспечения в коде ESP. Но затем вам нужно будет создать какой-то сетевой ESP-ТЕПЕРЬ для подключения WI-FI где-нибудь в вашем доме., @st2000

"Я измерил напряжение между катодным проводом и заземлением печатной платы. Он считывается как высокий, когда светодиод не горит, но пульсирует до НИЗКОГО, когда светодиод начинает мигать"... так что @Majenko прав. На самом деле, он должен показывать 3,3 В - падение напряжения светодиодного диода. Так что, может быть, 2,5 В при высоком напряжении., @st2000

Возможно, вам захочется передать сигнал через компаратор, чтобы убедиться, что он становится достаточно высоким, чтобы регистрироваться как ВЫСОКИЙ на ESP. Либо это, либо используйте аналоговый вход для считывания напряжения, которое не будет возражать, если оно недостаточно высокое, чтобы быть ВЫСОКИМ, так как в этом случае вы можете определить свой собственный порог в программном обеспечении., @Majenko

st2000: Да, тоже жизнеспособный подход. Но это просто и дешево, у вас все еще есть работающий дверной звонок, и ESP-ТЕПЕРЬ приносит другие сложности. У меня уже работает брокер MQTT, это казалось намного проще, @Will777

Майенко: надеюсь, я смогу сработать на низком уровне, иначе считывание аналогового входа-это определенно вариант, @Will777

Если у вас уже запущен брокер MQTT, подумайте о добавлении NodeRed на тот же компьютер. Это добавит графический интерфейс программирования, в котором вы сможете принимать сложные логические решения на основе любого количества входных данных. Например, вы могли бы, позвонив в дверь, проверить, село ли солнце в вашей части света, и включить свет на крыльце на 5 минут, если есть., @st2000

Вы можете запускать только на НИЗКОМ уровне, если вы также не запускаете на ВЫСОКОМ. НИЗКОЕ-это НИЗКОЕ только потому, что оно не ВЫСОКОЕ. Если ваш "высокий" уровень напряжения недостаточно высок, чтобы быть фактическим ВЫСОКИМ, вы не сможете заставить его перейти от ВЫСОКОГО к НИЗКОМУ. Вы просто застрянете в неопределенной области между МАКСИМУМОМ и МИНИМУМОМ., @Majenko

Входы, как правило, являются "Триггерами Шмитта". У вас есть два порога - высокий порог (VIH) и низкий порог (VIL). Вы должны подняться выше VIH, прежде чем он переключит вход на ВЫСОКИЙ. Затем он должен опуститься ниже ВИЛА, чтобы переключиться на НИЗКИЙ уровень. Если он никогда больше не достигнет VIH, он всегда будет НИЗКИМ, даже если он выше VIL., @Majenko

Спасибо, Майенко, я принял ваш ответ, и мне нужно больше экспериментировать. Теперь у меня гораздо больше информации, чтобы продолжить, @Will777


2 ответа


Лучший ответ:

1

Ваш светодиод подключен между V+ и GPIO микроконтроллера. Это обычная схема, потому что исторически микроконтроллеры могли поглощать больше тока, чем они могли бы генерировать. Также проще сделать источник постоянного тока "низкой стороны", который может быть у этого пользовательского чипа, чтобы уменьшить количество необходимых внешних компонентов.

Чтобы прочитать состояние, вам нужно измерить напряжение на катоде светодиода, подключенного к заземлению цепи дверного звонка. Это даст вам напряжение на уровне или вблизи напряжения питания платы, когда светодиод выключен, и более низкое напряжение (близкое к нулю, но, вероятно, не равное нулю), когда светодиод включен.

Если напряжения находятся в пределах пороговых напряжений VIH и VIL ESP8266, то вы можете просто напрямую прочитать этот уровень как логический уровень. Если нет, то вам, возможно, потребуется "настроить" напряжение, чтобы обеспечить надлежащие логические уровни.

Например, вы можете использовать компаратор (операционный усилитель, работающий в "насыщенном" режиме), чтобы сравнить это напряжение с одним пороговым напряжением, которое находится примерно на полпути между ВЫСОКИМ и НИЗКИМ напряжениями. Это затем изменит выход между уровнями напряжения питания и заземления, что даст вам гораздо более чистый сигнал.

Или вы можете использовать аналоговый вход (у ESP8266 есть только один, и он довольно грубый, на нем разрешено только 1,1 В, поэтому потребуется делитель напряжения) для измерения напряжения и сравнения в программном обеспечении.

Другим вариантом было бы полностью удалить светодиод и заменить его оптопарой, тем самым превратив сам светодиод в кнопку с электронным управлением для ESP8266. Это также позволит надежно изолировать ESP8266 от дверного звонка.

,

Некоторые отзывы о предложенном вами решении, Майенко. Это работает нормально. Я решил пойти по маршруту оптрона, я добавил PC817C, на входной стороне я использую анод и катод светодиодного выхода из схемы дверного звонка с небольшим резистором 56E, на выходной стороне у меня есть небольшая схема отключения, которая подключается к цепи защелки питания (P и N-канальный МОП-транзистор), которая включает ESP8266, он подключается к Wi-Fi и отправляет сообщение MQTT, а затем устанавливает штифт защелки низко, чтобы снова отключить цепь., @Will777


0

Триггер Шмитта с использованием компаратора

Если вы последуете совету @Majenko по использованию компаратора, вы можете добавить к нему гистерезис с помощью нескольких резисторов, чтобы создать инвертирующий триггер Шмитта. Это повысит помехозащищенность и, таким образом, уменьшит шум, поступающий на ESP8266. Следующее моделирование имеет зашумленный вход, преобразованный в квадратные импульсы. Он также выполняет небольшой сдвиг уровня с входа 3 В на выход 3,3 В.

Рисунок 1 – Схема триггера Шмитта.

Schmitt trigger simulation waveforms

Рисунок 2 – Моделирование триггера Шмитта.

Гистерезис в сравнении с фильтрацией нижних частот

Существует тонкая разница между гистерезисом и фильтрацией нижних частот.

Следующая экспериментальная схема, рис.3, демонстрирует это различие с помощью интерактивного моделирования, в котором вы можете нажать на переключатели, чтобы добавить/удалить шум и добавить/удалить фильтрацию.

Фильтр нижних частот имеет частоту среза 40 Гц.

Я установил высокий порог, Vt+, на 2,31 В, а низкий порог, Vt-, на 1,54 В. Я рассчитал эти цифры из таблицы данных 74HC14, используя пороговые значения для 3 В при 25°C и масштабируя их для 3,3 В.

Рисунок 3 – Схема, показывающая разницу между гистерезисом и фильтрацией нижних частот.

Гистерезис обеспечивает большую помехозащищенность и преобразует медленно меняющийся сигнал в прямоугольную волну, готовую для цифрового ввода. Но он не может отфильтровывать всплески шума, которые нарушают его пороговые уровни. Эти всплески заставили бы триггер Шмитта выводить квадратные импульсы. См. оранжевую секцию на рисунке 4.

Фильтрация нижних частот отфильтровывает высокочастотные всплески, которые могут нарушить верхний и нижний пороги триггера Шмитта. Смотрите зеленую часть рисунка 4. Обратите внимание, что это также приводит к сдвигу фазы. Если бы шум создавался переключением-отскоком, то фильтр нижних частот выполнял бы отскок. Синяя секция представляет собой идеальный мир, в котором нет шума, нет необходимости в фильтрации, а выход находится в фазе с входом.

Simulation of hysteresis versus filtering.

Рисунок 4 – Моделирование гистерезиса в сравнении с фильтрацией нижних частот.

,

Тим, спасибо за предложение, я опробовал 74HC14 как часть аппаратного решения для отмены, и, похоже, оно работает хорошо. Как я уже упоминал, я любитель, поэтому у меня нет опыта в области электроники (я специалист по компьютерным наукам). На предоставленной вами принципиальной схеме входной сигнал поступает слева, где я вижу частоту 40 Гц? К чему подключается линия между нижним резистором и землей, выходящей влево?, @Will777

@Wil777, 74HC14-хороший выбор для очистки медленно меняющегося сигнала и создания прямоугольной волны для цифрового входа, но он не будет выполнять отключение. Рассмотрим всплеск шума, который пересекает оба порога срабатывания - он выдаст короткую прямоугольную волну. Отключение выполняется фильтром нижних частот, либо в аппаратном обеспечении с RC-фильтром перед триггером Шмитта, либо в программном обеспечении с алгоритмом отключения, либо и тем, и другим., @tim

Тим, у меня действительно есть RC-схема в сочетании с 74HC14, но мое понимание того, что 74HC14 также обеспечивает гистерезис, было основано на статье, которую я прочитал в hackaday под названием "Встраивайтесь с Эллиотом: Избавьтесь от своих шумных кнопок"., @Will777

@Will777, существует тонкая разница между фильтрацией нижних частот для отмены и гистерезисом для изменения формы сигнала. Я обновил свой пост, чтобы объяснить это. Я только что просмотрел хакадейские статьи Элиота. Он говорит то же самое: Этап 1 - фильтр нижних частот для отмены; Этап 2 - гистерезис для изменения формы сигнала; Этап 3 - алгоритм отмены программного обеспечения. Кстати, вот мой "[Окончательный Дебоунер(подлинная тм)!](https://github.com/TimMathias/Arduino-Debouncer)" или ваши деньги обратно :-), @tim

Спасибо, Тим, хорошая статья, и я вижу, что она подходит для многих различных конфигураций программного обеспечения. Поскольку мой микроконтроллер выключен, и я запускаю защелку питания, чтобы запустить его от дверного звонка, аппаратное обеспечение предпочтительно для отключения. Это работает очень хорошо, @Will777