Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Вы когда-нибудь задумывались о создании системы аварийного освещения при отключении основного питания. А поскольку у вас есть даже небольшие познания в области электроники, вы должны знать, что вы можете легко проверить наличие сетевого питания, просто измерив напряжение.
Но я хочу сказать о совершенно другом подходе. Я предлагаю измерить напряженность электростатического поля рядом с основным проводом питания и отфильтровать это считывание и использовать его в соответствии с нашим использованием. Преимущество этого подхода в том, что мы полностью электрически изолированы от основного источника питания, и я могу сказать, что это неинвазивно (даже если вы используете оптоизолятор, необходимый для работы от сети) Этот проект состоит из 3 основных частей,
- датчик статического электричества
- процессор сигналов на основе фильтра Калмана
- релейный световой контроллер.
Шаг 1: датчик статического электричества
Ребята, это простейший датчик статического электричества, который есть. это просто пара транзисторов Дарлингтона.
- Я использовал 2 NPN-транзистора C828, но любые 2 NPN-транзистора общего назначения подойдут.
- Благодаря экстремальному усилению пары Дарлигтон мы можем измерить изменение статического электричества в точке входа.
- Просто используйте изоленту и приклейте входной штифт изоляцией от сети.
там к свету в моей комнате идет провод 230 В переменного тока, и я только что приклеил провод пары Дарлигтон к кожуху, по которому проходит этот провод.
Шаг 2: обработка сигнала с помощью Arduino
Я использовал для этого Arduino nano. Но можно использовать любой вариант Arduino.
В основном здесь будет обрабатываться показание напряжения со статического электрического датчика, я объясню код в конце документа.
Затем цифровой контакт 9 изменяется соответствующим образом, поэтому аварийным светом можно управлять через реле.
Шаг 3: Полный контур
Реле приводится в действие силовым транзистором, и есть диод с обратным смещением, чтобы избежать повреждения транзистора обратным индуцированным напряжением катушки реле.
Смело меняйте проводку реле и получите лампочку с любым напряжением.
Шаг 4: объяснение кода
В этом коде я реализовал 2 каскадных фильтра Калмана. Я создал этот алгоритм, наблюдая результат на каждом шаге, и разработал его, чтобы получить желаемый результат.
Шаг 5: объект Калмана
здесь я сделал класс для фильтра Калмана. включая все необходимые переменные. Здесь я не собираюсь подробно объяснять значения переменных, поскольку вы можете найти это на других сайтах. Тип данных double подходит для обработки требуемой математики.
Значение 'R' я выставляю по следам и ошибкам, наблюдая за выходом 1-го фильтра, я увеличивал его до тех пор, пока не получил сингл без шума, как показано на втором рисунке. Значение Q является общим для всех одномерных фильтров Калмана. Найти для этого подходящую ценность - утомительная задача, поэтому лучше пойти попроще.
Шаг 6: объект Калмана и установка
- здесь реализован фильтр Калмана
- Из него сформировано 2 объекта
- pinModes были установлены для получения данных и вывода сигнала для реле
Шаг 7: цикл
Сначала я отфильтровал входной сигнал, затем посмотрел, что происходит, когда питание от сети переменного тока присутствует, и когда оно отсутствует.
Я заметил, что разница меняется при включении сети.
поэтому я вычел 2 последовательных значения выходных данных фильтра и принял их как дисперсию.
Затем я наблюдал, что с ним происходит, когда я включаю и выключаю сеть. Я заметил, что при переключении происходит значительное изменение. но проблема заключалась в том, что цены сильно колеблются. Это можно решить с помощью бегового средства. но поскольку раньше я использовал калман, я просто каскадировал другой блок фильтра для дисперсии и сравнивал выходные данные.