Контроллер плавного включения ламп на AVR, с датчиком движения HC-SR501

AVR
Начинаю выкладывать свои разработки на тиньках AVR по мелкой автоматизации в квартире. Может кому пригодится.

В этом топике представляю простенький контроллер плавного включения галогеновых ламп на ATtiny9 /10.
Без плавного включения, хоть одна галогенка перегорала раз в несколько месяцев, а иногда чаще.
Заодно в него добавил датчик движения HC-SR501, выключающий свет по таймауту, если его забыли выключить.

У меня это устройство используется в ванной комнате.
Устройство включается обычным выключателем, решил не рисковать — все таки ванная комната. Далее, если не было движения в течении нескольких минут, то выключаем свет, если обнаруживается движение — снова плавно включаем.

Лампы включаются с помощью симистора, а плавность достигается медленным изменением фазового угла.
Датчик перехода через ноль построен на сдвоенной оптопаре и срабатывает по нарастающему фронту INT0.
Начало и конец импульса включения симистора выполняется в прерываниях сравнения таймера — COMPA и COMPB. В регистры OCR0A и OCROB заносятся значения начала и конца импульса.

Датчик движения — пассивный на PIR сенсоре — типа HC-SR501.
При подаче напряжения на датчик, он всегда сначала срабатывает на заданное время, которое задается резистором регулировки длительности импульса, потом сигнал снимается на время паузы, и начинается его нормальная работа.
Можно использовать это для своих целей, измерив время этого импульса при включении устройства.
Время в секундах таймаута выключения получается умножением длительности импульса датчика на 16.

Схема (D1, D3, R6 не используются, красная нумерация ножек для оптосимистора VO2223)
Схема (D1, D3, R6 не используются)
  • +5
  • 24 июля 2013, 04:28
  • vad7
  • 1
Файлы в топике: LampControl.zip

Комментарии (68)

RSS свернуть / развернуть
Не очень хорошо WDT делать в прерывании — процессор может зависнуть в теле, а в прерывание исправно входить.
И еще — при переустановке WDT тоже неплохо делать WDR.
0
Задумка была, чтобы контроллер сбрасывался, если переходы через ноль не детектились.
0
Понимаю. Но зависания — тоже наша с Вами реальность. Может, лучше в прерывании просто ставить char-флажок «здесь_был_Вася», а в теле проверить: if( Вася_там_был ) WDR();
Тогда будет по-эмбеддерски))
-1
Ну, и после проверки всегда сбрасывать флажок-то…
0
Почему-то меня всегда умиляет использование оптопарной развязки в устройствах питающихся через гасящий конденсатор!
Ну зачем они там а? Ребят… схема-то всёравно под высоким потенциалом :)
а размеры у них всегда большие… юзать 6-ногую тиньку и трёх таких монстров в ряд :) Смешно блин…
+6
Общий провод схемы управления не совпадает ни с одним проводом сети из-за использования мостового выпрямителя. Отсюда необходимость гальванической развязки.
0
классической схеме с гасящим кондером достаточно не моста а двух диодов!!! и тогда земля всей схемы будет на одном из фазных проводов.

Детект нуля через ногу МК со стабилитроном и парой резюков в мегаомм не вызовут никакого нагрева.

Управление симистором вполне легко делается транзюком каким-нить биполярником на 20 вольт 500 миллиампер в sot23

Чего я ещё якобы не понимаю?
+1
… схеме с гасящим кондером достаточно не моста а двух диодов...
Я с вами согласен, но схема не моя, я всего лишь дал объяву.
0
Можно вот так (в железе проверялось):

Фазовое управление
0
Ничего ж не видно, дай ссылку на картинку в полном разрешении.
0
Да на схеме всё типовое, что безтрансформаторная схема, что управление симистором при помощи moc. Взято из описания. Единственное отличие в детекции нуля. Я ноль программно рассчитываю при помощи компаратора. Меня как-то смущает момент, когда нужно подагаться на прерывания возле ноля. Поэтому я точку пересечения математически высчитываю, когда компаратор сравнивает текущее напряжение с каким-то порогом где-то в половину максимума.
0
Схему еще кое-как разобрать можно, а вот графики (точнее подписи к ним) — фиг.
0
Весь проект находится тут: mysvn.ru/avr/examples/PhaseControl/

