В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Лампочкометр - контроллер освещения, прибор для отображения количества исправных ламп

📆1 декабря 2009   ✒️Discover   🔎27.702   💬12  

Пролог

С 2006 года я по совместительству работаю в своем доме электриком.
Причины тому у меня были следующие:
1. Дом новый, все электрооборудование новое. Я не мог допустить, и это было в моих силах, что бы вся эта «красота» пришла в упадок, как это у нас обычно бывает.
2. Меня всегда волновал вопрос качественном обслуживания собственников жилья (не только по электрической части), то есть, на сто процентов освещенные места общего пользования и исправность электрооборудования. Ну, и раз уж я смог устроиться электриком – мне и карты в руки. И тем более у меня был один значительный козырь: ранее работая по договору со строительной компанией, строящей наш дом, я осуществлял монтаж электропроводки и электрооборудования дома, и, следовательно, очень хорошо знаю всю схему электроснабжения.
3. Ну, и напоследок, не кривя душой – не на первом для меня месте, это дополнительный заработок, который покрывает квартплату на сто процентов.

Свои обязанности я выполнял добросовестно но, в конце концов, мне надоело бегать попусту по этажам со стремянкой, лампочки не всегда перегорают, а обход делать нужно регулярно.
Вот тут меня и осенило!!! придумать устройство, которое бы показывало мне, в каком подъезде перегорела лампочка.
Это собственно было вступлением, теперь позвольте перейти непосредственно к сути вопроса и рассказать Вам, как это было…

Итак, есть объект, в моем случае - это пять подъездов по пять этажей, и есть задача – ИНДИКАТОР КОЛИЧЕСТВА ЛАМП. Естественно, было несколько схемных решений, первые из которых ушли в историю, но было бы не справедливо хотя бы вкратце не упомянуть о них.
Принцип измерения во всех версиях контроллеров основан на измерении тока в цепи.
В каждом подъезде по пять ламп одинаковой мощности, ток изменяется линейно по количеству ламп. Контроллер я разместил в подвале, в электрощитовой.
Схемы могут незначительно отличаться от реальных, поскольку всякие доработки происходили на рабочем образце. Далее по тексту схемы 2, 3, 4 не приведены из-за не состоятельности.

Схема первая

Сигнал снимается с сопротивления R1 0,1 Ом зашунтированного двумя диодами D1 и D2, включенными встречно направленно – выполняют защитную функцию. Дальше сигнал усиливается ОУ
U1A, выпрямляется и поступает на компаратор U1B. Компаратор настраивается переменным резистором RV1 на порог срабатывания, когда количество ламп меньше пяти. Светодиод зажигается, когда есть нагрузка и количество ламп меньше пяти, если нагрузки нет, считается, что свет выключен. Пять ламп зараз, за мою практику никогда не перегорало. Данное решение имеет существенный недостаток – о том, что перегорела лампа, я мог знать, только когда свет включен.


Схема вторая

Индикация осуществлялась путем передачи СМС. Узел измерения остался прежним, а на выходе был подключен микроконтроллер AT89C51 с подключенным к нему сотовым телефоном. Микроконтроллер отслеживал состояния выходов схем измерения. Программу мне написал мой коллега на основной работе (в то время сам я еще не писал и имел только общие представления о микроконтроллерах). Идея, по моему мнению, была хорошей, но не прижилась по двум причинам: первая – в один прекрасный момент схема «глюкнула» и завалила меня ложными СМСками. У меня тогда не было своего ключа от подвала, а времени было два часа ночи, я просто выключил звук на своем телефоне. Утром взял ключ у председателя, сходил в подвал и отключил контроллер до выяснения причины «глюка»; причина вторая – пока я выяснял причину «глюка», решил, что мне в своем доме не актуально оповещение через СМС потому как, практически каждый день я прихожу домой и могу совершенно бесплатно смотреть на индикатор дома.

Схема третья

Было принято решение о цифровой обработке сигнала. Опущу подробности изысканий, но, в конце концов, выбор мой пал на микроконтроллеры Atmel семейства AVR. Не знаю, почему на AVR, а не на PIC от Microchip, наверное, по алфавиту J. На тот момент я еще не знал ни цен, ни архитектуры микроконтроллеров. Меня устраивало наличие восьми десятибитных каналов АЦП на борту у ATmega16(самый популярный). Сигнал также снимал с резистора, усиливал на ОУ, выпрямлял и подавал на вход АЦП микроконтроллера. В качестве индикатора использовал LCD-индикатор 16х2 строчки. И один сигнальный светодиод. Надо сказать, что на тот момент мои знания языков программирования высокого уровня были практически на нуле. Были остаточные знания со времен ZX-Spectrum с его Бэйсиком. Поэтому первые прошивки писались на mikroBasic_for_AVR. Синтаксис знакомый, встроенные функции для работы с индикатором. Компактность кода и быстродействие меня не волновало, памяти для моих задач у выбранного микроконтроллера было предостаточно, и быстродействие было ни к чему. Поскольку я не программист, то придумывание алгоритма программы мне давалось с большим трудом, поверх этого приходилось вспоминать синтаксис. Кстати именно тогда у меня появилось второе, так сказать уменьшительно ласкательное название моего прибора – «Лампочкометр».

