РадиоКот :: Простые часы на светодиодных матрицах.
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Теги статьи: Добавить тег

Простые часы на светодиодных матрицах.

Автор: O-LED
Опубликовано 19.09.2011
Создано при помощи КотоРед.
2011

Многие  радиолюбители, начинающие и не только любят «изобретать велосипед» -  строить  СВОИ электронные часы.  Не обошла эта участь и меня.  Конструкций часов в инете сегодня конечно предостаточно,   но вот  часов на светодиодных матрицах  почему-то среди них единицы.  В русскоговорящем интернете я нашел только одну полностью законченную конструкцию.  В тоже время, светодиодные матрицы сейчас очень сильно подешевели,  и их стоимость  не выше,  а то и ниже,  чем у семисегментных индикаторов  такого же размера.     Например  примененные мной 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  исполнении, и расположены с одной стороны платы.  А индикаторы с другой.  Получается  миниатюрный монолитный блок, который легко встроить в какой ни будь небольшой плоский корпус.

  




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

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

 

 

>>> Видео работы часов <<<

 

Изображение на  видео слегка  подергивается и мерцает.   Как мне объяснили знающие люди,  с моей камерой  лучше снять и не получится,  так как  частота смены кадров  у  часов и у камеры разная.  Отсюда  всякие мерцания и прочая лабуда.   В реальности ничего подобного не наблюдается.

Ну вот в принципе и все.  Ниже есть все необходимое для повторения часов.   Вопросы  можно задавать  на  форуме .   Если у кого появятся интересные идеи,  так же  пишите не стесняйтесь.  Удачи, и спасибо за внимание.


06.06.11.

************************************************************* ************************************************************

АПГРЕЙД  …….

Судя по отзывам после публикации статьи  проектом заинтересовались.  Многие  повторили.  Значит нужно развиваться   дальше.  )))   На  данный момент  самая свежая прошивка -   V1_06.   В ней добавлены -   «скроллинг»  цифр,  полностью  переписана работа  будильников(были глюки при одновременном использовании нескольких будильников),  названия дней недели в настройках будильников сделаны привычные двухбуквенные (было – пон, вто, сре….)  и неделя начинается с понедельника (было на американский манер с воскресенья).    Также добавлена поддержка  AtMega32  (нужна перекомпиляция),    новые шрифты цифр (выбор пока на этапе компиляции),    переназначение  датчиков температуры (можно программно определить какой датчик является домашним,  а какой уличным),    регулировка скорости бегущей строки,   и   кое что по мелочи.   Также отловлены мелкие  глюки,  и конечно же добавлены большие новые )))).    

Регулировка скорости бегущей строки находится в пункте «НАСТРОЙКА».  Теперь после настройки    звукового сигнала   клавиатуры,  по нажатию кнопки    «ШАГ»  мы не возвращаемся  в основной режим,  а переходим к настройке скорости.    На экране  в это время бежит  текст,   а кнопкой «ОК»  можно  регулировать  его  скорость.    Когда    выставите желаемую скорость,   нажмите  «ШАГ» и выйдите из этого пункта меню.   Теперь   везде скорость  текста  будет  такой, как вы установили.      

Если в часах установлено два датчика температуры  ds18b20,  то после настройки скорости строки,  мы попадаем в меню   «переопределения»   датчиков.   В этом меню можно  указать какой датчик у нас находится дома,  а какой на улице.   На  экране в это время  выводится  буква «д»  и температура одного из датчиков.  Нажатием  кнопки   «ОК»  переключаем датчики  так, чтоб на экране отображалась  «домашняя»  температура.   После чего кнопкой «ШАГ»  выходим из этого меню.   Если в часах установлен один датчик,  или не установлено вовсе,  то в пункт переопределения датчиков мы не попадаем,  и сразу после  настройки скорости строки переходим в основной режим.  

Больше всего  вопросов поступило по  применению  матриц   с ОА в строке,  и замене регистра  TPIC6B595.      Самый  простой и дешевый вариант заменыTPIC6B595 это регистр  74HC595 +  ULN2803.   Также можно заменить  на  74HC595 +  восемь  ключей на отдельных  транзисторах.   Транзисторы подойдут и биполярные структуры NPN,   и  полевики (мосфеты)    N-канальные.      

 

СХЕМА   74HC595 +  ULN2803

 

СХЕМА  74HC595 +  восемь   NPN транзисторов.

 

СХЕМА  74HC595 +  восемь   N-канальных полевых транзистора (практически повторяет предыдущую схему). 


