Воскресенье, 11.12.2016, 12:57
Приветствую Вас Гость

Портал светоэффектов

Меню сайта
Категории раздела
Наш опрос
Оцените мой сайт
Всего ответов: 580
Статистика

Онлайн всего: 7
Гостей: 6
Пользователей: 1
Петрин
Форма входа
Главная » Статьи » Часы

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

Многие  радиолюбители, начинающие и не только любят «изобретать велосипед» -  строить  СВОИ электронные часы.  Не обошла эта участь и меня.  Конструкций часов в инете сегодня конечно предостаточно,   но вот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел только одну полностью законченную конструкцию.  В тоже время, светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше,  а то и ниже,  чем у семисегментных индикаторов  такого же размера.     Например  примененные мной GNM23881AD  при размере  60х60мм были куплены за 1,5уе  (3 индикатора обошлись в 4,5уе)    за  эти  деньги вы вряд ли   купите  четыре семисегментника  таких-же  размеров).   А вот  информации, разместить  на матричном индикаторе, можно намного больше.  Кроме цифр на них можно отображать   буквы,  знаки, а с помощью  бегущей строки еще и текст.    Исходя  из  этого, появилось  желание  построить   часы   на светодиодных матрицах,   но  чтоб схема при этом   получилась  не сложнее чем  на  семисегментниках.   Также хотелось чтоб она была   достаточно функциональна и не похожа на другие.     Так родилась следующая схема.



Функционал у часов такой:

  • Отсчет времени,  календарь,  день недели.  (високосный год учитывается,  переход  на летнее/зимнее время не осуществляется).
  • Сохранение хода часов при пропадании внешнего питания (потребление составляет 15мка).
  • Коррекция хода + -  59,9сек\сутки,  с шагом 0,1сек.
  • 9 будильников.  3 из которых «одноразовые», и  6 «постоянных»,  индивидуально настраиваемых по дням недели.
  • Индивидуально настраиваемая длительность звукового сигнала каждого будильника (1-15мин).
  • Звуковое подтверждение нажатия кнопок  (возможно отключить).
  • Ежечасный звуковой сигнал (возможно отключить).   С 00-00  до  08-00  сигнал не подаётся. 
  • 1 или 2  датчика температуры (Улица и дом).
  • Настраиваемая бегущая строка, посредством которой выводится вся информация (кроме времени)
  • Значение коррекции хода, и настройки «бегущей  строки» -  сохраняются даже при пропадании резервного питания.

«Сердцем» часов выбрана AtMega16A, из-за её доступности, дешевизны и «ногастости».  Схему хотелось максимально упростить,  поэтому все что можно, было возложено на контроллер.  В результате удалось обойтись всего двумя микросхемами,  контроллером и регистром с мощными выходами TPIC6B595.   Если кому то недоступен TPIC6B595,  то можно его заменить на  74НС595 + ULN2803. Оба варианта были опробованы.   Так же можно попробовать применить  TPIC6С595,  она немного слабовата, и  слегка грелась,  но в целом работала стабильно.  Отсчет времени  производится   с помощью асинхронного тайме – Т2.     Ход  часов продолжается и  при пропадании  питания.  В это время бОльшая часть  схемы  обесточена,  и  только  контроллер  получает питание  от батарейки, аккумулятора , или от ионистора.  Мне было интересно «по играться» с ионистором,   поэтому применил его.  Ток потребления часами в дежурном режиме составляет  15мка.   При питании от ионистора на 1Ф,  часы «продержались»   четверо суток.   Этого вполне достаточно для поддержания хода во время перебоев питания.   Если применить батарейку СR2032,  то теоретически, по расчетам  заряда должно хватить на 1,5года.    Наличие сетевого напряжения контроллер «слушает»  через  вывод РВ.3.  Напряжение питания,  через делитель R2-R3 подается на вывод  РВ.3,    и в нормальном состоянии равно примерно 1,5в.  Если внешнее напряжение упадет ниже  4,1 вольта,  то напряжение на выводе РВ.3    станет   меньше 1,23вольта,  при этом  сгенерируется прерывание от компаратора, и в обработчике этого прерывания  выключаются все «лишние»  узлы контроллера   и сам контроллер усыпляется.  В этом режиме продолжает работать только отсчитывающий время таймер Т2.  При появлении внешнего питания, напряжение на  РВ.3  сново  подымится выше 1,23в,  контроллер «увидев» это, переведет все узлы в рабочее состояние.  Если  вместо ионистора, будет использоваться батарейка СR2032,  то её нужно подключить через диод(предпочтительно диод шоттки).  Анод  диода подключается к + батарейки,  а катод к катоду VD1. 

