Большие часы на светодиодах

Вступление.

Началось всё так. На даче у меня был старый механический будильник (made in USSR), у которого были проблемы с механикой. Я решил собрать электронные часы. Первая проблема - какой индикатор выбрать. ВЛИ и ГРИ не подходать из-за больших перепадов температур на даче. ЖКИ отпадает по той же причине. Остаётся светодиодный индикатор. Мне надоело разглядывать мелкие цифры на индикаторах, а большие семисегментники редкие и дорогие. Решено было сделать индикатор с высотой цифры 50мм из отдельных зелёных светодиодов.

С индикатором разобрались, но им нужно как-то управлять. При этом часы должны идти даже при длительном отсутсвии питания. Будем делать на МК ATTiny2313 и микросхеме RTC DS1307, которая так же имеет встоенный контроллер питания и позволяет подключить батарейку.

1. Индикатор.

Делать будем, как я уже сказал, из отдельных зелёных светодиодов диаметром 5мм. Вот схема индикатора:

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

2. Основная часть.

Схема, как я уже говорил, на ATTiny2313 и DS1307. Вот она:

Тут уже пояснения требуются. Справа два сдвоенных семисегментника и два светодиода - внутренняя схема маленького индикатора с ОА. Зачем два индикатора? Ночью большой индикатор ярким свечением может мешать спать (часы будут около кровати), по этому индикацию можно переключить на маленький индикатор переключателем SW1. В положении "Ночн." работает маленький индикатор, в положении "Дневн." - большой. Этот маленький индикатор я достал из стиральной машины, распиновка есть на печетке. Батрейка на 3В, CR2032. Транзисторы Q1-Q4 можно заменить на любые другие маломощные PNP транзисторы, например на КТ315. Q6-Q9 - на PNP током КЭ не менее 1А, Q5 - на NPN с током коллектора не менее 0,4А. Блок питания может быть любой с напряжением 9-20В, полярность не важна, можно даже переменку пускать. Ток не менее 1А. Стабилизатор U4 нужно установить на радиатор. Кстати, чем меньше входное напряжение - тем легче живётся стабилизатору. У меня БП такой:

Теперь переходим к сборке.

3. Сборка.

Идём в магазин и покупаем детали.

Делаем платы и начинаем паять. Запаять 88 светодиодов, столько же резисторов и 44 диода - не легко, но оно того стоит.

Теперь соединяем всё проводами. Я использовать шлейфы и разъёмы PLS/PBS. Вам помогут эти картинки:

Теперь прошиваем МК. Вот фьюзы:

И включаем:

Кнопки и разъёмы я использовал такие:

4. Корпус.

Корпус я сделал из фанеры и бруска 20*40, зашкурил и покрыл лаком. Сзади поставил два крепежа для крепления на стену.

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

Теперь несколько фотографий:

Как видно из названия, главное предназначение данного устройства - узнавать текущее время и дату. Но оно имеет ещё множество других полезных функций. Идея его создания появилась после того, как мне на глаза попались полусломанные часы с относительно большим (для наручных) металлическим корпусом. Я подумал, что туда можно вставить самодельные часы, возможности которых ограничиваются только собственной фантазией и умением. В результате появилось устройство со следующими функциями:

1. Часы - календарь:

2. Два независимых будильника (при срабатывании звучит мелодия)
3. Таймер с дискретностью 1 сек. (Максимальное время отсчета 99ч 59м 59с)
4. Двухканальный секундомер с дискретностью счета 0,01 сек. (максимальное время счета 99ч 59м 59с)
5. Секундомер с дискретностью счета 1 сек. (максимальное время счета 99 суток)
6. Термометр в диапазоне от -5°С. до 55°С (ограничен температурным диапазоном нормальной работы устройства) с шагом 0,1°С.
7. Считыватель и эмулятор электронных ключей - таблеток типа DS1990 по протоколу Dallas 1-Wire (память на 50 штук, в которой уже имеется несколько универсальных ”ключей-вездеходов”) с возможностью побайтного просмотра кода ключа.
8. Дистанционный пульт управления на ИК лучах (реализована только команда "Сделать снимок") для цифровых фотокамер "Pentax", "Nikon", "Canon"
9. Светодиодный фонарик
10. 7 мелодий
11. Звуковой сигнал в начале каждого часа (отключаемый)
12. Звуковое подтверждение нажатия кнопок (отключаемое)
13. Контроль напряжения батареи питания с функцией калибровки
14. Цифровая регулировка яркости индикатора