Итак, функции моей первой прошивки для контроллера освещения были следующие:
1. Вывод на дисплей текущей информации о количестве горящих ламп по каждому подъезду (естественно при включенном свете).
2. Просмотр количества ламп при выключенном освещении. При включении прибора, в массив количества ламп, по каждому подъезду, записывается полное количество ламп в подъезде, в моем случае – 5шт.
3. При перегорании одной или более ламп, из полного количества ламп в подъезде вычитается количество сгоревших ламп. Включается сигнальный светодиод для привлечения внимания. Светодиод выключается только после замены лампы, так и будет маячить, хочешь, не хочешь, а менять придется идти.
4. Калибровка прибора. Даем прибору «понюхать» полную нагрузку, считываем значение АЦП и делим на 5, то есть на полное количество ламп, полученную константу запоминаем в EEPROM. Далее в нормальном режиме работы полученное значение АЦП делим на константу – получаем количество ламп в подъезде.

Схема четвертая

Недостатком предыдущей схемы было то обстоятельство, что устанавливалась она непосредственно в электрощитовой, было не очень удобно ходить каждый раз в подвал. То есть, как и следовало ожидать, следующим шагом был выносной дисплей. Тянуть девять жил для дисплея на пятый этаж, где я живу, было бы глупо и дорого, и вряд ли заработало – никто так не делает. Небольшое отступление про финансовую часть: на тот момент и с самой первой схемы я еще расплачивался за свою квартиру, а это была вся моя зарплата. Жили на зарплату жены, она работает воспитателем в детском саду. Так, что покупка любых радиодеталей била по истощенному семейному бюджету как ножом по сердцу. Ну, не будем о грустном. На самом деле кабель у меня уже был, протянут со времен первой схемы, когда дома стоял индикатор из пяти светодиодов. Кабель шестижильный не экранированный 6 х 0,22.
Очевидное решение поставить два микроконтроллера, один измеряет и передает данные по последовательному интерфейсу, второй принимает данные и обрабатывает и выводит на дисплей. Итак, была заложена следующая идеология – контроллер нижнего уровня(измерительный) и контроллер верхнего уровня. Измерительный контроллер только считывал значения с пяти каналов АЦП и передавал контроллеру верхнего уровня на скорости 2400 бод. Есть две причины столь низкой скорости: это неэкранированный кабель протянутый вдоль силовых линий электроснабжения дома, и передавалось в пакете всего шесть байт, идентификатор начала пакета (0хFF, ) и пять байт данных АЦП пяти каналов. Данные обрабатывались по алгоритму, как и в предыдущей схеме.

Итак, схема последняя, действующая и по сей день

В новой схеме была изменена измерительная часть, которая не давала мне покоя с самого начала. Нет, работала она нормально, что может быть проще резистора. У схемы был один существенный недостаток: она не была гальванически развязана с микроконтроллером. С трансформаторами тока у меня как то сразу не пошло, хотелось побыстрее сделать что-то рабочее, поэтому в качестве измерительного узла был выбран резистор. Но оставалось ощущение не правильности. Ну, а поскольку у меня к тому времени уже стоял и работал контроллер, можно было спокойно заниматься теоретическими и техническими изысканиями. Едем дальше. В предыдущей версии калибровка происходила по одному каналу. Тут проблема состояла в том, что при одинаковой нагрузке могут быть разные показания, сказывается погрешность деталей (в основном резисторов в усилителях). Отсюда ошибки при вычислениях. Можно было бы поставить подстроичники, но во первых мне в принципе не хотелось что либо там настраивать, ну, а во вторых, я все равно собирался все переделывать. В новой программе нужно реализовать калибровку по каждому каналу. Ну и последняя доработка это подключение тамбуров, оказывается, лампочки, там тоже перегораютJ.

Разберем аппаратную часть

