Реклама ⓘ
Главная » Автоматика в быту
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

Многофункциональные часы на матричных индикаторах

На просторах Интернета нет недостатка в разного рода электронных часах. Солидно смотрятся часы на матричных индикаторах, например, известная схема с радиокота, но хотелось, чтобы были с индикацией не только часов и минут, но и секунд. Решил создать такие часы, добавив еще и некоторые другие функции.

Представленные здесь электронные часы, кроме того, позволяют измерять температуру в помещении. Есть четыре независимых будильника, а так же индикатор календарных событий, который сигнализирует о наступлении таких событий, как годовщина, день рождения и т.д.. Позволяют изменять яркость в ручном и автоматическом режиме, что резко улучшает комфортность восприятия в темное время суток, и наконец, управляются любым пультом от БРА либо локальными кнопками.

Основные характеристики:

  • Напряжение питания (В) ………… .…………………... 5
  • Ток потребления (мА) …………………………………. 100 - 200
  • Общий размер матрицы (пикселей) ……………………  8 х 40
  • Пределы измеряемой температуры (градусов) …….…. -40 - +99.5
  • Точность измерения температуры (градусов) ……….. 0.5
  • Пределы суточной коррекции хода (секунд) …………. -9.9 - +9.9
  • Число градаций изменения яркости …………………… 31 + режим «авто»
  • Количество будильников ………………………………. 4
  • Объем текста каждого будильника (символов) ………..  11
  • Количество индикаторов событий …………………….. 14
  • Объем текста для каждого события (символов) ....……. 15
  • Управление режимами …………………………………. Кнопками/любым пультом

Принципиальная схема часов условно разделена на индикаторную и «контроллерную» части, представленные на рисунках ниже. Нумерация элементов единая и далее, при описании, будем рассматривать схему как одно целое.

Схема индикации

Схема управления

Индикация осуществляется на пяти матричных индикаторах HL1-HL5 типа  1088BS размерами 32х32 мм, с управлением при помощи сдвиговых регистров. Для управления по столбцам используются регистры DD1-DD5 типа 74HC595D с возможностью записи информации для параллельного вывода, у которых тактовые входы и входы записи данных соответственно объединены, а информационные входы и выходы соединены последовательно. Для управления по строкам (соответствующие выводы индикаторов объединены) применена микросхема TPIC6B595 с аналогичным принципом работы, но имеющий на параллельных выходах мощные ключи на полевых транзисторах. Она допускает на этих выходах импульсные втекающие токи до 400мА. Токоограничительные резисторы R1-R40 выбраны так, что с учетом сопротивления выходов 74HC595, ток каждого светодиода в импульсе составляет около 10 мА, а общий максимальный ток – те же 400мА. На все регистры DD1-DD6 информация загружается последовательно и единовременно записывается в выходные защелки, что обеспечивает отсутствие всякого рода паразитных свечений элементов индикатора.

Собственно управление регистрами осуществляется посредством трех портов микроконтроллера (МК) DD7, в прерываниях от таймера TMR0 интервалом 2 мс, что обеспечивает общую частоту смены информации 63 Гц. Так же с МК на 9 вывод DD6 (включение-выключение выходов) поступает сигнал ШИМ для изменения яркости индикаторов. МК DD7 выбран типа PIC16F88, который отличается от популярного PIC16F628A наличием АЦП и вдвое емкой памятью программ. МК работает от внутреннего генератора на частоте 8 МГц (еще одно отличие от 628A).

В устройстве применена микросхема часов реального времени DS1307, которая обеспечивает счет и хранение секунд, минут, часов, дня недели, даты (включая год от 0 до 99). При начальной инициализации DS1307 настраивается в режим, при котором на выводе 7 присутствует меандр с частотой 1 Гц, который подается на вход RB0 МК. По этому входу включено прерывание, где один раз в секунду устанавливается специальный флаг. В основной программе посредством этого флага один раз в секунду выполняются основные действия: считывание данных с DS1307, индикация времени, проверка на совпадение будильников и индикаторов событий, установка яркости в автоматическом режиме. Дополнительная батарея BAT1 позволяет сохранять данные в отсутствии напряжения питания устройства практически неограниченное время. МК управляет DS1307 по шине I2C портами RB1, RB2. Так же по I2C управляется и датчик температуры – микросхема DS1621.