Там есть схема для Протеуса, прошивки, исходники. Моделировать без анимации. У меня есть графики на весь экран, но показать их не могу, ибо по OpenID с компа сюда зайти не могу как раньше. Не знаю в чем дело. Пишет ошибку. Сейчас только с планшета.
0
А, там есть pdf файл, правда ч/б, но на нём можно посмотреть то же самое: mysvn.ru/avr/examples/PhaseControl/PhaseControl.PDF
0
Я так и не смог придумать схемы без использования MOC'а для управления симистором. При моделировании всё время где-то была разница потенциалов от 200 до 300 В на транзисторе. Т.е. я не смог найти такой вариант схемы при использовании общей земли для мк и силовой части.

Не могли бы вы привести пример как это делается? На моей схеме ниже есть этот самый MOC3023, который помещён туда именно по причине того, что я не смог правильно вставить транзистор (перепробовал кучу вариантов).
0
Делается все просто. В качестве общего провода выбирайте +5В. Тогда включать симистор можно закрытием транзистора на выходе контролера (вывод настраивать ка открытый исток). Вот схема моего таймера для вентиляции ванной комнаты.
0
Спасибо, буду пробовать. Не видел таких простых схем ещё, сам-то с работой симистора не знаком настолько, чтобы своим умом дойти.
0
Да, схема супер — ни чего лишнего!
0
Если кому нужна прошивка + полный проект — говорите, тогда сделаю пост по этому таймеру + постараюсь выложить теорию управления симистором. Кому не терпится — ссылка на архив.
0
Если можно, то с примерами модели в Протеус. Там можно и графики показать и народу дать поэкспериментировать. Не знаю только есть ли мк такой там.
Когда живьём оно как-то интереснее. Меня больше интересовало именно совмещение управления при безтрансформаторной схеме питания. Я не смог найти этих схем, видимо, не правильно искал.

Кстати, расчеты по нагрузочной способности самой безтрансформаторной схемы можно найти тут:
chipenable.ru/index.php/how-connection/item/146-raschet-bestransformatornoj-shemy.html
0
тогда сделаю пост по этому таймеру + постараюсь выложить теорию управления симистором.
Делай конечно!
+2
Ахтунг косяк. По схеме указан контролер STM32S003F3 — это я ошибся при создании компонента, правильное название STM8S003F3P6.
0
Оппа, это уже интереснее :)
0
Обновил архив. Теперь в программе использовано WDT. и исправлены обозначения на схеме, а также упрощена цепь программирования. Прошу воздержаться от использования программы до 30.07.2013. Исправления вносились на работе и поэтому не проверены. Сегодня вечером проверю. Топик тоже в черновиках — ждет проверки программы.
0
выкиньте мост, катод симистора — на общую землю, тогда можно управлять прямо с порта контроллера…
0
и оптопары на переход нуля тоже не нужны
0
Какой мост и какие оптопары? У меня там просто диод и делитель, которые пропускают полуволны. MOC этот развязывающий, так как я объяснял, что без него у меня не получалось воткнуть транзистор так, чтобы его не убило высоким напряжением. Я находил в сети схемы, но они были не для безтрансформаторной схемы питания.
Теперь вот народ показал как нужно правильно всё подключить, чтобы силовая часть не убила слаботочку.

Лично мне детекция нуля нужна была для экспериментов по фазовому управлению программным способом.
0
зачем транзистор? управляйте симистором с порта контроллера, через резистор 200..1000 Ом.
0
Судя по картинке выше, одного порта не достаточно :) Видимо по этой причине схемы, которые я видел, использовали внешний ключ. Кроме того в описании на симистор в табличке можно увидеть, что ток через Gate может превышать 25 мА.
Если я не до конца понимаю что-то в схеме, то стараюсь сначала найти что-то готовое, потом прогнать через симулятор или посмотреть в статике на токи, напряжения, смещения, после этого уже можно что-то наваять в железе. Тем более, когда у тебя такая схема. Я даже осцил себе специальный купил на аккумуляторе, который по BT данные передаёт, чтобы обычные ненароком не угробить случайным неправильным включением.