Может такая функциональность и избыточна, но мне нравятся универсальные вещи, ну и плюс моральное удовлетворение от того, что данные часы будут сделаны своими руками.

Принципиальная схема часов

Устройство построено на микроконтроллере АТmega168PA-AU. Часы тикают по таймеру Т2, работающему в асинхронном режиме от часового кварца на 32768 Гц. Микроконтроллер почти всё время находится в спящем режиме (индикатор при этом выключен), просыпаясь раз в секунду, чтобы добавить эту самую секунду к текущему времени и снова засыпает. В активном режиме МК тактируется от внутреннего RC осциллятора на 8 МГц, но внутренний прескалер делит её на 2, в итоге ядро тактируется от 4 МГц. Для индикации используется четыре одноразрядных светодиодных цифровых семисегментных индикатора c общим анодом и децимальной точкой. Так же имеется 7 статусных светодиодов, назначение которых следующее:
D1- Признак отрицательного значения (минус)
D2- Признак работающего секундомера (мигает)
D3- Признак включенного первого будильника
D4- Признак включенного второго будильника
D5- Признак подачи звукового сигнала в начале каждого часа
D6- Признак работающего таймера (мигает)
D7- Признак низкого напряжения батареи питания

R1-R8 - токоограничительные резисторы сегментов цифровых индикаторов HG1-HG4 и светодиодов D1-D7. R12,R13 – делитель для контроля напряжения батареи. Поскольку напряжение питания часов 3V, а белому светодиоду D9 требуется около 3,4-3,8V при номинальном токе потребления, то он светится не в полную силу (но её хватает, чтобы не споткнуться в темноте) и поэтому подключен без токоограничительного резистора. Элементы R14, Q1, R10 предназначены для управления инфракрасным светодиодом D8 (реализация дистанционного управления для цифровых фотокамер). R19, R20, R21 служат для сопряжения при общении с устройствами, имеющими интерфейс 1-Wire. Управление осуществляется тремя кнопками, которые я условно назвал: MODE (режим), UP (вверх), DOWN (вниз). Первая из них также предназначена для пробуждения МК по внешнему прерыванию (при этом индикация включается), поэтому она подключена отдельно на вход PD3. Нажатия остальных кнопок определяется при помощи АЦП и резисторов R16,R18. Если кнопки не нажимаются в течении 16 сек, то МК засыпает и индикатор гаснет. При нахождении в режиме “Пульт ДУ для фотокамер” этот интервал составляет 32 сек., а при включенном фонарике - 1 минуту. Также МК можно усыпить вручную, используя кнопки управления. При запущенном секундомере с дискретностью счета 0,01 сек. устройство не переходит в спящий режим.

Печатная плата

Устройство собрано на двухсторонней печатной плате круглой формы по размеру внутреннего диаметра корпуса наручных часов. Но при изготовлении я использовал две односторонние платы толщиной 0,35 мм. Такую толщину опять же получил отслоив её от двухстороннего стеклотекстолита толщиной 1,5 мм. Платы затем склеил. Все это делалось потому что, у меня не было тонкого двухстороннего стеклотекстолита, а каждый сэкономленный миллиметр толщины в ограниченном внутреннем пространстве корпуса часов очень ценен, да и отпала надобность совмещения при изготовлении печатных проводников методом ЛУТ. Рисунок печатной платы и расположение деталей находятся в прилагаемых файлах. На одной стороне размещены индикаторы и токоограничительные резисторы R1-R8. На обратной - все остальные детали. Имеются два сквозных отверстия для белого и инфракрасного светодиодов.

