Каталог статей

Главная » Все схемы » Схемы устройств на микроконтроллерах » Устройства на микроконтроллерах

Выбранная схема!!!


3662
Светодиодные часы с анимацией

Автор: MechanicCDRR

Светодиодные " часы - мигалка 

На самом деле, это даже не часы, это светодиодная мигалка. Насмотревшись на всякие светодиодные красивости, захотелось сделать такое же. Но так как не хотелось делать полностью бесполезное устройство, то немножко подумав, было решено сделать часы. 24 светодиода, 12 зеленых (часы, внутренний круг) и 12 красных (минуты, внешний круг). Такие часы будут показывать время с точностью до 5 минут. А иногда и такая точность бывает полезна. 

Схема

Красивой схемы у меня нет. Есть только проект в протеусе, где хоть и не так красиво, как хотелось бы, но все же наглядно показано, что куда подключено.

На схеме не показаны: кварц с конденасторами, токоограничительные резисторы на светодиоды и кнопки, ну и разъем программирования.

По причине нехватки ножек в ATtiny2313, было решено сделать динамическую засветку красных и зеленых светодиодов, с управлением от PORTD.0 ("1" - зеленые, "0" - красные).

Кроме того, нужны были минимум две кнопки.

Итого, на 8+7+2 ножки было потрачено 12 каналов на светодиоды, 2 на кварц, 2 на кнопки и 1 на переключение между зелеными/красными светодиодами.

Токоограничительные резисторы на 330Ом. При питании в 3 вольта (2АА акумулятора), дают нормальное свечение при комнатном освещении.

Кварц на 16МГц с двумя конденсаторами 18-22пФ 

Плата

Это же светодиодная мигалка! А значит и платка должна быть красивой :)

Вот и сидел над разводкой долго, стараясь сделать красиво (на свой вкус, конечно же). Транзисторы использовал не SMD, а выводные BC32140 и BC33140. Ну... так даже как-то солиднее получилось. А SMD у меня как раз и закончились. Кварц у меня тоже не SMD. Обычный, выводной. (Чтобы ножки не коротили на корпус, из плотного картона вырезал прокладку под кварц).

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

Плата была изготовлена при помощи ЛУТа, как наиболее быстрого способа. 

Конструкция

Запаиваем все детали. Главное не перепутать полярности светодиодов! На платке они располагаются навстречу друг другу. С обратной стороны запаиваем разъем программирования (да, к сожалению, как это иногда бывает - у меня использован свой стандарт. Уж не обижайтесь.. этот вариант разъема программирования показался мне наиболее логичным).

Для того, чтобы конструкция обрела завершенный вид, берем вот эти штуки,

                                                                                   

и приклеиваем их термоклеем к обратной стороне платки. Подпаиваем питание к платке.

Да и еще.. если у вас питание на платку идет с программатора - не забудьте  перед прошивкой обесточить платку выключателем, а то будете заряжать аккумуляторы своим программатором :)

Все! Вот что получилось:

 

Прошивка

Не слишком люблю программировать, поэтому исходник хоть и даю... но там страшно. И боюсь, что неоптимально. Память использована на 99.7%

Логика работы. Часы имеют несколько режимов.

1. Обычные часы. Зеленые светодиоды - часы, красные - минуты. Обновление показаний раз в 5 минут. Для удобства чтения показаний в темноте по кругу тускло (микросекунды в динамической индикации) засвечиваются красные светодиоды. И постоянно горит верхний зеленый светодиод (12 часов). А значит можно понять, какие именно светодиоды горят в полную яркость, а значит и определить время.

2. Не знаю, зачем, но пусть будет. Зеленые светодиоды - минуты, красные - секунды.

3. "Секундомер". Зеленые - миллисекунды, красные - секунды. Польза от этого секундомера сомнительна, так как обновление секунд - раз в 5 секунд. Ну будем считать это переходным этапом к светодиодным эффектам :)

4. Светятся все светодиоды.

5,6,7,8,9 - простенькие подпрограммы эффектов. Очень простенькие.

10, 11 - сборники подпрограмм эффектов. 

в режимах 1-2 - кнопки отвечают за настройку времени

в режимах 3-11 - кнопками можно регулировать скорость анимации. 

Чтобы переключить режим, нужно зажать кнопку "М", и нажать кнопку "Н". Тогда после окончания текущей подпрограммы, включится следующая. Боюсь, что 10 и 11 - там долго придется ждать переключения. Ну, та уж пусть так и остается. 

Скорость, и текущий режим запоминаются в ЕЕПРОМ. 

Вот и все :) 

Видео с демонстрацией работы:

http://www.youtube.com/watch?v=th52sSm_9Xw


Файлы:
исходник (CodeVisionAVR) 
Проект в Proteus, печатная плата (Sprint Layout) 





Категория: Устройства на микроконтроллерах | Добавил: brys99 (04.12.2011)
Просмотров: 11674 | Рейтинг: 2.0/1


Всего комментариев: 0

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024