Устройство управляется с помощью кнопок S1 и S2, подключенных соответственно к портам МК RA4, RA2. Функции кнопки S1 могут выполняться с помощью любого пульта от БРА с помощью схемы на приемнике DA1 типа TSOP48 и одновибратора на  D-триггере DD8.1 и элементах C8, R47 и D1. Длительность сигнала одновибратора выбрана 0.2 с, что обеспечивает преобразование пачек коротких импульсов с выхода DA1 в импульсы этой длительности при коротком нажатии и в непрерывный сигнал при удержании нажатой любой кнопки пульта. Сигнал с инверсного выхода  триггера через диод D2 дублирует кнопку S1. С помощью элементов R48, HL6 организована индикация этого факта..

На втором триггере микросхемы DD8.2 и пьезокерамическом излучателе LS1 собрана схема звуковой сигнализации при срабатывании будильника либо индикатора события. На счетный вход триггера поступает сигнал ШИМ с выхода МК частотой 8 кГц. При сигнале логического 1 на объединенных  входах R и S триггера на обоих выходах присутствует лог.1 и звук отсутствует. При наступлении события индикации МК с частотой 1 Гц меняет уровень на этих входах и на выходах триггера с этой периодичностью возникают противофазные импульсы с частотой 4000 Гц. Так как эта частота – резонансная для данного излучателя, возникает громкий прерывистый сигнал. Программно приняты меры для сохранения импульсом ШИМ и при крайних значениях яркости.

На элементах FR1, R45 и C6 собран датчик освещенности. МК с помощью встроенного АЦП считывает зависящее от освещения напряжение с этого делителя и выставляет соответствующий коэффициент заполнения ШИМ сигнала.

Питается устройство напряжением +5В, поступающим на разъем J1 и далее через фильтрующие цепи R41C3C4, R42C5, C7R46 на элементы схемы. Цепь R49 D3 защищает устройство от случайного подключения чрезмерного либо обратного напряжения. Удобно применить в качестве ИП зарядное устройство для смартфонов на 5 Вольт.

Устройство собрано на печатной плате из стеклотекстолита с односторонней металлизацией размерами 60 мм на 170 мм

DD1-DD5 применены в корпусе SO16, DD6 – в корпусе SOIC20. DD8 использована  в корпусе DIP. Ее можно заменить отечественной К561ТМ2. DD9, DD10 – в корпусах SO8. Почти все SMD резисторы и конденсаторы – типоразмера 0805, C1,C7,C3,C5 – типоразмера 1206. Кварцевый резонатор лучше выпаять со старой материнской платы – они, как правило, стабильнее. Фоторезистор FR1, при замене на другой, должен быть с темновым сопротивлением примерно 1 – 2 МОм.  Батарея BAT1 типа CR2032 установлена на стандартном держателе. Ее можно заменить любой, подходящей по размеру, напряжением 3В. При замене пьезоизлучателя на другой очень желательно, чтобы резонансная частота была близка к 4000 Гц. Фотоприемник можно выпаять со старого телевизора. Светодиод – любой яркий, красного свечения. Диоды можно заменить на КД521, КД522. Стабилитрон – напряжением 5.6В и желательно мощностью не менее 1 Вт. Так как примененные матричные индикаторы оказались с общим анодом, пришлось при разработке платы установить их с поворотом на 90 градусов и использовать строки как колонки и наоборот. При замене на индикаторы с общим катодом, например 1088AS, придется полностью изменить схему подключения. Кнопки – любые тактовые, угловые. При закрытии индикаторов спереди цветным оргстеклом наблюдались ошибочные срабатывания DA1 отраженным яркостным сигналом от индикаторов. Этот эффект легко устраняется вклеиванием экрана из черной бумаги между индикатором и фотоприемником.

В налаживании правильно собранное устройство обычно не нуждается. Однако, если не устраивает имеющаяся зависимость освещенности и соответствующей яркости индикатора в авторежиме, следует подобрать номинал резистора R45. При этом, меньшее сопротивление соответствует меньшей яркости при данной освещенности.

Внешний вид собранной платы показан на фотографиях.

Причина не очень красиво припаянных токоограничительных резисторов в том, что после изготовления платы выяснилось, что типономинал оных не 0805, а 1206. Пришлось как-то припаять...

