Вообще мне кажется, что правильное название для этого канделябра со свечами — Рождественский светильник, поэтому, так его и будем называть в статье. Идея пришла в голову после просмотра сайтов «Sprite’s minimalistic version» — http://spritesmods.com/?art=minimalism, и Hackday’s http://hackaday.com/2008/10/30/flickering-led-circuit/.
Это очень простая схема, она включает в темное время суток гирлянду из 4 мерцающих светодиодов, очень напоминает «Рождественский подсвечник» со свечами. Я решил, что моя версия будет состоять из четырех светодиодов, а батарейки должно хватить как раз до конца праздников.
Детали и схема:
ATtiny13V — 8-разрядный микроконтроллер, 1Кб флеш-памяти, 64байт SRAM.
4 шт. 3мм светодиода, желтого или оранжевого цвета, на напряжение до 2V.
Батарейка — таблетка CR2032, 3V, 230мА/ч.
Скрепки.
В схеме отсутствуют токоограничивающие резисторы, обычно светодиоды не рекомендуется использовать без них, поскольку они могут выйти из строя. Но при определенных условиях резисторы могут быть опущены. Дополнительную информацию можете посмотреть здесь – http://spritesmods.com/?art=minimalism&page=2
Как это работает.
Мне показалось что отказ от дополнительных датчиков освещенности будет хорошим решением для этой схемы. И поэтому, в качестве датчика здесь используются светодиоды. Они как и фотодиоды могут обнаружить свет той же длины волны, которую испускают сами. Здесь используется Аналогово Цифровой преобразователь ATtiny13 вместо метода обратного смещения. Для получения дополнительной информации посмотрите http://www.merl.com/publications/TR2003-035.
Программное обеспечение.
Программное обеспечение в значительной степени основывается на версии «Sprite’s».
Я изменил:
Добавлена поддержка четырех светодиодов.
Удалена калибровка, заменена постоянными параметрами.
Добавлены биты сравнения, для измерения освещенности, так как значения были не точными.
Добавлены режимы для первого, второго, третьего и четвертого светодиодов, хранящих данные в ЕEPROM, значение увеличивается на единицу при каждом сбросе.
Немного изменен дежурный режим, чтобы сохранить генерацию вместо сброса.
После включения питания, сторожевой таймер получает сигал и начинает генерацию прерываний каждые две секунды. Затем текущий режим (0-3) считывает данные из EEPROM, увеличивает и возвращает обратно. Затем идет бесконечный цикл, где случайные значения используются для мерцания светодиодов. ISR проверяет уровень окружающего освещения, и если оно выше определенного уровня, устанавливает флаг сна. Этот флаг контролируется main loop (в основном цикле). Если он установлен, контроллер уходит в режим экономии заряда батареи. Следующее прерывание запустит основной цикл.
Эта схема собрана навесным монтажом, без печатной платы. Монтаж занимает некоторое время, но оно того стоит.
Все катоды светодиодов (минусы), соединяются и образуют кольцо. Аноды (плюсы — длинные ножки) согнуты внутрь, и припаиваются к pin 2, 3, 6 и 7 ATtiny13. Короткий кусок провода, подключается к общим катодам и припаивается к GND.
Микроконтроллер похож на “мертвого жука», перевернутого на спину, лежащим на таблетке. Вывод GND загнут на «верх» корпуса микросхемы, и подключен к общей клемме батареи. Вывод VCC загнут на «дно» микросхемы и припаян к держателю «таблетки». Скрепка работает, как зажим, прижимающий микроконтроллер к батарейки.
Будьте терпеливы.
Используйте припоя как можно меньше.
Старайтесь не перегревать контакты контроллера.
Будьте осторожны при изгибе контактов, они очень легко обламываются.
Будьте терпеливы 😉
Код программы для ATtiny13 на «Си» + Makefile + Hex скачать здесь
Очень вольный перевод http://tinkerlog.com/2009/12/12/geeky-advent/
Vlad подскажите какие фьюзы выставлять при прошивке тиньки, или оставить по умолчанию?
Фьюзы не менялись, все было по «умолчанию»