Вообще мне кажется, что правильное название для этого канделябра со свечами — Рождественский светильник, поэтому, так его и будем называть в статье. Идея пришла в голову после просмотра сайтов «Sprite’s minimalistic version» — http://spritesmods.com/?art=minimalism, и Hackday’s http://hackaday.com/2008/10/30/flickering-led-circuit/.
Это очень простая схема, она включает в темное время суток гирлянду из 4 мерцающих светодиодов, очень напоминает «Рождественский подсвечник» со свечами. Я решил, что моя версия будет состоять из четырех светодиодов, а батарейки должно хватить как раз до конца праздников.

Вид работающего устройства. Рождественский светильник на ATtiny13

Рождественский светильник на ATtiny13

 

Детали и схема:
ATtiny13V — 8-разрядный микроконтроллер, 1Кб флеш-памяти, 64байт SRAM.
4 шт. 3мм светодиода, желтого или оранжевого цвета, на напряжение до 2V.
Батарейка — таблетка CR2032, 3V, 230мА/ч.
Скрепки.

Вид принципиальной схемы рождественского светильника на микроконтроллере ATtiny13

Принципиальная схема рождественского светильника (гирлянды) на микроконтроллере ATtiny13

В схеме отсутствуют токоограничивающие резисторы, обычно светодиоды не рекомендуется использовать без них, поскольку они могут выйти из строя. Но при определенных условиях резисторы могут быть опущены. Дополнительную информацию можете посмотреть здесь – http://spritesmods.com/?art=minimalism&page=2

Как это работает.
Мне показалось что отказ от дополнительных датчиков освещенности будет хорошим решением для этой схемы. И поэтому, в качестве датчика здесь используются светодиоды. Они как и фотодиоды могут обнаружить свет той же длины волны, которую испускают сами. Здесь используется Аналогово Цифровой преобразователь ATtiny13 вместо метода обратного смещения. Для получения дополнительной информации посмотрите http://www.merl.com/publications/TR2003-035.

Программное обеспечение.
Программное обеспечение в значительной степени основывается на версии «Sprite’s».
Я изменил:
Добавлена поддержка четырех светодиодов.
Удалена калибровка, заменена постоянными параметрами.
Добавлены биты сравнения, для измерения освещенности, так как значения были не точными.
Добавлены режимы для первого, второго, третьего и четвертого светодиодов, хранящих данные в ЕEPROM, значение увеличивается на единицу при каждом сбросе.
Немного изменен дежурный режим, чтобы сохранить генерацию вместо сброса.

После включения питания, сторожевой таймер получает сигал и начинает генерацию прерываний каждые две секунды. Затем текущий режим (0-3) считывает данные из EEPROM, увеличивает и возвращает обратно. Затем идет бесконечный цикл, где случайные значения используются для мерцания светодиодов. ISR проверяет уровень окружающего освещения, и если оно выше определенного уровня, устанавливает флаг сна. Этот флаг контролируется main loop (в основном цикле). Если он установлен, контроллер уходит в режим экономии заряда батареи. Следующее прерывание запустит основной цикл.

Вид навесноого монтажа для Рождественского Светильника на Attiny13

Навесной монтаж, простая схема. Рождественский светильник на Attiny13

Эта схема собрана навесным монтажом, без печатной платы. Монтаж занимает некоторое время, но оно того стоит.
Все катоды светодиодов (минусы), соединяются и образуют кольцо. Аноды (плюсы — длинные ножки) согнуты внутрь, и припаиваются к pin 2, 3, 6 и 7 ATtiny13. Короткий кусок провода, подключается к общим катодам и припаивается к GND.
Микроконтроллер похож на “мертвого жука», перевернутого на спину, лежащим на таблетке. Вывод GND загнут на «верх» корпуса микросхемы, и подключен к общей клемме батареи. Вывод VCC загнут на «дно» микросхемы и припаян к держателю «таблетки».  Скрепка работает, как зажим, прижимающий микроконтроллер к батарейки.

Вид свитильника в дежурном режиме. Простая схема на Attiny13

Дежурный режим, простая схема — Рождественский светильник на Attiny13

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

Код программы для ATtiny13 на «Си» + Makefile + Hex скачать здесь

Очень вольный перевод http://tinkerlog.com/2009/12/12/geeky-advent/