Идеология та же - контроллер нижнего уровня (измерительный) и контроллер верхнего уровня (обработка, индикация). Только измерительных котроллеров теперь два, для лестниц и тамбуров. Контроллеры соединяются между собой по RS-485 интерфейсу. Схема измерительного контроллера, по моему мнению, теперь представляет собой идеологически правильную, в качестве измерительного элемента – трансформатор тока на ферритовом кольце. Первичной обмоткой, является фазный провод освещения подъезда, проходящий внутри кольца, вторичная обмотка сто витков провода ПЭВ 0,1. Вторичная обмотка подключается к схеме преобразователя ток в напряжение собранного на ОУ. Выход ОУ через резистор 100 кОм подключен на микроконтроллер ATmega8.


Датчик тока в термоусадке.


Для передачи данных используется UART приемо-передатчик микроконтроллера, для реализации интерфейса RS-485 используется микросхема MAX493. Контроллер меряет переменное напряжение, это избавляет меня от лишних деталей, всяких там нелинейностях и падениях на диодах. Способ следующий: микроконтроллер отслеживает переход через ноль, отсчитывает 5мс, что бы попасть на пик синусоиды, и запускает АЦП микроконтроллера. Для детектирования нуля заводим переменное напряжение с обмотки питающего трансформатора на вход INT0. У меня для питания обоих контроллеров (тамбурного и лестничного) используется один трансформатор, а питание лестниц и тамбуров осуществляется с разных фаз, поэтому предусмотрена возможность сдвига фаз, то есть установка разных задержек, 18 и 19 ножка МК

Контроллер нижнего уровня


Общий вид в электрощитовой


Что под крышкой?


В измерительном контроллере предусмотрено два светодиода, первый отображает, то что идет процесс измерения, второй зажигается когда контроллер получает свой адрес и соответственно отправляет данные АЦП.

Контроллер верхнего уровня

Микроконтроллер ATmega16, дисплей 16х2, MAX493, четыре кнопки и два светодиода. Все собрано на макетной плате, не видел смысла что-то разводить для единственного экземпляра. 99% контроллера верхнего уровня это программа. Это мой первый опыт написания программы на СИ, не шедевр и не все писал сам. Со мной в кабинете на работе сидят два очень хороших программиста, мои коллеги и друзья Валера и Сергей, вот они мне и помогали.



Итак, программа

Программа писалась в CodeVisionAVR.
Как я уже и говорил контроллер верхнего уровня, принимает данные от измерительного контроллера для последующей обработки и отображения. При включении микроконтроллер читает из EEPROM параметры калибровки и прочие установки. Для управления контроллером используется четыре кнопки «Esc», «-», «+» и «Enter».
В исходном состоянии контроллер отображает информацию о количестве ламп по каждому подъезду по лестницам и тамбурам.

Всего имеется четыре вида отображения, то был вид первый.
Следующие два вида отображают в верхней строке количество ламп по лестницам и тамбурам соответственно, а в нижней данные АЦП в шестнадцатиричном виде (не очень удобно, но зато на дисплей красиво помещается). Данные АЦП предназначены для диагностических целей, применялось на стадии отладки.


Четвертый вид – для отображения текущего времени в верхней строке, и при перегорании лампочки, в нижней строке выводится сообщение «Лестница» или «Тамбур» или оба вместе, начинает мигать подсветка дисплея.


Светодиоды являются диагностическими, зеленый и красный. Зеленый светодиод мигает с частотой опроса контроллеров нижнего уровня, а красный когда превышен таймаут ожидания ответа от контроллера нижнего уровня.

Меню настроек.
Меню настроек состоит из следующих пунктов:

Данные датчиков. Этот пункт меню для диагностических целей, в двух строчках в шеснтнадцатиричном виде отображаются данные АЦП обоих контроллеров нижнего уровня.
Сгоревшие лампы. Просмотр количества исправных ламп.
Сброс. Выключение отображения аварийного состояния и мигания дисплея, сброс количества перегоревших ламп, контроллеру сообщается полное количество ламп по всем каналам.
Количество сгоревших ламп. Отображение информации о количестве сгоревших лампах за весь период эксплуатации контроллера.
Полная калибровка. Производится полная калибровка всех каналов. Если на каком либо канале нагрузка отсутствует, то калибровка этого канала не производится.
Выборочная калибровка. Позволяет произвести выборочную калибровку, какого либо канала.
Установка дисплея. Установка яркости, контрастности и времени смены дисплеев в исходном состоянии, если время смены установлено «0», то дисплеи можно поменять вручную.
Установка времени опроса. Меняется время опроса датчиков 70-260мс. Пункт был введен на стадии экспериментов со связью, в этом же пункте отображается количество ошибок (превышение таймаута) по каждому контроллеру нижнего уровня, можно определить какой контроллер барахлит.
Перезагрузка. Перезагрузка контроллера. В программе есть маленький глюк, после калибровки неправильно вычисляет количество ламп. При включении контроллера и чтении параметров из EEPROM все нормально работает. Так и не смог найти причину, ввел пункт «Перезагрузка», а позже дописал, что бы после каждой калибровки контроллер перегружался.