Программа управления контроллером написана на языке Си и оттранслирована в среде MikroC for PIC. Слово конфигурации содержится в прошивке и заносится автоматически. Авторская ориентация часов – матрицы сверху, что минимизирует возможное воздействие от деталей схемы на температуру микросхем DD9, DD10. Однако,    если кому-то понравится расположение часов матрицами вниз, следует перед трансляцией программы изменить в файле “watch.c”  значение параметра в самой первой строке с 1 на 0 согласно комментарию. Прошивка прилагается для обоих случаев. Так же возможно изменить шрифт цифр на тонкий (по умолчанию – жирный), аналогичный буквам (это, кстати, несколько снизит потребляемый ток в исходном режиме). Для этого в первой строке в файле “font.c” надо изменить значение параметра “font_2”  с 1 на 0.

Теперь перейдем к описанию режимов часов и работы с ними.

Сразу при включении, часы переходят в основной режим – индикации времени. При этом, цифра часов и минут высотой 8 пикселей, а секунд – 7 (в целом каждая цифра или буква изображается в поле 5х8 пикселей, цифры секунд – 5х7). При нажатии на кнопку S1 или любой кнопки пульта (эти действия эквивалентны и далее будем иметь в виду, что когда речь идет о нажатии кнопки S1, то же происходит и по сигналу с пульта) с помощью бегущей строки отображается текущая полная дата и день недели. Если больше не предпринимать никаких действий, спустя 16 сек. устройство возвращается в исходное состояние – индикации времени. Если же нажать кнопку S1 еще раз во время индикации даты, то начинается индикация температуры тоже посредством бегущей строки в течении 16 сек. (повторное нажатие кнопки – возврат в исходное состояние сразу).

При непрерывном нажатии на кнопку S1 в течении 9 секунд, часы переходят в режим «МЕНЮ», о чем говорит соответствующая надпись. Столь длительное нажатие для этого выбрано в целях уменьшения вероятности случайного попадания в меню при обычном пользовании пультом (собственно для управления бытовой техникой).

Далее следует небольшое отступление - поясним работу с кнопками в целом. Управление часами сделано так, что все действия с ними можно произвести с помощью одной лишь кнопки S1 (или пультом). Ведь часы могут висеть высоко на стене, и доступ будет только к кнопке S1 (через пульт). Итак, перебор пунктов меню, так же как перебор  из списка будильников либо событий производится короткими (до 3 сек.) нажатиями S1, а переход в выбранный пункт – длинное (более 3 сек.) нажатие. Без воздействия в течении 15 – 30 сек. (в зависимости от конкретного режима) – возврат в исходное состояние.  Там же, где происходит изменение значения какого-то параметра, короткое нажатие увеличивает значение не 1, а удерживание более 2 сек. - значение увеличивается автоматически примерно 3 раза в секунду. Здесь отсутствие воздействия в течении некоторого настраиваемого (от 5 до 8 сек.) времени приводит к переходу к следующему параметру с сохранением текущего параметра. Вот здесь и можно использовать кнопку S2 –  для сохранения параметра с переходом к следующему без ожидания, сразу. Так, держа часы в руках можно значительно ускорить подобные манипуляции.

Вернемся к пункту «МЕНЮ». Здесь пять пунктов: УСТАНОВКА, КОРРЕКЦИЯ, БУДИЛЬНИК, СОБЫТИЯ, НАСТРОЙКИ. Расскажем о каждом по порядку.

УСТАНОВКА. Здесь производится установка текущих даты и времени. Изменяемый параметр вначале выделяется инверсией, которая исчезает с началом изменений. Значения меняются только в большую сторону, с переходом с максимального значения (при ее достижении) к минимальному и далее по кругу. В самом конце, когда дата и часы с минутами выставлены, в месте секунд будут инверсные нули. Здесь надо в момент обнуления эталонных секунд нажать S1 и часы перейдут в исходное состояние с измененными датой и временем.

