Сердце на ATtiny13

Около трёх месяцев назад я начал увлекаться радиоэлектроникой и затянуло меня в изучение микроконтроллеров. Давалось мне это достаточно тяжело, граблей было найдено немало (до этого ни программированием не занимался, ни в радиоэлектронике ничего не соображал, разве что паяльник в руках умел держать). Когда всё начало немного получаться, встал вопрос о сборке своего первого устройства на микроконтроллере. Было принято решение порадовать свою девушку и собрать светодиодное сердце (в интернете есть вариации на эту тему, которые меня к этому и побудили). И вот, спустя четыре версии, устройство готово.

Итак, начну с описания аппаратной составляющей устройства. Принципиальная схема устройства предельно проста и выглядит следующим образом:

Схема сердца

При подаче питания с разъема USB, микроконтроллер запускается и начинает выполнять записанную в память программу алгоритма световых эффектов, зажигая и выключая светодиоды в определенной последовательности. 

На плате размером 60х50мм размещено десять красных 3528 светодиодов, соединенных последовательно парами, на управляющие ножки МК. Каждая пара светодиодов подключена через гасящий резистор 47 Ом. Сердцем сердца (вот такой каламбур получился) выступает микроконтроллер ATtiny13. Так же на плате присутствует разъем USB от старой флешки, от которого устройство питается и две SMD 1206 перемычки. Для управления светодиодами используются пять выводов микроконтроллера. Вывод Reset подтянут к питанию через 10 КОм резистор. Конденсаторы C1 и C2- стандартная обвязка по питанию микроконтроллера. В качестве корпуса выступает полиморфный пластик (пластик имеющий температуру плавления 60- 65 градусов по Цельсию) или shapelock. Разогрел в горячей воде и вылепил форму, по мере остывания подогревал феном и продолжал формовать до получения нужного результата.

Извиняюсь за качество фото, фотографировал на телефон.

Программная составляющая устройства. Программа писалась в среде CVAVR. Управление свечением осуществляется пятиканальным программным ШИМ-ом. В программе реализовано четыре разных эффекта свечения и один эффект на плавный розжиг светодиодов при включении (выполняется один раз, при подаче питания на устройство, остальные эффекты сменяют друг друга по кругу). Программа предельно проста и легко можно написать новые эффекты или переделать старые, исходник прилагается. Для изменения яркости (светит без пластика довольно ярко и бьет по глазам) нужно лишь изменить значение переменной bri. На плате в спринте отмечены пары светодиодов буквами, соответствующими переменным, которые отвечают за их яркость.

В битах конфигурации МК убран лишь предделитель тактовой частоты на 8, всё остальное по умолчанию. BODLEVEL=11, SPIEN=0, CKSEL=10, SUT=10.

Обновление от 15.09.2013:
Добавлены конденсаторы по питанию, для сглаживания пульсаций и подавления ВЧ составляющей. Подтянул RESET к плюсу питания через резистор 10 кОм.

Обновление от 16.09.2013:
В схему добавлены токоограничительные сопротивления по 47 Ом.

Небольшая инструкция по расчету токоограничивающих резисторов:

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

Rтокоограничивающего резистора=(Uпитания — Uпадения на светодиоде) / Iсветодиода

В данном случае все рассчитывалось с небольшим запасом и выглядело так:

(4,2В (имеется ввиду напряжение на ноге МК) — (1,8+1,8)) / 15мА (с запасом)= (4,2-3,6)/0,015 = 40 Ом. Из стандартных номиналов бал выбран 47 Ом резистор.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит ATtiny13 1
C1 1206 smd 100 нФ 1
С2 Tantal_D 100 мкФ 1
1206 SMD 0 Ом 2
R1 1206 SMD 10 кОм 1
R2-R6 1206 SMD 47 Ом 5
HL1-HL10 3528 SMD LED RED 10
Разъем USB-A вилка 1