В обычном режиме на экране отображается время в формате часы-минуты.  С интервалом в одну  минуту происходит запуск бегущей строки.  Бегущей строкой отображается день недели,  дата,  год,  темп.  дома, и темп. на улице.  Бегущая строка настраиваемая,  т.е.  можно включить/выключить отображение любого из элементов.  (я например всегда отключаю отображение года).  При выключении отображения всех  элементов  бегущей строки, она  не запускается вовсе,  и часы постоянно отображают только время.

9 будильников разделены на 3 одноразовых и 6 многоразовых.  При включении будильников   1-3, они  срабатывают только один раз.  Для того чтоб они сработали еще раз, их нужно повторно включать вручную.  А будильники 4-9  многоразовые,  т.е. они будут срабатывать ежедневно, в установленное время.  Кроме того эти будильники можно настроить  на сработку только в определенные  дни недели.  Это  удобно, например если не хотите чтоб будильник разбудил Вас в выходные.  Или  например Вам нужно просыпаться в будние дни в 7-00,  а в четверг в 8-00, а на выходных будильник не нужен.  Тогда настраиваем один многоразовый  на 7-00 в  понедельник-среду и пятницу,  а второй на 8-00 в четверг…..      Кроме того все будильники имеют настройку длительности сигнала,  и если Вам, для того чтоб проснуться,  мало сигнала в течении 1 минуты,  то можно увеличить его на  время от 1 до 15мин.

Коррекция хода производится один раз в сутки, в 00-00.  Если часы спешат к примеру на 5 сек в сутки,  то в 00-00-00 время  установится в 23-59-55,  если же часы отстают на 5 сек,  то в 00-00-00  время установится в 00-00-05.    Шаг коррекции – 0,1 сек.  Максимальная коррекция – 59,9 сек/сутки.     С исправным кварцем больше вряд ли понадобиться.   Коррекция осуществляется и в дежурном режиме при питании от батареи.

Светодиодные матрицы  можно использовать любые 8*8 светодиодов с общим катодом.  Как уже было указано, я применил GNM23881AD.  В принципе можно «набрать» матрицу и из отдельных светодиодов.   Микроконтроллер AtMega16a  можно заменить на «старый»  AtMega16 с буквой L.  При этом, теоретически должен немного увеличится ток потребления от батарейки.  Наверное будет работать и просто  AtMega16, но могут возникнуть проблемы при работе от 3х вольтовой  батарейки.   Диод  D1  - желательно любой диод  шоттки.   С обычным выпрямительным тоже работает,  но чтоб обезопасить себя от различных глюков,  связанных с тем что часть схемы питается напряжением «до диода»,  а часть «после диода»  лучше поискать шоттки.  Транзистор VT1 – любой   n-p-n.

Управление часами осуществляется двумя кнопками.  Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок,   но захотелось  попробовать «выкрутится» всего двумя.   Кнопки условно названы «ОК» и «ШАГ».  Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню,  а кнопкой «ОК» изменение параметров  текущего меню.    Сигнал  сработавшего  будильника  также выключается   кнопками  «ОК» или «ШАГ».    Нажатие  любой  кнопки  во время сигнала будильника  отключает  его.     Схема управления получилась такой:



Конструктивно часы выполнены на одной ПП.  Размер ПП соответствует размеру индикаторов.    Минимальная ширина дорог ПП – 0,4мм,  расстояние между – 0,4мм.   Так что любители «ЛУТа»  смогут без труда изготовить плату самостоятельно.



Все элементы - в SMD  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.





Корпус   спаян из стеклотекстолита,  прошпаклеван и покрашен в цвет «спелая вишня».   Стекло передней панели – обычное  тонированное стекло.







Финальный результат.



V1_07 
Добавлена регулировка яркости. Схема не меняется. Регулировка яркости производится либо по времени, либо в зависимости от освещенности. Тип регулировки выбирается автоматически. Если подключен фоторезистор, то яркость индикаторов меняется в зависимости от освещенности, а если фоторезистор не подключен, то вручную устанавливаем время когда снижать яркость экрана, и когда восстанавливать обратно. 
Настройка по времени производится так. В меню "НАСТРОЙКИ" после переопределения датчиков температуры (если датчик один, или вовсе нет, то после настройки скорости строки) мы попадаем в меню где устанавливаем время снижения яркости, и время восстановления, а также желаемый уровень снижения яркости.
Если фото датчик (фоторезистор) подключен, то после переопределения датчиков температуры мы попадем в меню "калибровки фоторезистора" В это время на экран выводится результат измерения напряжения на фоторезисторе. Нужно осветить датчик чем нибудь очень ярким и нажать кнопку "ОК". Программа запомнит это значение. Это делается для того чтоб отсечь "мертвую зону".

