Простые многофункциональные часы на трех светодиодных матрицах.
Многие начинающие радиолюбители, да и не только, любят «изобрести велосипед» - каждому хочется построить СВОИ электронные часы. Меня эта участь так же не миновала. В Интернете конструкций часов предостаточно, но часов на светодиодных матрицах среди них единицы. В русскоязычном интернете я нашел лишь одну полностью законченную конструкцию с описанием.
В то же время, светодиодные матрицы в последнее время сильно упали в цене, и их стоимость может даже меньше, чем семисегментне индикаторы того же размера. Вот к примеру примененные GNM23881AD при размере 60х60мм куплены мной за полтора доллара (три индикатора обошлись в четыре с половиной доллара), за такие деньги врядли купишь четыре семисегментных индикатора таких-же размеров. Но разместить информации на матричном индикаторе, получится намного больше. Кроме цифровой индикации, на светодиодной матрице можно отобразить различные буквы, знаки, а при помощи бегущей строки и текст. Проанализировав всё это, было принято решение построить многофункциональные часы на светодиодных матрицах, при этом было желание не усложнять схему больше, чем на семисегментных индикаторах. Ещё хотелось, что-бы схема была многофункциональная и не похожа на другие. Вот так и родилась вот эта схема.
(для увеличения, щелкните мышкой по схеме, откроется в новой вкладке)
Функционал часов:
Время, календарь, дни недели. (учитывается високосный год, но перехода на летнее/зимнее время нет).
Сохранение работоспособности часов при отключении внешнего источника питания (потребление тока всего 15мкА).
Коррекция хода часов + - 59,9сек\сутки, шаг 0,1сек.
9 будильников. Три из них «одноразовые», а 6 - «постоянные», настраиваемые индивидуально по дням недели.
Длительность звукового сигнала для каждого будильника индивидуально настраиваемая (1-15мин).
Звуковое подтверждение при нажатии кнопок (функция отключаемая).
Каждый час звуковой сигнал (функция отключаемая). С 00-00 до 08-00 режим сна, сигнал не подаётся.
1 или 2 температурных датчика (Улица и дом).
Настраиваемая бегущая строка, при помощи которой можно вывести всю информацию (кроме времени)
Коррекция хода, и установки «бегущей строки» - сохраняются в памяти даже при отключении резервного источника питания.
«Сердцем» часов была выбрана AtMega16A, критерием сыграли ее дешевизна, достумность. Ее 40 ног позволят реализовать все задумки. Было желание схему максимально упростить, и поэтому весь функционал был возложен на контроллер. В итогеполучилась схема всего на двух микросхемах, контроллер и регистр TPIC6B595. Если нет возможности достать TPIC6B595, то вполне возможно заменить его на 74НС595 + ULN2803. Все варианты были проверены. Ещё можно попробовать заменить на TPIC6С595, но она слабовата, и немного грелась, но работала довольно стабильно.
Отсчет времени осуществляется с помощью асинхронного таймера – Т2. При пропадании основного питания ход часов сохраняется.При этом почти вся схема обестачивается, а контроллер запитывается от аккумулятора, батарейки или ионистора. Было желание «по играться» с ионистором, вот поэтому и применил его. Часы потребляют в дежурном режиме около 15мкА. При резервном питании от ионистора на 1Ф, емкости хватило на четверо суток, чего вполне достаточно для поддержания хода часов при перебоях в сети. Если использовать батарейку СR2032, то заряда хватит на полтора года. Контроллер прослушивает наличие сети через выв. PB3 (инвертирующий вход компаратора). Напряжение питания подается через делитель R2-R3 на выв. РВ3, и примерно равно 1,5 В. Если напряжение питания снизится до 4,1 вольта, то напряжение на выв. РВ3 станет меньше 1,2 В, при этом сгенерируется прерывание от компаратора, и в обработчике этого прерывания выключаются все «лишние» узлы контроллера и сам контроллер усыпляется. В этом режиме продолжает работать только отсчитывающий время таймер Т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, если же часы отстают, то в 00-00-00 время установится в 00-00-05. Шаг коррекции – 0,1 сек. Максимальная коррекция – 59,9 сек/сутки. С исправным кварцем больше вряд ли понадобиться. Коррекция осуществляется и в дежурном режиме при питании от батареи.
Можно применить любые светодиодные матрицы 8*8 светодиодов с общим катодом. Как уже говорилось, я применил GNM23881AD. Но можно «набрать» матрицу и из отдельных светодиодов. Микроконтроллер AtMega16a можно заменить на «старый» AtMega16 с буквой L. При этом, теоретически должен немного увеличится ток потребления от батарейки. Наверное будет работать и просто AtMega16, но могут возникнуть проблемы при работе от батарейки. Диод D1 - желательно любой диод шоттки. С обычным выпрямительным тоже работает, но чтоб обезопасить себя от различных глюков, связанных с тем что часть схемы питается напряжением «до диода», а часть «после диода» лучше поискать шоттки. Транзистор VT1 – любой n-p-n.
Управление часами осуществляется двумя кнопками. Их количество можно было довести до 8шт, не добавляя больше вообще ни одного компонента, кроме самих кнопок, но захотелось попробовать «выкрутится» всего двумя. Кнопки условно названы «ОК» и «ШАГ». Кнопкой «ШАГ» как правило происходит переход к следующему пункту меню, а кнопкой «ОК» изменение параметров текущего меню. Сигнал сработавшего будильника также выключается кнопками «ОК» или «ШАГ». Нажатие любой кнопки во время сигнала будильника отключает его. Схема управления получилась такой:
Конструктивно часы выполнены на одной печатной плате. Размер печатной платы выбран под размер индикаторов. Минимальная ширина дорожекпечатной платы – 0,4мм, расстояние между дорожками– 0,4мм. Так что методом «ЛУТа» можно без труда вытравить плату самостоятельно.
SMD элементы расположены с одной стороны платы. А индикаторы с другой. стороны Получился миниатюрный блок, который можно легко встроить в какой нибудь небольшой плоский корпус.
Корпус собран из стеклотекстолита методом пайки, прошпаклеван и покрашен в цвет «спелая вишня». Стекло передней панели – обычное тонированное стекло.
Окончательный вариант.
Проект в протеусе у меня не захотел работать, отлаживал в железе. Если у кого получится собрать в протеусе, и нормально заработает - высылайте, проект обязательно будет выложен.
Если есть интересные идеи по добавлению функционала – пишите в комментариях, реализую все, на что хватит сил и мозгов (правда кодер с меня слабенький…).
Видео работы часов
(не получается нормально у меня снять видео. Изображение на самом деле плавное и четкое, но на видео дергается и «рвется»….)
Fuze bit
Прошивка и исходник на си (CodeVision_AVR_2.05)
Автор - O-LED
Статья размещена с разрешения автора.
TPIC6B595 c буквами DW пойдет?
macarena, MACTEP прав: "ссылка как бы не работает..."
Нужно перезалить
подскажите, в чем разница в обозначениях АТМЕГи (AU AI PU PI) и какой именно сюда надо контроллер: ATMEGA16-16AI ATMEGA16-16AU ATMEGA16A-PU ATMEGA16-16PI ATMEGA16A-AU ?
TPIC6B595 c буквами DW пойдет?
"evildesign 5 проводков и uniprof софт"
так?
Поставил вот такой (
Транзистор взял с платы старого HDD,с маркировкой 1PK, похоже это FMMT2222. Прозвонка мультиметром подтвердила структуру NPN.
Проблема в том что громкость сигнала крайне мала, его едва слышно. В чем проблема? Помогите.
Хороший проект.На радиокоте целая ветка с кучей доработок и улучшений.
Собрал часы, очень доволен функционалом. Осталось сделать корпус.