Теперь я вижу реальные схемы, реальных людей и могу проделать всё то же самое — промоделировать, посмотреть на потенциалы, проверить работу с программой и затем наваять прототип, на котором сравнить расчетные данные с фактическими.
0
ну вот пример готовой схемы:
а симисторы с управлением на 25мА — это неправильные симисторы.
многим достаточно сотни микроампер (т.н. Sensitive gate triacs)
0
Величина управляющего тока берется из справочника в зависимости от используемой зоны управления, два порта я использовал для перестраховки. Величина тока ограничена резистором. Для использованного типа симистора достаточно ~20мА.
0
да, но для открытия достаточно короткого импульса 50..100мкс.
порт АВР в импульсе может выдать 40..50 мА.
0
К сожалению, мой цифровой развязанный осцилл не замечает таких импульсов, приходится для проверки уширять их до «видимых» размеров, чтобы понять, а работает ли программа как задумано? На моей схеме выше это видно — прямоугольные импульсы широкие, это сделано специально для того, чтобы я их мог зафиксировать в железе :)

Схему-то все привели, а вот что там в действительности внутри творится кто покажет?
0
Прежде чем подключать нагрузку и вообще силовую часть, я сначала отлаживал безтрансформаторную. Подключил значит, смотрю импульсы на выходе таймера, а их нет ;) вот думаю, что за фигня, когда на модели они есть, хорошо до меня сразу дошло в чем причина. Расширил, появились, протестировал программу, а потом уже управлял симистором.
0
К сожалению, мой цифровой развязанный осцилл не замечает таких импульсов
50-100мкс не видит? Их же даже мой Nano DSO ловит! Или мешает какая-то другая причина?
0
Ну, может я что там пока в настройках не нашёл как через BT проганять трафик. В общем, с ходу и даже немного покапавшись не осилил увеличение разрешения. Это я про oscill рассказываю. Может там как-то записывать сначало надо, а потом просматривать в таком случае, не осилил пока. При просмотре в реальном времени по триггеру приходится пока уширять импульсы.

По крайней мере я могу делать снимки эрана с ним нормальные. Другого инструмента пока нет. Обычными С1, которые есть, пользоваться боюсь, ибо если каналы не так подключу, то будет бум.
0
как к этой схеме прикрутить PIR датчик движения? сигнальную линию PIR напрямую заводить на ногу МК?
0
Не нашел расчет схемы для двух кондеров. В интернете есть только для моста либо для однополупериодного.
0
Ага, вот нашел — ток в два раза меньше при той же емкости кондера.
issh.ru/content/bestrans-ip-s-gas-kond/prostojj-setevojj-bestrans-ip-s-gas-kond/111/
0
Смешно не смешно, а сделал для точности определения перехода через ноль, чтоб оба полупериода детектились. Контроллер не хило может нагреваться в закрытом корпусе.
0
И не трех, а двух. 2 для схемотичности нарисованы, используется одна AC типа.
0
используя два регистра сравнения легко можно сделать диммер имея прерывание один раз за весь период а не за каждый полупериод!

при тактовой 1 мегагерц достаточно 10-ки тактов подождать для надежного открывания симистора(я уже не говорю про кондер с диодом на базе управляющего биполярника)

Я делал себе подобную схему с батчиком движения, tsop и кнопочками. она вышла в пол спичечного коробка по площади. А в Вашей схеме применение МК очень сомнительно :) плавный розжиг можно было организовать и намного проще :)
0
… плавный розжиг можно было организовать и намного проще
на аналоговых компонентах, без контроллера.
0
ну а я о чём? динистор и пару кондеров…
0
Например, можно взять за базу сенсорный выключатель освещения, ВРЛ № 88, с. 63—68. А можно и любой другой, подобных схем немало.
0
Проблема динисторных схем в том, что они открывается при привышении напряжения бдлиже к пику, а не при переходе через ноль. Таким образом при включении света на холодную нить (низкое сопротивление) подастся гарантированно высокое напряжение, а следовательно и потечет гарантированно большой ток, который и приводит к перегоранию ламп. И именно перегорание ламп в статье упоминается как причина создания схемы.
Я ещё не встречал схем на динисторах, включающих при переходе через ноль.
0
раз так то фтопку переходы нуля и симисторы — они годятся для регулирования нагрева ТЭНов спиральных не более!

