Схема часов на сегментных индикаторах. Девайсы. Часы с большими цифрами. Часы на Atmega8 и семисегментном индикаторе

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

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

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

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


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

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

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

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

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

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

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







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

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




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

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


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


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

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




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

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

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


Запуск

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

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

Характеристики часов

  • формат отображения времени: часы, минуты;
  • будильник с функцией повтора;
  • простое управление с помощью 2 кнопок;
  • поддержка работы от батарейки;
  • напряжение питания: 7…12В / 0,2 A;
  • размеры двух печатных плат: 60×21 мм, 58×44 мм.

Принципиальная схема часов показана на рисунке ниже. Схема часов должна быть запитана постоянным напряжением в диапазоне 7…12В. Это может быть любой с нагрузкой по току не менее 200 мА.

К разъему CON5 платы можно подключить зуммер с генератором, который будет выступать в качестве звукового сигнала будильника. К клеммам SA1 и SA2 печатной платы подключаются кнопки, которые служат для ввода настроек и обслуживания часов.

Настройка времени и будильника

При нажатии кнопки SA1 попадаем в меню часов «Set1», где у нас есть возможность установки текущего времени, а еще одно короткое нажатие кнопки SA1 переводит нас в меню установки времени будильника «Set2».

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

Очередное нажатие SA1 вызовет мигание второй цифры и с помощью SA2 можно установить единицы часов. Последующие два нажатия SA1 позволят установить десятки минут и единицы минут. Во время установки часов и минут устанавливается всегда только одна цифра. Пятое нажатие SA1 возвращает часы к нормальной работе. Также продолжительное время отсутствия нажатия кнопок завершает процедуры установки.

Во время работы часов длительное нажатие кнопки SA2 производит включение/выключение будильника. В момент активации будильника, на несколько секунд отображается время его запуска. Состояние будильника сигнализирует точка, размещена в четвертом разряде. Если будильник активен, этот индикатор горит.

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

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

Работа часов протестирована в Proteus:

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

(34,7 Kb, скачано: 1 652)


Протые часики с секундами на 7ми сегментных индикаторах с календарём и термометром, + 6 эффектов индикации.

Мой НОВОГОДНИЙ ПОДАРОК.
ВСЕХ С НОВЫМ 2014м ГОДОМ.

Это простеникие часики - термометр на семисегментных светодиодных матрицах с общим анодом.

Что они могут:

Дата: (Дата - Месяц - День недели)

Температура дома:

А это датчик на улицу выкинул:

6 режимов индикации:

Автопоказ даты и температуры каждые 35 секунд.

Описание кнопок:
Кнопка "-" в режиме установки часов и кнопка перебора режимов индикации в рабочем режиме часов.
Кнопка "ОК" - для входа в режим установки часов.
Кнопка "+" в режиме установки часов и кнопка показания даты и температуры в рабочем режиме часов.

Перебор режимов индикации:
Жмём кнопку "-" - перебор режимов индикации.

Появится:

Первый режим индикации - цифры плавно гаснут и плавно появляются новые.

Жмём ещё раз
Появится:

Второй режим индикации - часики работают как обычно.

И ещё раз
Появится:

Третий режим индикации - цифры при смене меняются перебором.

Ещё раз нажимаем
Появится:

Четвёртый режим индикации - цифры при смене накладываются друг на друга.

Ещё одно нажатие
Появится:

Пятый автоматический режим индикации - режимы индикации сами меняются каждый час.

И ещё одно нажатие
Появится:

Шестой автоматический режим индикации - режимы индикации сами меняются каждые сутки в 00:00.

Включение / выключение автоматического показа даты и температуры каждые 35 секунд.
Жмём и держим в течении 3 секунд кнопку "+" - показ даты/температуры.
Если появится:

Автопоказ выключен.

Автопоказ включен.

Установка времени:
Для установки времени жмём и держим кнопку "ОК" в течении 3х секунд во время показа времени.
Часы переходят в режим установки времени и начинают мигать часы.
Кнопками "-" и "+" устанавливаем час и нажимаем кнопку "ОК" и переходим к установке минут.
И так далее в последовательности час > минуты > число > месяц > день недели.
При долгом удержании кнопок "-" или "+" цифры автоматически сами убывают или прибавляются.

Часы собраны на минимуме микросхем:
PIC16F628 - контроллер часов.
DS1307 - сами часики.
BU2090 - Дешифратор катодов.
DS18B20 - термодатчик.
DS32KHz - микросхема генератора для точности хода.
Если точность не нужна и вы просто подберёте точный кварц на 32.768
то DS32KHz можно и не ставить.

Схема стандартная.

Схема стандартная №2.

Она нужна если вы будете использовать многосветодиодные индикаторы.
Типа таких:
(фотка)
Для которых 5ти вольт анодного напряжения маловато будет.
Для переключения контроллера на эту схему нажимаем и держим кнопку "-" и включаем часы.
Для обратного перевода делаем тоже самое.
Это команда инвертирует выходные импульсы с контроллера для управления анодными ключами.

Регулируя питание в такой схеме можно менять яркость часиков.
Схемка регулятора яркости:

Настройка катодов, то есть назначение сегментов.
В часах можно использовать любые индикаторы.
Для платы что входит в проект я использовал три светодиодные сборки от модулей стиральных машин DE07-00011A.

Прошивка контроллера рассчитана на использование моей платы для моих индикаторов,
если будете использовать другие или рисовать свою плату
нужно после сборки платы и запуска часов переназначить подключение сегментов к BU2090.
Т.к. их порядок нарушается - например вместо 0ля или 7ка будет белеберда.

Исключение только для точки, если она есть в индикаторе.
Точки надо подключать только к 15му выводу BU2090.

Назначение сегментов:

Сам процесс:
Жмём и держим кнопку "+" и включаем часы - появится 8ка - показывая что все сегменты подключены.

После отпускания кнопки в 1м разряде загорается один из сегментов.
Начинается перебор сегментов.

Надо назначить сегменты от A до G - согласно рисунку ниже:

При зажигании нужных сегментов нажимаем кнопку "+"
и так последовательно от появления сегмента A до G - согласно рисунку.

Затем загорается 2й разряд - это разрешение мигания секундных индикаторов.
На тот случай если вы секундные семисегментники расположите по центру между часами и минутами вместо секундных точек.
Тут так же
Если нажать кнопку "+" на 0 то мигание отключается.

Если на 1 то включается.

После чего часы переходят в рабочий режим.

Платы нарисованы с помощью программы Sprint Layout 5.0
На плате "LED clk" кнопки расположены сверху.
На плате "LED clk_v2" - сбоку.
Плата "LED clk_v3" для 2го варианта схемы - для больших индикаторов.

Сдесь фотка верхней части платы "LED clk_v2" с подписанными элементами для большей наглядности:

А тут со стороны монтажа:

Сдесь фотка верхней части платы "LED clk_v3" с подписанными элементами для большей наглядности:

Тут со стороны монтажа:

Прошивка контроллера Clck_6x14_v7.hex показывает день недели буквами - пН, оР, сР, ЧР, пА, сb, ос.

Почему день недели, а не год? - (Вы меня можете спросить)
Да потому что все и так знают какой сейчас год, а вот с днём недели иногда проблемы возникают.

Прошивка Clck_6x14_v7с.hex имеет коррекцию времени.
В период установки времени после установки дня недели
загораются часы и секунды.

В часах кнопками "-" и "+" устанавливаем время в секундах
на сколько нужно подводить время - диапазон от -4 до +4 секунд.
Затем нажав кнопку "OK" переходим к установке дней.
Если поставить 00, то коррекция будет происходить каждый день в 03:00.
Если 01, то через день.
Если 02, то через два дня.
И т.д. до 31го дня - то есть через 31 день.
Коррекция потребовала места в контроллере поэтому пришлось пожертвовать назначением сегментов.
Но их можно назначить сначала зашив в контроллер прошивку Clck_6x14_v7.hex,
назначить на ней сегменты и мигание секунд,
а потом не трогая EEPROM контроллера зашить прошивку с коррекцией.
Все настройки сохранятся.

Прошивка Clck_6x14_v7сb.hex имеет ещё и будильник помимо коррекции времени.
Чтобы поставить будильник жмём и держим кнопку "OK" в течении 3х секунд.
Когда на дисплее появится время ранее установленного будильника, а секундах появится b1 отпускаем кнопку.

Если кнопку продолжать держать, то мы войдём в установку времени.
Выставляем час и миеуты.
Если поставить 00:00 то будильник отключается.

Сработавший будильник отключается только кнопкой "OK".
Это сделано для того чтобы вы его не смогли пропустить, даже если увидите часики через пару - тройку часов.
Во время срабатывания на дисплее показывается его время, а вмсто секунд - b1.

Так же в момент срабатывания будильника включаются на постоянное свечение светодиоды LD1 - LD3 и мигают LD4 - LD6.

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

Эта статья о простых часах на 7-ми сегментном индикаторе. По большому счету это статья воспоминание, так сказать, чтоб не забыть. Забегая далеко на перед, дабы зря не тратить время ардуинолюбов, сообщу, что сердцем часов является микроконтроллер PIC16F873A, а лицом 7-ми сегментный 4-х разрядный индикатор с высотой символа 30мм.

Почему эта статья воспоминание, а по тому, что часы были сделаны порядка 1 года назад, а начало работ было начато и того давнее. Сделаны они были для уважаемого . Но эксплуатироваться они начали совсем недавно и практически сразу нашелся баг, который их вешал. Поэтому они буквально на денек заехали ко мне на перепрошивку.

И вот. Сердцем часов служит микроконтроллер PIC16F873A фирмы «Микрочип». Я начинал программировать на этих контроллерах. Но особо великих успехов не добился, научился писать только на picbasic pro, да и с прерываниями не срослось. Однако, что то все-таки получалось. PIC здесь задействован в роли контроллера для вывода информации, отсчет времени ведет микросхема DS1307 — часы реального времени. Некоторые засмеют, что мол, и одного пика хватит, но это не для моего случая. Информация выводится на довольно большой 7-ми сегментный 4-х разрядный индикатор с общим катодом. (все даташиты будут по ссылке в конце статьи). Реализовано изменение яркости свечения индикатора в зависимости от освещенности. Ну и как же без бесполезной функции будильника, он тут есть. Неверно сразу покажу фотку изделия, а потом продолжу:

Сверху натянута пленка, вырезанная из антистатического пакета, так как белые пустые сегменты ну прям в глаза въедаются. А сверху видно глазок фоторезистора. Провода слева это датакабель программатора. Ну а теперь глянем схему (она кликабельная):

И прям сразу печатную плату:

В конструкции все соответствует схеме, кроме токоограничивающих резисторов индикатора, у меня установлены номиналом 240 Ом и smd транзисторы выпаянные из материнки. Кварц для DS1307 тоже выпаян из материнки вместе с держателем батарейки. Сейчас я бы наверно не стал использовать именно DS1307 как счетчик времени, так как очень она капризна к разводке земли и сильно подвержена температурному дрейфу. Но уже что сделано, то сделано. Плата односторонняя с двухсторонним монтажом. Габарит платы вписывается в габарит индикатора. И последняя «подгнившая изюминка» этого проекта это стабилизатор питания — MCP1701AT-5002I фирмы микрочип. У него есть как сладкая сторона, так и горькая. Классная сторона это падение напряжения на нем порядка 0,3 — 0,6 В (за точной цифрой надо лезть в даташит), а это значит, что можно использовать источник питания начиная от usb выхода ПК и до старых зарядок для мобил. Сторона по хуже это то, что входное напряжение должно біть не более 10 В, блоки питания от роутеров уже не канают. Управляются часы всего двумя клавишами. Ну и фото платы:



Вариант реализации больших светодиодных часов

Речь пойдет о светодиодных часах, собранных на больших семисегментных индикаторах 70Х110 мм с общим катодом, имеющих по 6 светодиодов в сегменте и, соответственно, требующих питания часов чуть более 12 вольт. Максимальный ток потребления сегмента — 30 мА, но в нашей конструкции сегмент потребляет около 13 мА, чего более чем достаточно для нормальной видимости. Также часы имеют термометр на датчике DS18B20 и коррекцию хода. Контроллер - Atmega8. При отключении питания часы работают от трех пальчиковых батареек, при этом индикация отключается.

Была взята готовая прошивка и схема уважаемого Александра, с исходной статьей можно ознакомиться .

Схема переделана под данные индикаторы, то есть были добавлены ключи на биполярных транзисторах в анодных цепях и микросхема ULN2003 в катодных.

Резисторы R43-R49 и R50-R53 в реальности не нужны, они поставлены здесь чтобы Протеус адекватно запускал схему. Схема могла быть и проще если применить полевые транзисторы и индикаторы с общим анодом.

В конструкции применены транзисторы BC847 и BC857. Резисторы в анодных цепях по 20 Ом, и подбирать их не нужно поскольку достаточно подобрать напряжение питания, которое идет с LM317. В моем случае оно равно 12,7 вольт. D2- точка, в индикаторах это обычно один светодиод. Её нужно подключать только у одного индикатора.

Настройка происходит нажатием кнопки SET, по кругу.

1. Режим отображения минут и секунд. Если в этом режиме одновременно нажать на кнопку PLUS и MINUS , то произойдет обнуление секунд.
2. Установка минут текущего времени.
3. Установка часов текущего времени.
4. Величина ежесуточной коррекции точности хода часов. Символ c и значение коррекции. Пределы установки -25÷25 сек. Выбранная величина будет ежесуточно в 0 часов 0 минут и 30 секунд прибавлена/вычтена из текущего времени.
5. Символ t. Настройка продолжительности отображения часов.
6. Символ o. установка времени индикации температуры с внутреннего датчика.
7. Символ P. установка времени индикации рекламной заставки.
Пределы установки для времени отображения 0÷60 сек. Если установлен 0, данный параметр на индикатор не выводится. Если все параметры установить в 0 - на индикаторе будут часы.

Во всех режимах удержанием кнопок PLUS/MINUS производится ускоренная установка.

Если производились изменения настроек, через 10 секунд от последнего изменения новые значения запишутся в энергонезависимую память (EEPROM) и будут считаны оттуда при повторном включении питания. Индикатор перейдет в основной режим времени.
Новые настройки вступают в силу по ходу установки.

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

Фьюзы микроконтроллера:

Теперь непосредственно о реализации схемы. Сначала была собрана плата.


Соединение индикаторов между собой производилось проводом МГТФ, а с платой — через разъемы.
Индикаторы скрепляются с помощью вкрученных в них полосок стеклотекстолита


Потом я подпаял датчик к плате и запустил схему.


В качестве корпуса был куплен электрощиток на 18 модулей, с прозрачной крышкой.


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


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


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

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




Top