Светодиодная сосулька - индикатор уровня
Автор: Engineer_Keen Скоро наступит новый год и мне хотелось сделать что-нибудь праздничное. Вот что из этого получилось. Как-то я увидел на ютубе ролик с гирляндой, которая состояла из сосулек, я счел это оригинальным и решил повторить. Вариантов построения схемы тут несколько. Один из них – использование микросхем: задающего генератора, счетчика и какой-нибудь логики-дешифратора, которая и будет переключать светодиоды в зависимости от состояния счетчика. У такой схемы есть 2 недостатка – несколько корпусов микросхем и жесткость алгоритма мигания. При этом получается банальный бегущий огонь. Так не интересно, поэтому я пошел другим путем – использовал контроллер. Тут недостаток тоже есть, если кто захочет повторить – понадобится программатор. Для начала нужно было решить, какой взять контроллер. Выбор пал на ATTiny13, как на один из самых мелких, что были в наличии. Сама концепция устройства такова, что схема управления должна быть крохотной и легкой, все таки ее основное предназначение – висеть на елке. Далее нужно было определить количество светодиодов. Количество ножек контроллера позволяет без особых хитростей подключить 20 светодиодов по стандартной схеме чарлиплексинга. Я решил остановиться на 12 светодиодах и использовать для этого 4 ножки контроллера. Одна нога осталась незадействованной. Непорядок. Используем ее как АЦП. Тогда напряжение на ней может управлять, например скоростью спецэффекта. Так и сделал. Принцип действия прост. В программе зашиты 80 кадров анимации, каждый кадр содержит значения для программной ШИМ (ШИМ – 4-х битная) всех 12 светодиодов. АЦП используется одновременно и как таймер для ШИМ и для считывания напряжения, код которого сразу записывается в регистр сравнения другого таймера, который работает в режиме CTC и используется для смены кадра анимации. Эффект получается следующий: вначале, слева по схеме медленно появляется «капля» света, постепенно она начинает смещаться вправо, набирая скорость. Когда капля доходит до крайнего правого светодиода она останавливается и медленно гаснет. Итак схема:
Для того, чтобы вас больше запутать, проводки к светодиодам я раскрасил))) Если серьезно, то при сборке можно легко запутаться, и желательно выводы светодиодов как-то пометить (например одеть цветные кембрики). В качестве времязадающего элемента можно использовать цепочку из резистора и фототранзистора (вариант 1), тогда скорость будет зависеть от освещенности: чем ярче в комнате – тем быстрее тает, а можно обычный переменный резистор (вариант 2), тогда можно точно установить скорость, которая вам больше всего понравится. Резистор, в целях энергосбережения лучше брать побольше, килоом на 10, схема потребляет всего 10мА, если засвечены все светодиоды. После того, как все это заработало в контроллере осталось много пустого места. Непорядок. Дописал еще немного. Теперь у девайса двойное назначение – стоит перед включением закоротить вход АЦП (переключателем SW1) на землю, а потом вернуть в среднее положение и мы получаем обычный индикатор уровня! Входное напряжение, в диапазоне то 0В до +питания будет преобразовано в светящийся столбик, причем свечение на границе «света» и «темноты» тоже будет плавно зависеть от уровня (как маленькие деления на линейке). Место во флеше еще осталось, но что еще оригинального туда впихнуть я не придумал, сделал простенький бегущий огонь наоборот (бежит его отсутствие). Для его активации нужно при включении закоротить вход АЦП на + питания. Для творчества еще есть простор – 200 байт флеша, неиспользованные ОЗУ и EEPROM… Да, контроллер работает на встроенных 9.6МГц, делитель на 8 отключен. Питание 4.5 - 5 В. Конструкцию изначально планировалось запихнуть в пустой прозрачный корпус от шариковой ручки, но из-за отсутствия контроллера в SO-корпусе пока оставил как есть. Выглядит криво, но для опытного образца сойдет )
С Наступающим!
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
|
||||