КОРРЕКЦИЯ. С течением времени, неминуемо возникает ошибка в ходе часов. Для ее коррекции и служит данный пункт. Предварительно надо замерить «уход» часов в течении 10 суток. Предположим, часы спешат на 58 секунд. Входим затем в этот режим, о чем говорит строка «уход за 10 суток». При нажатии S1 строка сменяется статичной надписью «ХХ сек», где ХХ – текущее значение коррекции, предположим 31. Так как часы спешат, отнимаем от данного значения наши 58 сек. (если отстают – прибавляем). Набираем полученные (-27) сек. После выхода это значение сохранится в EEPROM.  Интервал вводимых значений – от -99 до 99, знак меняется при переходе через 0. Коррекция происходит каждый день в 00:00:19, для чего целая от одной десятой значения  коррекции (в нашем случае (-2)) добавляется к текущему времени, а остаток (у нас (-7)) сохраняется в EEPROM и в следующий раз прибавляется к коэффициенту до обработки. То есть через день от времени отнимется 3 секунды и сохранится (-4) (-27-7 = -34).  

БУДИЛЬНИК. При входе в этот пункт на экране бежит стока, состоящая из: номер (1-4), признак включенности (“+” или “-“), время срабатывания, название будильника (текст из 11 знаков). По умолчанию, например, во втором будильнике, будут данные: «2. – 12:00 БУДИЛЬНИК-2». Короткими нажатиями можно переходить из одного будильника в другой, долгим нажатием переходим в текущий будильник, где можно изменять данные, включать – отключать выбирать активность для каждого дня недели, установить время срабатывания, изменять текст название путем перебора знаков каждой позиции. Вся информация о четырех будильниках хранится в свободной памяти микросхемы DS1307 (56 байт) . При совпадении текущего времени с каким-нибудь включенным и активным в этот день недели будильником выводится строка с данными об этом будильнике, с прерывистым звуковым сигналом, в течении одной минуты. Сигнал будильника можно «досрочно» прервать нажатием кнопки S1.

СОБЫТИЯ. При входе в этот пункт, на индикаторе при коротких нажатиях кнопки, попеременно пробегают активные события плюс пункт «ДОБАВИТЬ НОВОЕ». По умолчанию активных событий нет, поэтому, будет только приглашение о добавлении нового события. Формат активного события: «<дата> <текст из 16 знаков>». Когда все 14 событий активны, пункт «ДОБАВИТЬ НОВОЕ» не выводится и новое событие можно добавить только вместо какого либо из существующих. Длительным нажатием переходим в режим редактирования события. Здесь можно включить-отключить, изменить дату, а так же написать свой текст, соответствующий данному событию. Все изменения сохраняются в энергонезависимой памяти МК (EEPROM).

На совпадение с датами событий текущая дата проверяется каждый день в 8:00, и при совпадении выводится строка из текущей даты и текста события с прерывистым звуковым сигналом в течении одной минуты. Такой сигнал будет подаваться каждый час до 19:00, при условии, что он не был прерван кнопкой. Прерванный кнопкой сигнал уже не повторяется.

НАСТРОЙКИ.  При входе в этот режим, на экран выводится сообщение типа «ЯРК.ХХ», где «ХХ» - текущая яркость. Нажатиями кнопки S1 это значение можно изменять в пределах от 1 до 31 либо выставить значение «АВ», что означает «автоматически». При изменении значения яркости, сразу наглядно меняется реальная яркость индикатора. При сохранении автоматического режима, яркость индикации часов впоследствии изменяется без вмешательства, в зависимости от уровня освещенности в помещении. В этом случае, попадаем в пункт установки минимальной яркости для авто-режима (выводится «МИН.ХХ»). Это значение лучше выставлять в условиях минимально ожидаемой освещенности. Если в предыдущем пункте было выставлено конкретное числовое значение яркости, данный пункт пропускается.

Следующий пункт настроек – регулировка времени ожидания до сохранения значений разного рода изменяемых параметров в пределах от 5 до 8 секунд. При минимальном  значении этого параметра - есть опасность сохранить ошибочные значения, при максимальном  – увеличивается общее время  ввода  данных с пульта. Пользователь выбирает комфортное для него значение.

Все настройки сохраняются в EEPROM памяти МК и не теряются при пропадании питания.