Мостик и полевик? НЕ &d 100500 раз проще, можно обойтись без МК вообще! взяв любой таймер :) хоть 555
0
Ну так я программировать больше люблю :)
0
И чаво? Я себе в прожектор на 500Вт с галогенкой поставил вобще примитив — реле + резистор. Почти год работает лампочка стоимостью в 0,5$, полет нормальный. Зачем меряться? Сделал человек, поделился, это его дело.
+2
Кто тут меряется!?
У меня сверху не написано, что это самое дешевое/простое устройство.
Просто достает уже в каждом топике — «а это можно было сделать проще».
Ну так и сделай и выложи это, чтоб другим была помощь.
+2
Мой ответ был адресован clawham, а именно его высказыванию «можно обойтись без МК вообще! взяв любой таймер :) хоть 555». Всегда есть проще и лучше, но в конкретной сделано так, как сделано.
0
По галагенкам добавлю — при плохой сети или низком качестве ламп горят стабильно раз в месяц минимум. Это если без плавного пуска.
0
Сорри, к движку блога ни как не привыкну.
0
Задачу поставил себе сделать на мк. :)
0
Интересно было бы посмотреть.
0
Без плавного включения, хоть одна галогенка перегорала раз в несколько месяцев, а иногда чаще.
И как, стало лучше? Вроде я слыхал что фазовые регуляторы даже ухудшают срок службы ламп, да и несколько сомнительно ограничение тока ими.
Датчик перехода через ноль построен на сдвоенной оптопаре и срабатывает по нарастающему фронту INT0.
Учитывая, что гальванической связи нет — вполне можно обойтись без оптопар, более компактными и дешевыми детальками.

На схеме указан оптосимистор MOC3062, который ну никак не подходит для фазовых регуляторов.
0
  • avatar
  • Vga
  • 24 июля 2013, 10:33
Уже чуть ли не год не заменил ни одну.
Изделие сделано для себя, мне так проще поставить одну детальку.
Да очепятка, у меня стоит VO2223.
0
Учитывая, что гальванической связи нет
Опять меня глючит. «Гальванической развязки», конечно же.
0
хватило бы и просто детектора перехода 0 (лампы чаще горят в момент включения на максимуме напряжения).
еще можно в начале срезать одну полуволну.
все это делается без контроллера.
-1
Да ради бога, я сделал так, устройство работает, исходник есть, кому надо воспользуется, кому не надо — нет.
Все щастливы! :-)

За замечания — всем спасибо!
+2
Лично я мк включил для того, чтобы можно было им управлять удалённо через опторазвязанный 485 по modbus'у. Поэтому модель к виртуальному порту подключена.
0
У меня такой вот дивайс стоит на лампочки накаливания. Правда, иногда устройство глючит,
толи из за программы толи из за нестабильного питания. Может, кому схема пригодиться….

0
Заметил такую фишку, что долгое время держались в ходу лампы накаливания. Потом резко стали появляться энергосберегающие лампы, народ кинулся покупать их. Но теперь и эти лампы начинают отмирать. Их начинает давить светодиодное освещение. На мой взгляд галогеновые лампы сегодня не практичны. Греются капитально, энергии жрут немеряно. Лучше уж как мне кажется писать статьи про светодиодное освещение. За этим будущее. Хотя кто знает, может опять что нибудь новое придумают.
0
Галогенки хоть и жрут энергию, но зато не гворают так часто как энергосберегайки. В итоге по деньгам галогенки выгоднее получаются.
P.S.: А зимой ещё квартиру обогревают (если вспомнить качество отопления).
0
На лампах накаливания писали 1000 часов работы. На галогенках пишут 8000 тыс часов. На энергосберегающих писали 10 лет! Но как оказалось это все туфта, горят тока так. Например в белорусии издали закон на лимит потребления энергии в месяц на квартиру 180кВт. Если перерасход, тогда плати нехилую деньгу в казну. Поэтому галогенки стали не практичны и другие разные там электроплиты и пр. У светодиодов 5 лет дают непрерывного горения. Это вещь. Кажется что лучше на них переходить, они и бесшумны, а от некоторых энергосберегаек слышен шум когда работают. Хотя в любом случае сегодняшняя коммерция и кривая система не оставят покупателя в выгодном положении. производители свои денежки отхапают на любом виде освещения.
0
Не «180кВт», а 150 кВт·ч без электроплиты, вторая ступень — 300 кВт·ч.
0
И разве этого не хватает? Вы не пробывали выключать свет скажем в сартире, когда вы в нем не сидите, или комп вырубать на ночь, или зомбоящик — когда его не смотрите. Или у вас камин круглосуточно включен?
Вполне достаточно и не в ущерб здоровью (в частности нормальное освещение во время работы за компом, и не в потемках бродишь).
-1
У меня в доме единственное место где лампы накаливания — это ванна, светильники такие — маленькие, водонепронициемые.
Лампы в них 2х40Вт. Другое туда не лезет.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.