Контакты кнопок и держатель батареи выполнены из гибкой пружинящей листовой стали толщиной 0,2…0,3мм. и залужены. Ниже приведены фото платы с двух сторон:

Конструкция, детали и их возможная замена

Микроконтроллер ATmega168PA-AU можно заменить на ATmega168P-AU, ATmega168V-10AU ATmega168-20AU. Цифровые индикаторы - 4 штуки KPSA02-105 суперяркие красного цвета свечения с высотой цифры 5,08мм. Mожно поставить из этой же серии KPSA02-xxx или KCSA02-xxx. (только не зеленые – они будут слабо светиться) Другие аналоги подобных размеров с достойной яркостью мне неизвестны. У HG1, HG3 соединение катодов сегментов отличается от HG2, HG4, потому что мне так было удобнее для разводки печатной платы. В связи с этим для них в программе применена различная таблица знакогенератора. Используемые резисторы и конденсаторы SMD для поверхностного монтажа типоразмеров 0805 и 1206, светодиоды D1-D7 типоразмера 0805. Белый и инфракрасный светодиоды диаметром 3мм. На плате имеется 13 сквозных отверстий, в которые необходимо установить перемычки. В качестве температурного датчика применён DS18B20 c интерфейсом 1-Wire. LS1 – обычная пьезоэлектрическая пищалка, вставляется в крышку. Одним контактом она соединяется с платой при помощи пружинки, установленной на ней, другим соединяется с корпусом часов самой крышкой. Кварцевый резонатор от наручных часов.

Программирование, прошивка, фьюзы

Для внутрисхемного программирования на плате имеются только 6 круглых контактных пятачка (J1), так как полноценный разъем не уместился по высоте. К программатору их подключал, используя контактное устройство, сделанное из штыревой вилки PLD2x3 и напаянных на них пружинками, прижимая их одной рукой к пятачкам. Ниже прилагается фото приспособления.

Я использовал его, так как в процессе отладки приходилось много раз перепрошивать МК. При разовой прошивке проще подпаять к пятачкам тонкие провода, подключенные к программатору, а после снова отпаять. МК удобнее прошивать без батареи, но чтобы питание поступало либо от внешнего источника +3V, либо от программатора c таким же напряжением питания. Программа написана на ассемблере в среде VMLAB 3.15. Исходные коды, прошивки для FLASH и EEPROM в приложении.

FUSE-биты микроконтроллера DD1 должны быть запрограммированы следующим образом:
CKSEL3...0 = 0010 - тактирование от внутреннего RC осциллятора 8 МГц;
SUT1...0 =10 - Start-up time: 6 CK + 64 ms;
CKDIV8 = 1 - делитель частоты на 8 отключён;
CKOUT = 1 - Output Clock on CKOUT запрещен;
BODLEVEL2…0 = 111 - контроль напряжения питания отключён;
EESAVE = 0 - стирание EEPROM при программировании кристалла запрещено;
WDTON = 1 - Нет постоянного включения Watchdog Timer;
Остальные FUSE – биты лучше не трогать. FUSE–бит запрограммирован, если установлен в “0”.

Прошивка EEPROM прилагаемым в архиве дампом обязательна.

В первых ячейках EEPROM размещается начальные параметры устройства. В приведённой ниже таблице описывается назначение некоторых из них, которые можно менять в разумных пределах.

Адрес ячейки

Назначение

Параметр

Примечание

Величина напряжения батареи, при которой происходит сигнал о её низком уровне

260($104) (2,6V)

коэффициент для коррекции значения измеренного напряжения батареи

интервал времени на переход в режим сна

1 ед. = 1 сек

интервал времени на переход в режим сна при включенном фонарике

1 ед. = 1 сек

интервал времени на переход в режим сна при нахождении в режиме ДУ для фотокамер

1 ед. = 1 сек

Здесь хранятся номера IButton ключей

Небольшие пояснения по пунктам:

1 пункт. Здесь указывается величина напряжения на батарее, при которой загорится светодиод, сигнализирующий о её низком значении. Я поставил 2,6V (параметр - 260). Если нужно другое, например 2,4V, то надо записать 240($00F0). В ячейку по адресу $0000 заносится младший байт, соответственно в $0001 – старший.

2 пункт. Поскольку я не установил на плату переменный резистор для подстройки точности измерения напряжения батареи питания ввиду отсутствия места, то я ввел программную калибровку. Порядок калибровки для точного измерения следующий: изначально в данной ячейке EEPROM записан коэффициент 1024($400), необходимо перевести устройство в активный режим и посмотреть на индикаторе напряжение, и тут же замерить вольтметром реальное напряжение на батарее. Коэффициент коррекции (К), который необходимо выставить, вычисляется по формуле: K=Uр/Uи*1024 где Uр – реальное напряжение, измеренное вольтметром, Uи – напряжение которое, измерило само устройство. После подсчёта коэффициента ”K” его заносят в устройство (как это делается сказано в инструкции по эксплуатации). После калибровки у меня погрешность не превысила 3%.

3 пункт. Здесь задается параметр времени, через которое устройство перейдет в спящий режим, если кнопки не нажимаются. У меня стоит 16 сек. Если допустим надо, чтобы засыпало через 30 сек, то надо записать 30($26).

В 4 и 5 пунктах аналогично.

6 пункт. По адресу $0030 хранится код семейства нулевого ключа (dallas 1-Wire), затем его 48 битный номер и CRC. И так 50 ключей последовательно.

Настройка, особенности работы

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

Устройство питается от литиевой батареи CR2032 (3V) и потребляет в режиме сна примерно 4 мкА, а в активном режиме 5…20 мА в зависимости от яркости индикатора. При ежедневном пятиминутном использовании активного режима батареи должно хватить примерно на 2….8 месяцев в зависимости от яркости. Корпус часов соединен с минусом батареи.

Считывание ключей проверялось на DS1990. Эмуляция проверена на домофонах ”МЕТАКОМ”. Под порядковыми номерами от 46 до 49(последние 4) прошиты (все ключи хранятся в EEPROM, их можно изменять перед прошивкой) универсальные ключи для домофонов. Ключ, прописанный под номером 49 открывал все домофоны ”МЕТАКОМ”, которые мне попадались, остальные универсальные ключи тестировать не довелось, их коды я взял из сети.

Дистанционное управление для фотокамер проверялось на моделях Pentax optio L20, Nikon D3000. Canon не удалось заполучить для проверки.

Инструкция пользователя занимает 13 страниц, поэтому я не стал её включать в статью, а вынес в приложение в формате PDF.

Архив содержит:
Схема в и GIF;
Рисунок печатной платы и расположение элементов в формате ;
Прошивка и исходники на ассемблере;

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 МК AVR 8-бит

ATmega168PA

1 PA-AU В блокнот
U2 Датчик температуры

DS18B20

1 В блокнот
Q1 MOSFET-транзистор

2N7002

1 В блокнот
С1, С2 Конденсатор 30 пФ 2 В блокнот
С3, С4 Конденсатор 0.1 мкФ 2 В блокнот
С5 Электролитический конденсатор 47 мкФ 1 В блокнот
R1-R8, R17 Резистор

100 Ом

9 В блокнот
R9 Резистор

10 кОм

1 В блокнот
R10 Резистор

8.2 Ом

1 В блокнот
R11 Резистор

300 Ом

1 В блокнот
R12 Резистор

2 МОм

1 В блокнот
R13 Резистор

220 кОм

1 В блокнот
R14 Резистор

30 кОм

1 В блокнот
R15, R19 Резистор

4.7 кОм

2 В блокнот
R16 Резистор

20 кОм

1

