Это простые часы собраны на микроконтроллере PIC16F18325 и 7-сегментном модуле TM1637. Рисунок платы и прошивку можно скачать в конце статьи.

Описание
Часы имеют следующие особенности:
- Отображение времени в 12-и или 24-часовом формате
- Переключение отображения между ЧЧ: ММ или ММ: СС
- Отображение температуры с четырьмя выбираемыми интервалами
- Отображение температуры в градусах Цельсия или Фаренгейта
- Ручное или автоматическое управление яркостью дисплея
Печатная плата имеет те же размеры, что и 4-разрядный 7-сегментный модуль TM1637 с размерами 50×19 мм. Индикатор TM1637 нацелен на пользователей Arduinio, и, конечно же, существует множество версий клонов данного модуля.
Как было сказано ранее, в схеме часов используется микроконтроллер PIC16F18325 и микросхема RTC DS3231 для отсчета времени.
Светодиодный модуль TM1637 подключается к плате с помощью 4-контактного разъема, установленного на обратной стороне печатной платы. Литиевая батарея типа CR1220 обеспечивает резервное питание RTC.

Для схемы требуется источник питания на 5 вольт. Имеется разъем Micro-USB, позволяющий питать плату от USB порта или адаптера. На краю платы также есть 2-х контактный разъем «PWR» для подключения внешнего питания. Часы также могут работать от источника питания 3,3 В, хотя это может привести к уменьшению яркости светодиодов дисплея.
Установка времени и опций выполняется с помощью одной кнопки. На печатной плате установлена тактильная кнопка, а также 2-контактный разъем, если будет необходимо установить кнопку за пределами платы.
Часы позволяют установить один из трех уровней яркости светодиодного дисплея. Уровень яркости можно установить вручную, или автоматически с помощью фоторезистора на плате.
Светодиодный модуль TM1637
Светодиодный модуль основан на микросхеме драйвера TM1637. Светодиодные модули доступны со светодиодами с центральным двоеточием или десятичной точкой. Также они бывают двух размеров:
- 50×19 мм
- 30×14 мм
Для этого проекта вам понадобится светодиодный модуль размерами 50×19 мм с центральным двоеточием.
По какой-то причине все эти светодиодные модули имеют два конденсатора по 10 нФ, подключенных к сигнальным линиям CLK и DIO. Емкость этих конденсаторов слишком велика и из-за этого происходит искажение сигнал I2C от платы управления до такой степени, что он не работает. Поэтому при использовании в этом проекте эти конденсаторы необходимо удалить:
Вы также можете удалить PWR светодиод. Он не влияет на работу часов, но вам может не понравиться, чтобы на заднем плане светился зеленый светодиод.
Наконец, проверьте порядок сигналов CLK, DIO, GND и 5V на 4-контактном разъеме. У меня есть несколько версий этого модуля размером 0,36 дюйма, в которых сигналы GND и 5V поменяны местами. Если на это не обратить внимание, то модуль может быть испорчен.
Принципиальная схема
Примечания к компонентам:
- Все резисторы 0805
- Конденсаторы керамические X5R или X7R
- Конденсаторы C3, C4 100nF, размер 0805, C2 10uF / 10V, размер 1206
- R1 и C2 не используются, поэтому устанавливать их не нужно.
- Держатель батареи CR1220 предназначен для поверхностного монтажа
- Используйте литиевый батарейный элемент CR1220 на 3 вольта.
- S1 — 6-миллиметровая тактильная кнопка со сквозным отверстием, выберите длину кнопки в соответствии с вашими требованиями
- Разъем USB-PWR представляет собой вертикальный разъем micro-USB типа B
- Микроконтроллер U1 представляет собой SOIC PIC16F18325 и требует программирования
- RTC U2 — это DS3231 (S/SN/M)
- Диапазон рабочих температур:
DS3231S (от 0 oC до +70 oC)
DS3231SN (от -40 oC до +85 oC)
DS3231M (от -45 oC до +85 oC) - В типе M используется резонатор MEMS с точностью ± 5 ppm , в S/SN используется резонатор TCXO с точностью ± 2,0 ppm от 0 oC до +40 oC и ± 3,5 ppm от -40 oC до +85 oC.
Отдельный чип DS3231 RTC довольно дорогой, но вы можете найти его в RTC модулях, продаваемых на eBay, Aliexpress и они относительно дешевы. Что я делаю, так это покупаю дешевый модуль, снимаю DS3231 с платы и использую его.
Управление часами
Для управления часами используется всего одна кнопка. Во время обычного отображения времени короткое нажатие на кнопку переключает отображение между ЧЧ: ММ и ММ: СС.
Чтобы настроить время и параметры отображения, нажмите и удерживайте кнопку, пока не отобразится [-CL].
В меню кнопка функционирует следующим образом:
— Нажатие и удерживание устанавливает / выбирает отображаемую опцию и переходит к следующей настройке.
— Короткие нажатия циклически переключает текущие значения регулировки.
Меню
[-CL] Настроить время[-OPt] Настроить параметры
[-End] Выход без внесения изменений
Настроить время [-CL]
[12:] или [12: P] установить часы:
00 — 23
1 — 12 A / 1 — 12 P
—
[: 00] установить минуты:
: 00 -: 59
—
[00] установить секунды:
00 — 59
—
сохранить время и вернуться к отображению часов
Настроить параметры [-OPt]
[12ч] установить формат отображения времени:
[12ч] — 12-часовой формат[24ч] — 24-часовой формат
—
[t 0] установить отображаемую температуру:
[t 0] — отображение температуры выключено[t 1] — 4 секунды каждые 10 секунд
[t 2] — 10 секунд каждую минуту
[t 3] — 10 секунд каждые две минуты
—
[t o C] установить формат отображения температуры:
[t o C] — Цельсия[t o F] — Фаренгейт
—
[br A] установить яркость дисплея:
[br A] — автояркость (устанавливается уровнем освещенности фоторезистора)[br 1] — тусклый
[br 2] — средний
[br 3] — яркий
—
сохранить параметры и вернуться к отображению часов
Каждый раз, когда включаются часы, они считывают сохраненные параметры из энергонезависимой памяти. Если они в порядке, на дисплее на короткое время отображается [Good].
Если обнаружатся недопустимые сохраненные параметры, контроллер покажет либо [Err1], либо [Err2]. Затем контроллер попытается сохранить параметры по умолчанию. Вы увидите [Err1] при первом включении после программирования микроконтроллера, после этого вы не должны видеть ошибку, если только не возникнет неисправность в памяти.
Когда формат отображения температуры установлен в градусах Фаренгейта, то температура может отображаться только до 127 oF. Если температура поднимается выше этого, то будет отображаться [hhh o ]
Температура берется из микросхемы RTC и обновляется каждые 64 секунды. Поэтому, даже если дисплей настроен на более частое отображение температуры, то часы будут показывать фактическую температуру только каждые 64 секунды.
Скачать файлы проекта (77,1 KiB, скачано: 237)