Для  того чтоб в часах  применить  матрицы  с «ОА» в строке  их нужно  немного доработать.   Для этого нам понадобится крупный напильник (рашпиль)   и станок лазерной резки…….  ))))))     Шучу, я шучу,   ничего для этого нам не понадобится,   Достаточно просто развести печатную плату по другому.      Вы  спросите, а как это матрица с ОА  будет работать в схеме с ОК?     Легко!    Дело в том, что понятие  «ОК»  или «ОА»   для светодиодной матрицы   довольно условное,   и  для того чтобы «превратить»   матрицу   с ОА   в строке в матрицу   с ОК,   достаточно  всего лишь повернуть её на 90 градусов влево или вправо.

 

Матрица ОА

 

Поворачиваем на 90 градусов и получаем матрицу ОК

Попутно давайте разберемся   с «путаницей»  в маркировке.   Многие наверное заметили что  матрицы   с  общим катодом в строке,  в  прайсах   продавцов  значатся   матрицами с общим анодом.  А все потому,  что производители   маркируют матрицы не по строкам,  как многие привыкли ,  а по столбцам.    По мне, это как то нелогично,  но производителям как говорится  видней….      Давайте будем  называть  матрицы у которых в нормальном положении  в строке катоды диодов – матрицами с ОК,  а у которых в строке аноды – матрицами  с ОА.       Ну а для данной конструкции  можно  с этим вообще  не заморачиваться,   и сначала,  приобрести  матрицы,  а потом  изготовить нужный вариант  платы.     

 

 

Как я писал выше,  в новой прошивке добавлен выбор шрифтов  цифр.   Вернее даже не в прошивке,  а в исходнике.  Возможно  в будущем я встрою выбор шрифтов прямо в прошивку,  но пока,  для   выбора нового  шрифта, нужна перекомпиляция прошивки.  Для этого откройте исходник,    в самом начале найдите строчки

//*********************************************************************************************/

#define   FONT              0         // выбираем шрифт цифр

//*********************************************************************************************/

Напротив   FONT  вместо нолика поставьте  номер желаемого шрифта от 0  до 6.      (0 –   «родной» шрифт).    Компилируйте и прошивайтесь.   

(шрифты рисовал  форумчанин   sirgio  с сайта радиокот).   

 



Для    применения   AtMega32   также понадобится перекомпиляция.    В начале исходника найдите строчки

 **********************************************************************************************/

//поставьте единичку напротив примененного вами контроллера

#define   ATMEGA16          1

#define   ATMEGA32          0

//*********************************************************************************************/

Напротив    #define   ATMEGA16   поставьте ноль,  а напротив    #define   ATMEGA32      поставьте единичку.   Компилируйте и прошивайтесь.

 

 

Вариант замены  TPIC6B595  на    74нс595+8 транзисторов ВС817 был опробован в железе.    Работает нормально.   Корпус новых часов сделал из  оргстекла.   На матрицы наклеил тонировочную автомобильную пленку зеленого цвета.   Это немного снижает яркость,  зато здорово добавляет контрастности, и улучшает эстетическое восприятие ))).   Но главное - на солнце читаемость становится лучше.    Вообще, я если честно разочарован зелеными матрицами.    При той же заявленной яркости что и красные, и при большем закаченном в них токе чем у красных – читаемость на солнце у них гораздо хуже.  

 

74нс595+8 транзисторов ВС817  вместо TPIC6B595.  Места много, все прекрасно помещается. 

Индикаторы без светофильтра.  Яркость хороша, но читается плохо. 

Индикаторы со светофильтром.  Менее ярко,  но читаемость лучше. 

Корпус из оргстекла.  


Контроль за соблюдением тех. норм и допусков,  осуществлялся серьёзными специалистами высокого уровня. 



Ну и напоследок  >>>видео<<<   новых возможностей часиков.

(«старые» возможности смотрите на видео выше),  и

>>>видео<<< двух часов рядом.  (В этот раз взял у друга камеру получше,  теперь мерцаний и прочей ерунды невидно.)

Вот, вроде пока и все. В ближайших планах  добавить всякие спецэффекты при смене информации,  сделать пины контроллера к которым подключены  столбцы  программно переназначаемыми (идея  форумчанина ВНН),    В далеких планах,  - очень хочется сделать голосовое проговаривание времени  каждый час, и при сработке будильников.  Пока понятия не имею как к этому подступится,  и реально ли это сделать  на данном железе,  но самый «жирный» таймер контроллера   Т1  специально нигде не использовал,  берегу  для этой задачи.

Принимаю интересные идеи для реализации.

Коммерческое использование конструкции без разрешения автора - запрещено


Файлы:
01.rar
02.rar
03.rar
04.rar
05.rar
06.rar
07.rar
12.jpg


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

315 4 1
199 19 1