В приложении, кроме исходного кода и прошивок имеются Proteus-модель и плата в формате Lay6.

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
DD7 МК PIC 8-бит
PIC16F88
1 Поиск в магазине ОтронВ блокнот
DD1-DD5 Сдвиговый регистр74HC5955 SOP-16Поиск в магазине ОтронВ блокнот
DD8 Сдвоенный D-триггерCD40131 K561TM2Поиск в магазине ОтронВ блокнот
DD9 Часы реального времени (RTC)
DS1307
1 Поиск в магазине ОтронВ блокнот
DD10 Датчик температуры
DS1821
1 Поиск в магазине ОтронВ блокнот
DA1 ФотоприемникTSOP481 Поиск в магазине ОтронВ блокнот
DD6 Мощный сдвиговый регистрTPIC6B5951 Поиск в магазине ОтронВ блокнот
LS1 ПьезоизлучательXCFT-14A1 Поиск в магазине ОтронВ блокнот
HL1-HL5 Светодиодная матрица1088BS5 Поиск в магазине ОтронВ блокнот
HL6 СветодиодARL-35141 redПоиск в магазине ОтронВ блокнот
X1 Кварцевый резонатор32768 Гц1 Поиск в магазине ОтронВ блокнот
BAT1 Литиевая батареяCR20321 3 VПоиск в магазине ОтронВ блокнот
D1-D2 Диод1N47482 Поиск в магазине ОтронВ блокнот
D3 Стабилитрон
1N4734A
1 Поиск в магазине ОтронВ блокнот
S1, S2 Кнопка тактоваяугловая2 Поиск в магазине ОтронВ блокнот
FR1 ФоторезисторNCL-49521 Поиск в магазине ОтронВ блокнот
R1-R40 Резистор
220 Ом
40 0805Поиск в магазине ОтронВ блокнот
C1, C3, C6, C9 Конденсатор0.1 мкф4 0805Поиск в магазине ОтронВ блокнот
C2, C4, C10 Конденсатор470 мкФ 10В3 Поиск в магазине ОтронВ блокнот
C5, C7 Конденсатор1 мкФ2 0805Поиск в магазине ОтронВ блокнот
C8 Конденсатор0.47 мкФ1 Поиск в магазине ОтронВ блокнот
R41 Резистор471 Поиск в магазине ОтронВ блокнот
R42 Резистор1001 Поиск в магазине ОтронВ блокнот
R43, R44 Резистор
33 кОм
2 Поиск в магазине ОтронВ блокнот
R45 Резистор2201 Поиск в магазине ОтронВ блокнот
R46 Резистор
22 кОм
1 Поиск в магазине ОтронВ блокнот
R47 Резистор
470 кОм
1 Поиск в магазине ОтронВ блокнот
R48 Резистор
3.3 кОм
1 Поиск в магазине ОтронВ блокнот
R49 Резистор11 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 2
Я собрал 0 4
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 4 чел.

Комментарии (11) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
Sergey #
Интересная конструкция, но правильно ли я понимаю, что любое переключение телевизора например будет влиять на часы? Не айс!
Ответить
0

[Автор]
diogen_b #
Да, такое паразитное воздействие возможно, но не вижу проблемы, если при переключении каналов ТВ часы на 16 секунд покажут дату или температуру. В меню же можно войти только длительным (9 секунд ) непрерывным нажатием пульта.
Ответить
0
andro #
Чем обусловлено использование именно микроконтроллера PIC ?
Ответить
0

[Автор]
diogen_b #
Исключительно личными предпочтениями.
Ответить
0
247760 #
Привет. Какие ещё есть маркировки NCL-4952, не могу найти такой.
Ответить
+1

[Автор]
diogen_b #
Практически любой фоторезистор с темновым сопротивлением 1 - 2 МОм.
Ответить
0
Вадим #
Так всё таки: Так же по I2C управляется и датчик температуры – микросхема DS1621 или DS1821? Так как в тексте одно, а в спецификации другое.
Ответить
+1

[Автор]
diogen_b #
Правильно в тексте - DS1621.
Ответить
0
samand587 #
Уважаемый автор! Собрал Ваши часы и появилось ряд вопросов:
- у меня стоит фоторезистор с темновым сопротивлением 1МОм. Номинал резистора R45 довел до 750кОм, Часы в темноте полностью гаснут. Плавного изменения яркости не могу добиться. Что посоветуете?
- нет ли желания добавить бегущую строку время-дата- температура? Просится!
Ответить
0

[Автор]
diogen_b #
Если фоторезистор исправен, резистор должен быть в пределах 10 - 47 кОм. Минимальная яркость в авторежиме регулируется в настройках меню, еще раз почитайте описание. Вводить дополнительный функционал не планирую в виду нехватки времени.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Радиореле 220В
Радиореле 220В
AVR-программатор USB ASP Набор для сборки - LED лампа
вверх