Акустический выключатель на микроконтроллере.
Возникла необходимость в тамбуре сделать автоматический выключатель. Рядом живут злые соседи, которые экономят электричество, постоянно выключая лампочку 25Вт и при этом постоянно ругаясь. К тому же, сам процесс ужасен: открываешь одну дверь, нащупываешь на стене выключатель, закрываешь,открываешь другую дверь, потом выключаешь свет.
Самое ценное, как Вы знаете,- это нервные клетки, которые не восстанавливаются. Поэтому было решено модифицировать сам выключатель. Нет, не изменить схему подключения лампы, а именно заменить сам выключатель на что-то умное и доброе. Умное- значит придется задействовать МК. МК должен чем-то питаться, а вот тут главная проблема- если выключатель замкнется, то на нем не останется напряжения. Вторая проблема- необходимо плавно изменять яркость освещения и постоянно следить за фазой в сети. При плохом контакте в патроне, могут "выпадать" целые периоды в сети. В данной конструкции применен блок питания с режимом отсечки и цифровая PLL, которая постоянно следит за фазой и управляет нагрузкой в не зависимости от помех. Точность определения фазы- менее 1%. В устройстве присутствует быстродействующая ( время срабатывания меньше 100мкс)токовая защита от замыкании в нагрузке.
Схема автоматического выключателя
Управление происходит от акустического датчика. Алгоритм работы устройства следующий. Постоянно происходит захват фазы. Как только рядом с устройством будет шум определенного уровня и длительности, в течении 1 секунды плавно включитться лампа. Через 40 секунд она плавно погаснет. Если звуки будут продолжаться после 10-й секунды- будет каждый раз продлеваться время горения лампы. Если произойдет замыкание в цепи нагрузки- свет мгновенно отключиться. Выключатель проверен с лампами мощностью от 40 до 150 Вт.
Диодный мост можно применить на 4А и вместо 2sk2996 можно 2sk2545
По просьбам добавлена функция включения только в темноте.
Теперь PB2 нужно притягивать к 0 (соединить с землей) для включения освещения. При появлении там "1" свет не включится.
Номинал подстроечного резистора подбирается в зависимости от номинала фоторезистора.
Не возникало никаких с этим проблем?
И еще!
// Управляем лампой в зависимости от ее значения кванта
if (phase_tick==max_measured_phase_tick-light_on)
{
if(light_on<=10) LAMP=0;
else LAMP=1;
}
if (phase_tick>=max_measured_phase_tick-10) LAMP=0;
Т.е. имеем, что (при max_measured_phase_tick=100) лампа включается при phase_tick равной light_on при значении 50, и выключается при значении 90, т.е. работает на спаде полупериода, но при этом включается каждый раз при максимальном значении (или близком) амплитуды сетевого напряжения т.е. на гребне полупериода. Если я прав, может так сказать "еще бережнее отнестись к лампе" (типа дольше проживет) и включать ее немного бережнее и раньше, скажем во второй
трети или четверти полупериода, когда амплитуда напряжения не
максимальна, давая таким образом время на "раскачку". Хотя конечно же в нашем случае устройство само по себе для ситуаций когда лампа большую часть времени "выключена". Не пинайте больно если не прав!))) я только учусь!!! Жму ручищу!!!