Кстати, выключатель питания на контроллере отсутствует по причине случайного выключения и для самодисциплинирования. Не выключен – значит, работает. Работает – значит «симофорит» мне, когда перегорают лампы, иду и меняю! Если неисправен сам прибор, было и такое, я так же все это вижу и как правило не нахожу себе места, стараюсь по быстрее все починить.

Я не вижу большого смысла описывать настройку и работу с самим прибором, по тому, как в первую очередь я делюсь с вами самой идеей.

В приложении содержатся схемы из статьи, файл смоделированной схемы в Proteus 6.9, где можно все потыкать и пощупать, файлы прошивок МК и исходников под CodeVisionAVR.
🎁fajjly-proteus-i-proshivki-i-iskhodniki.zip  144.18 Kb ⇣ 99

Резюме

Прибор, несомненно, облегчил мне жизнь, я уже не трачу бесценное время на обходы, прихожу домой, бросаю взгляд на контроллер, ну а дальше по обстоятельствам, или иду менять лампу в конкретный подъезд, или на диван.
Плюс для жильцов: замена ламп происходит весьма оперативно, то есть, не приходиться ждать моего обхода или звонить мне.
Вторая польза. Научился программировать. Нет, ассом я не стал, но всякие мигалки, термостаты на МК, это можно. Отсюда вывод – если есть настоящая задача, то вы наизнанку вывернитесь, но добьетесь своего.

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 15 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Дистанционный контроллер состояния подъездного освещения с web-интерефейсом: Лампочкометр-WEB... …а вот не видать из Челябинска моего Лампочкометра, я вам скажу больше – его уже и из-за угла не...
Схема на Датагоре. Новая статья Идея светильника из убитых флюоресцентных ламп... Дизайнеры из компании Castor Canadensis, Торонто, предложили интересный способ утилизации не...
Схема на Датагоре. Новая статья Применение микроконтроллеров AVR. Схемы, алгоритмы, программы... Какой микроконтроллер выбрать? Где найти его описание? Где взять программу, обеспечивающую...
Схема на Датагоре. Новая статья Тестер ёмкости автомобильного аккумулятора (ATmega8A + LM2575). Готовимся к зиме... Приветствую, граждане Датагории! Позвольте представить вам очередное моё творение — тестер емкости...
Схема на Датагоре. Новая статья Плавное включение и выключение ламп накаливания... Как известно, лампы накаливания в основном перегорают в момент включения, когда нить накаливания в...
Схема на Датагоре. Новая статья Электровакуумные приборы. Справочник. Ю.Л. Голубев, Т.В. Жукова... Ю.Л. Голубев и Т.В. Жукова Электровакуумные приборы. Справочник. (100 приёмо-усилительных ламп) под...
Схема на Датагоре. Новая статья Изготовление и установка LED-ламп на штатные места в автомобиле Porsche 924... Статья посвящена модернизации освещения машины через рукодельное, то есть очень кустарное...
Схема на Датагоре. Новая статья Генераторные лампы ГУ-50, ГУ-32, ГУ-29, ГМИ-6, ГИ-30 для звука... Многие думают что на этих лампах нельзя собрать усилитель, якобы лампы предназначались не для...
Схема на Датагоре. Новая статья Лампочкометр возвращается! (vol. 2)... Вдох глубокий. Руки шире. Не спешите, три-четыре! Бодрость духа, грация и пластика....
Схема на Датагоре. Новая статья Простой контроллер ДХО без микроконтроллеров. Проверено в суровых условиях Якутской зимы... Приветствую сограждан Датагории! Я хочу рассказать вам историю создания мной контроллеров ДХО...
Схема на Датагоре. Новая статья Новая жизнь энергосберегающих ламп со сгоревшей спиралью... Доброго Всем времени Уважаемые Датагорцы! Сегодня со скуки меня посетила мысль сделать...
Схема на Датагоре. Новая статья Многоканальный 5.1 ламповый усилитель. Часть 1... Однажды, морозным декабрьским вечером, на меня напала скука, хотелось паять схемы, вытравливать...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

Datagor

<
Читатель Датагора

Discover

<
Читатель Датагора

Datagor

<
Читатель Датагора

Discover

<
Читатель Датагора

Ser.Balashoff

<
Читатель Датагора

valb

<
Читатель Датагора

Ryan

<
Читатель Датагора

Slujba

<
Читатель Датагора

sasha0014

<
Читатель Датагора

alex

<
Читатель Датагора

xpeh

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой