- PVSM.RU - https://www.pvsm.ru -
В рамках изучения 12 серии PIC микроконтроллеров решил сделать небольшое, но очень полезное устройство.
У моей дочки живет аквариум. Подсветка сделана на люминесцентных лампах, которые каждое утро надо включать и вечером выключать. А так как мы семья заядлых туристов, то чтобы не устраивать рыбам пытку светом или темнотой на дней 5-7 решил сделать освещение LED лентой с автоматом включения/выключения от солнечного освещения.
Попутно попытаться выжать из микроконтроллера максимум, по функционалу.
Итак цель:
В загашнике был МК PIC12F675, который идеально подошел для моих целей.
Для питания МК от 12В использована стандартная микросборка 7805.
БП был заказан на BangGood [1] — как оказалось, весьма достойный БП за смешные деньги.
Там же заказана и 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 лентой, а основное освещение – белой лентой. В общем, вариантов масса.
Автор: Dixi_Alex
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/36260
Ссылки в тексте:
[1] BangGood: http://www.banggood.com/Wholesale-12V-2A-24W-Switch-Power-Supply-Driver-For-LED-Strip-Light-Display-220V-Converter-p-35761.html
[2] Архив с исходниками: https://www.dropbox.com/s/gmdth262g0qnsvx/PIC12-LED.7z
[3] Источник: http://habrahabr.ru/post/182594/
Нажмите здесь для печати.