![]() |
![]() |
#11 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Тема по датчик тока выяснила что я не докнца понимаю алгоритм работы Диммера, счел что разобраться в нем будет уместнее здесь.
Итак: как я вижу алгоритм работы диммера такой: 1. Оптрон отлавливает нулевую точку когда синусоида пересекает 0 и движется вверх(начало периода) через внешнее прерывание INT запускается алгоритм обработки по подъему. При этом после прохождения нулевой точки симмистор закрыт и ток через него не проходит 2. Обнуляется счетчик tic и запускается таймер с интервалом в 40 микросекунд (т.е. в полупериоде 250 срабатываний таймера) 3. Каждое срабатывание таймера счетчик tic увеличивается и по достижении его значения переменной Dimmer на выход подается логическая единица и симистор открывается и на лампочку идет ток 4. Когда синусоида спадая вниз вновь достигнет 0, срабатывает прерывание и включается его обработчик на спад - выключается симистор, ток не течет, таймер останавливается и дальше все так до первого пункта Вот где-то тут я не то понимаю, судя по тому что админ написал что регулирование осуществляется и по нижнему полу периоду, в обработчике прерывания на спад должно быть примерно так же как и в обработчике на подъем с запуском таймера и т.д. В старом коде http://www.cyber-place.ru/showthread.php?t=191 видно что обрабатывались оба полупериода, а вот в новом чет не понимаю. Уж простите за вопросы новичка. И второй вопрос - если вместо оптрона использовать датчик тока, то он подключается на аналоговый вход, соответственно работа по прерыванием у него возможна только по PCINT, не определяющий спад и нарастание, соответственно это придется обрабатывать программно или через библиотеку. Или есть еще какие-то решения более разумные? |
![]() |
![]() |
Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
|
|