С динамической индикацией. По работе часов претензий нет: точный ход, удобные настройки. Но один большой минус - в дневное время плохо видно светодиодные индикаторы. Для решени проблемы перешёл на статическую индикацию и более яркие светодиоды. Как всегда в программном обеспечение огромное спасибо Soir. В общем предлагаю вашему вниманию большие уличные часы со статической индикацией, функции настройки остались как и в прежних часах.

В них два дисплея - основной (снаружи на улице) и вспомогательный на индикаторах - в помещении, на корпусе прибора. Высокая яркость достигается применением ультраярких светодиодов , с рабочим током 50мА, и микросхем-драйверов .

Схема электронных часов для улицы на ярких светодиодах

Для прошивки контроллера с файлами и используйте следующие настроки фузов:

Печатные платы часов, блока управления и внешнего модуля, в формате LAY, .


Особенности данной схемы часов:

- Формат отображения времени 24-х часовый.
- Цифровая коррекция точности хода.
- Встроенный контроль основного источника питания.
- Энергонезависимая память микроконтроллера.
- Имеется термометр, измеряющий температуру в диапазоне -55 - 125 градусов.
- Возможен поочередный вывод информации о времени и температуре на индикатор.


Нажатие на кнопку SET_TIME переводит индикатор по кругу из основного режима часов (отображение текущего времени). Во всех режимах удержанием кнопок PLUS/MINUS производится ускоренная установка. Изменения настроек через 10 секунд от последнего изменения значения запишутся в энергонезависимую память (EEPROM) и будут считаны оттуда при повторном включении питания.


Ещё один большой плюс предложенного варианта - изменилась яркость, теперь в солнечную погоду яркость прекрасная. Уменьшилась количество проводов с 14 до 5. Длина провода до основного (уличного) дисплея - 20 метров. Работой электронных часов доволен, получились полнофункциональные часы - и днем, и ночью. С Уважением, Soir–Александрович.

Еще в юности мне хотелось собрать электронные часы. Мне казалось, что собрать часы, это было вершиной мастерства. В итоге я собрал часы с календарем и будильником на серии К176. Сейчас они уже морально устарели и мне захотелось собрать что-нибудь более современное. После долгих поисков по интернету (никогда не думал, что мне так трудно угодить;)) понравилась эта схема. Отличие от приведенной схемы в том, что не используется редкая микросхема ТРIC6В595 , а ее составной и более мощный аналог на микросхемах 74HC595 и ULN2003 . Исправления в схеме приведены ниже.



Схема электронных LED часов бегущая строка

Автор схемы уважаемый ОLED , прошивка тоже его. Часы индицируют текущее время, год, месяц и день недели а также температуру на улице и внутри дома бегущей строкой. Имеют 9 независимых будильников. Имеется возможность подстройки (коррекции) хода +- минуту в сутки, выбор скорости бега строки, смена яркости свечения светодиодов, в зависимости от времени суток.

При пропадании электричества, часы питаются либо от ионистора (емкости 1 Фарад хватает на 4 суток хода), либо от батарейки. Кому что по душе, плата рассчитана на установку того и другого. Имеют очень удобное и понятное меню управления (все управления производится всего двумя кнопками). В часах использованы следующие детали (все детали в СМД корпусах):

Микроконтролер АтМЕГА 16А

-
Сдвиговый регистр 74HC595

-
Микросхема ULN2803 (восемь ключей Дарлингтона)

-
Датчики температуры DS18B20 (устанавливаются по желанию)

-
25 резисторов на 75 Ом (типономинала 0805)

-
3 резистора 4.7кОм

-
2 резистора 1.5 кОм

-
1 резистор 3.6 кОм

-
6 СМД конденсаторов емкостью 0.1 мкф

-
1 конденсатор на 220 мкф

-
Часовой кварц на частоту 32768 герц.

-
Матрицы3 штуки марки 23088-АSR 60х60 мм - общий катод

-
Бузер любой на 5 вольт.



Плата печатная электронных LED часов бегущая строка