Фоторезистор подключается к выводу РА.7 Подойдет любой фоторезистор у которого световое и темновое сопротивление изменяется в 50 и более раз(у современных фоторезисторов как правило 500-2000). Резистор R4 должен быть примерно в 10 раз больше чем световое сопротивление фоторезистора. Если у вашего фоторезистора световое сопротивление меньше 0,5ком, нужно последовательно с ним включить обычный резистор, чтоб общее сопротивление стало 0,5ком.
СХЕМА ПОДКЛЮЧЕНИЯ ФОТОРЕЗИСТОРА.



V1_08
Убрал глюки в работе датчиков ds18b20. периодически один, а то и два датчика "пропадали" (было не у всех)
Добавил контроль аварии датчиков температуры. Теперь если в течении 5 минут не удалось ни разу считать с датчика показания, то выводится температура -99". 
Добавил "запоминание" уличный/домашним датчик. Данные сохраняются в еепром, и теперь после ресета контроллера, или смены батарейки, настройки где какой датчик не сбиваются.
vlego обнаружил глюк. Если в 23часа 59минут и более 40 секунд обнулить секунды, то время перескакивало на 24:00. И далее соответственно 25ч.26ч... Поправил.

V1_09
Добавлена настройка интервала между запуском бег строки. В меню "НАСТРОЙКИ" , после установки яркости ночного режима, попадаем в меню настройки интервала запуска бег. строки. Можно установить интервал - от 1сек до 3мин 59сек.

Добавил возможность включать/отключать отображение десятых долей температуры в исходнике
Код:
//_________/
//поставьте единичку если нужно отображать температуру с десятыми долями градуса
#define   TENTH_HOUSE       0         // для температуры дома
#define   TENTH_STREET      0         // для температуры на улице
//_________/

Часто задаваемые вопросы (FAQ)
Цитата:
Спаял часы, они заработали, но 4 столбца матрицы не работают. что делать?....
Скорее всего забыли снять фьюз JTAGEN. Новые контроллеры идут с завода с уже установленным фьюзом JTAGEN
Цитата:
Что то собрал я часы. Прошил. А они не пошли. что может быть??
Для начала, тщательно промойте плату, проверьте монтаж на предмет замыканий и обрывов, проверьте правильность установленных номиналов деталей. Проверьте качество источника питания(зарядки от сотовых могут не "тянуть" часы). Еще раз прошейте контроллер, с проверкой качества записи(верификация). судя по отзывам в форуме, 99% не запустившихся часов, начинают работать после удаления всех косяков.
Собранные без ошибок, и из исправных деталей часы, начинают работать сразу! 
***********************************************************








Статья на сайте автора - http://mdoga.ru/Designs/Matrix%20clock%20mega16/Matrix%20clock%20mega16.htm
Эта же статья на "Радиокоте" - http://radiokot.ru/circuit/digital/home/103/
Актуальный форум с последними прошивками и активным обсуждением - http://radiokot.ru/forum/viewtopic.php?f=20&t=50199

P.S. От автора портала. Собрал двое часов, одни на круглых, другие на квадратных сегментах. Очень доволен. Спасибо автору и пожелание творческих успехов, весьма удачная конструкция!

Категория: Часы | Добавил: defaultNick (16.10.2012) | Автор: Radan
Просмотров: 9736 | Комментарии: 5
Всего комментариев: 5
4  
Доброго времени суток всем, купил матрицы 1088BS общий катод, также имеется TPIC6B595. Может у кого есть плата в лауте на эти компоненты, а еще лучше схему в Splan? Посмотрел в протеусе, не совпадает с выше указанным вариантом

0
5  

3  
у меня 3 столбец не работает общий катод уже хрен знает че делать

2  
Они работают в разные временные интервалы, раз на выход, раз на вход. Нормальное решение, когда ножек не хватает. И самое главное, в железе работает, сам 2-е часов сделал.

1  
фотодатчик подключен к РА.7, там же подключен столб матрицы. они влиять друг на друга не будут?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
YOUTUBE LIGHTPORTAL
ALIEXPRESS
Поиск
Translation
Donate
QR
Часики
 
Облако тегов
Друзья сайта
Портал светоэффектов
Catcatcat Electronics
Color Music Beniamina Grinberg