Ну собственно видео
http://www.youtube.com Выключатель с плавным ключением
http://www.youtube.com/watch?v=R7TeObz_ ... tCmXwsB30=
Комментарий:
1)гаснет свет
2)просто включаем-включается на 100% вкл
3)перевожу в режим программирования, выкл-вкл
4)выключаю на нужной яркости, потом опять включаю, загорается на уст яркости выкл-вкл
5) перевоже опять в режи программирования выкл-вкл
6)после 3-х раз возвращается к предыдущим настройкам
7) выкл ждем 2-3 сек(сброс) вкл вулючается на 100%

далее аналогично включаю очень маленькую яркость.
Артифакт ввиде короткого подмиргивания из за применения симистора 4 квадрантного (нужны: 3-quadrante, snabberless, low current) или установка дросселя.
Архив с проектом привожу во вложении.
Хекс скомпилен для контроллера PIC10F200 !!!!
В архиве создан проект для MPLAB 8.66.
В настройках IDE выбираем свой контоллер из серии PIC10FXXX, компилируем, и чем есть шьем.
Код хорошо закомментирован, так что если есть желание- можно модифицировать...
Алгоритм в двух словах:
- меряем время длительности периода, делим пополам, запоминаем.
- синхронизация- отрицательная полуволна, положительная высчитывается как 2Т.
- каждый отрицательный фронт сотрим когда мы туда пришли, если опоздали на опред. время, то определяется, или это мы выключили выключатель, или трансформатор стал не нагруженным ( определяется как задержка фазы).
- если это ошибка синнхронизации или это по поводу трансформатора, то на пересинхронизацию, иначе режим регулирования.
- с ненагруженным трансом никогда не включиться, т.к. меряем через LC цепь, если открываем симистор, С уходит и L сдвинет фазу, что приведет опять к сбою, в итоге транс не согит. Принципиально не делал там вечного цикла, т.к. может быть такая ситуация на длинных проводах, сбоях в сети, могут быть левые зависания.
Ну как то так....