...

вторник, 11 июня 2013 г.

[Из песочницы] Автоматический светильник для аквариума на МК PIC12

В рамках изучения 12 серии PIC микроконтроллеров решил сделать небольшое, но очень полезное устройство.

У моей дочки живет аквариум. Подсветка сделана на люминесцентных лампах, которые каждое утро надо включать и вечером выключать. А так как мы семья заядлых туристов, то чтобы не устраивать рыбам пытку светом или темнотой на дней 5-7 решил сделать освещение LED лентой с автоматом включения/выключения от солнечного освещения.

Попутно попытаться выжать из микроконтроллера максимум, по функционалу.



Итак цель:


  • Две независимые ленты освещения

  • Регулировка освещенности переменным резистором

  • Реализовать управление яркостью лент с помощью программной реализации ШИМ

  • 3 режима работы:



  1. последовательное увеличение яркости лент по очереди (сначала одна затем вторая)

  2. одновременное увеличение яркости лент

  3. одновременное увеличение яркости лент с режимом автоматического включения/выключения от солнечного света



  • Автоматический режим реализовать на фоторезисторе с учетом гистерезиса, чтобы исключить моргание в сумеречный период

  • Запоминание выбранного режима в EEPROM с восстановлением при включении

  • Индикация выбранного режима светодиодом

  • Смена режимов нажатием кнопки

  • Так как ленты питаются от 12В, то сделать питание МК от 12В




В загашнике был МК PIC12F675, который идеально подошел для моих целей.

Для питания МК от 12В использована стандартная микросборка 7805.

БП был заказан на BangGood — как оказалось, весьма достойный БП за смешные деньги.

Там же заказана и LED лента.

Немного о расскажу о данном МК:

8 контактов,

1.75 кб — программной флеш-памяти,

128 байт — EEPROM

64 байт — ОЗУ

4 — 10ти битных АЦП

На GPIO выводах есть программно подключаемые подтягивающие резисторы.

4MHz – частота внутреннего тактового генератора.

2 таймера 8/16 бит


Сначала я боялся, что скорости внутреннего тактового генератора не хватит, чтобы ленты при малом значении ШИМ не моргали. Испытания на старом ATшном БП так и показали, что ленты мерцают. Но потом проверка готового изделия на новом китайском БП показала, что пульсация шла от старого БП.

Собственно лучше расскажет за меня схема и исходник программы(под MPLAB X), в котором всё подробно расписано. Так как LED лента имеет свои собственные токоограничивающие резисторы, то на схеме они не указаны.


Схема, исходники и немного фото
Архив с исходниками


На мекетке вместо лент с полевиками, поставлены просто светодиоды с токоограничивающими резисторами.


Под крышкой аквариума в профиле уложены 5050 LED ленты.


Ну а сам управляющий блок приклеен на двусторонний скотч сверху крышки, там куда попадает солнечный свет из окна.






В процессе работы столкнулся с двумя проблемами – во время инициализации забыл указать ANSEL=0, вследствие чего на цифровых ногах МК валил всякий мусор.

И в процессе множественных перепрошивок МК слетела калибровочная константа (каким образом понять не могу, так как программатор PicKit3 автоматом защищает эту константу от затирания). Как оказалось, калибровочная константа в МК PIC12 хранится в последнем адресе программной флеш-памяти и самым лучшим методом её не потерять — нужно сначала прочитать и сохранить(я нацарапал иголкой на корпусе МК).

Огромное спасибо форумчанам easyelectronics.ru за помощь в решении этих вопросов.

Сейчас автомат идеально отработал 2 недели в полевых условиях. Очень приятно выглядит регулируемая подсветка – особенно если разместить ленты освещения на пережнем и заднем планах. Единственный минус – теперь забываю кормить рыб, так как свет включать-выключать им уже не нужно.


Следующим шагом будет автоматическая кормушка с RTC или по SMS с мобилки., но это уже наверно на PIC16 серии.


Себестоимость проекта вышла примерно в 15-16$ вместе с БП, что создает здоровую конкуренцию светильникам на лампах дневного света продаваемым в магазинах аквариумистики, но у светодиодного освещения гораздо больше возможностей. Как вариант, можно имитировать закаты/восходы RGB лентой, а основное освещение – белой лентой. В общем, вариантов масса.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Комментариев нет:

Отправить комментарий