Для жителей Украины подскажу, матрицы есть в магазине Луганского радиомаркета. Преимущества часов перед другими аналогичными устройствами это минимум деталей и высокая повторяемость. Светодиодные часы начинают работать сразу после прошивки, если конечно отсутствуют косяки в монтаже. Прошивается микроконтроллер внутрисхемно, для этого на плате предусмотрены специальные выводы. Я прошивал программой Понипрог. Скрины фьюзов для программ понипрог и AVR приведены ниже, также выложены файлы прошивки на украинском и русском языке, кому что роднее.


Если Вам не нужны датчики температуры, то их можно не устанавливать. Часы автоматически распознают подключение датчиков, и если один или оба датчика отсутствуют, то устройство просто перестаёт отображать температуру (если отсутствует один датчик, то не отображается температура на улице, если оба - то не отображается температура вообще).

Самодельный корпус для LED часов

Для демонстрации работы часов приведено видео, оно не высокого качества, поскольку снималось фотоаппаратом, но уж какое есть.

Видеоролик работы часов

Собрано уже четыре экземпляра данных часов, дарю каждый на день рождения родственникам. И всем они очень понравились. Если вам тоже захотелось собрать эти часы и у вас возникли вопросы, милости прошу на наш форум. С уважением, Войтович Сергей (Сергей-7 8 ).

Обсудить статью ЧАСЫ ЭЛЕКТРОННЫЕ СВЕТОДИОДНЫЕ

На фото прототип, собранный мной для отладки программы, которая будет управлять всем этим хозяйством. Вторая arduino nano в верхнем правом углу макетки не относится к проекту и торчит там просто так, внимание на нее можно не обращать.

Немного о принципе работы: ардуино берет данные у таймера DS323, перерабатывает их, определяет уровень освещенности с помощью фоторезистора, затем все посылает на MAX7219, а она в свою очередь зажигает нужные сегменты с нужной яркостью. Так же с помощью трех кнопок можно выставить год, месяц, день, и время по желанию. На фото индикаторы отображают время и температуру, которая взята с цифрового термодатчика

Основная сложность в моем случае - это то, что 2.7 дюймовые индикаторы с общим анодом, и их надо было во первых как то подружить с max7219, которая заточена под индикаторы с общим катодом, а во вторых решить проблему с их питанием, так как им нужно 7,2 вольта для свечения, чего одна max7219 обеспечить не может. Попросив помощи на одном форуме я получил таки ответ.

Решение на скриншоте:


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

Для теста подключил один индикатор, все работает, ничего не дымит

Начинаем собирать.

Схему решил разделить на 2 части из-за огромного количества перемычек в разведенном моими кривыми лапками варианте, где все было на одной плате. Часы будут состоять из блока дисплея и блока питания и управления. Последний было решено собрать первым. Эстетов и бывалых радиолюбителей прошу не падать в обморок из-за жестокого обращения с деталями. Покупать принтер ради ЛУТа нет никакого желания, поэтому делаю по старинке - тренируюсь на бумажке, сверлю отверстия по шаблону, рисую маркером дорожки, затем травлю.

Принцип крепления индикаторов оставил тот же, как и на .

Размечаем положение индикаторов и компонентов, с помощью шаблона из оргстекла, сделанного для удобства.

Процесс разметки







Затем с помощью шаблона сверлим отверстия в нужных местах и примеряем все компоненты. Все встало безупречно.

Рисуем дорожки и травим.




купание в хлорном железе

Готово!
плата управления:


плата индикации:


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

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




плата управления сзади

Плата индикации сзади:

Ужасный монтаж смд:


Запуск

После припаивания всех шлейфов, кнопок и датчиков пришло время все это включить. Первый запуск выявил несколько проблем. Не светился последний большой индикатор, а остальные светились тускло. С первой проблемой расправился пропаиванием ножки смд-транзистора, со второй - регулировкой напряжения, выдаваемого lm317.
ОНО ЖИВОЕ!