Завораживающее неоновое свечение отчасти похожее на свечение электровакуумных ламп, похожий внешний вид. Все это дает ощущение прошлого на этапе освоения, познания и начала применения электричества, насколько можно представить по книгам, фильмам, иллюстрациям. Вот так завернул. Но обо всем по-порядку.
Назад в прошлое?
Ре́тро (также стиль ретро; ретро-стиль от лат. Retro «назад», «обращённый к прошлому», «ретроспективный») — достаточно абстрактный художественно-исторический термин, применяемый для описания различных категорий старинных вещей, имеющих некую культурную и/или материальную ценность, и, как правило, нечасто встречающихся в современной повседневной жизни с её нарочитой практичностью и стремлением к избавлению от «лишних» деталей. (Википедия).
Вот как то так. Но прогресс не стоял и не стоит на месте. Все миниатюризируется, унифицируется с одновременным увеличением функциональности. И тут на помощь приходят микроконтроллеры и прочие программируемые интегральные микросхемы (ИМС). Можно конечно использовать и более простые устройства для достижения большей аутентичности изготавливаемого изделия, но… эта совершенно другая тема для разговора.
Это все к тому, что не обязательно возвращаться к возможностям прошлого, а использовать доступное настоящее. Есть, конечно, и другие способы реализации, здесь же рассматривается конкретное решение поставленной задачи на микроконтроллере (МК) производства фирмы Atmel ATmega8.
Внешнее соответствие «призракам» прошлого полностью зависит от фантазии, взглядам, вкусам человека, изготавливающего сей девайс в ретро-стиле. Бесспорно, кому-то нравятся другие направления в оформлении, тогда вам и карты в руки.
А суть в чем?
Предлагаемые часы имеют следующий функционал:
- Индикация времени в формате ЧЧ:ММ:СС
- Возможность показа разделительных точек (для большей наглядности)
- Возможность показа даты в формате ДД:ММ:ГГ в начале каждого часа (~10 сек)
- Принудительный показ даты
- Возможность воспроизведения ежечасного сигнала
- Установка до 10-ти будильников на разное время в формате ЧЧ:ММ
- Повтор сигнала (если не был выключен) будильника через 5 минут с момента срабатывания
- Изменение эффекта переключения цифр (плавное переключение)
- Сохранение настроек и продолжение отсчета времени при отключении питания
- Через каждые 10 дней работы в 00:00:00 включается двухминутный режим антиотравление катодов
Небольшая справка: Газоразрядный индикатор — ионный прибор для отображения информации, использующий тлеющий разряд. По сравнению с единичным индикатором — неоновой лампой — обладает более широкими возможностями. Наиболее известными среди газоразрядных являются знаковые индикаторы типа «Nixie tube», каждый из которых состоит из десяти (или иного количества) тонких металлических электродов (катодов), каждый из которых соответствует одной цифре или знаку, при этом они включаются индивидуально. Электроды сложены так, что различные цифры появляются на разных глубинах, в отличие от плоского отображения, в котором все цифры находятся на одной плоскости по отношению к зрителю. Трубка наполнена инертным газом неоном (или другими смесями газов) с небольшим количеством ртути. Когда между анодом и катодом прикладывается электрический потенциал от 120 до 180 вольт постоянного тока, вблизи катода возникает свечение. (Википедия)
Исходя из этого описания следует, что нужно заставить индикаторы «зажигать» свои катоды в требуемой последовательности под управлением МК. Структурная схема будет состоять из следующих частей (см. рисунок):
Небольшое описание и назначение блоков.
Источник питания (ИП) — тут все просто. ИП предназначен для питания всех элементов схемы.Он должен включать как высоковольтный источник постоянного напряжения для питания устройства индикации (УИ), так и источник низкого напряжения для питания устройства управления и других элементов.
Устройство управления (УУ) — включает в себя сам МК и некоторые другие элементы, непосредственно участвующие в управлении ГРИ.
Устройство индикации (УИ) — можно разделить на сам индикатор и его высоковольтный драйвер анодного напряжения.
Часы реального времени (ЧРВ) — специализированная ИМС, которая ведет отсчет времени, также включает в себя календарь с указанием номера дня недели.
Кто есть кто
Теперь рассмотрим более подробно структуру данного устройства.
В данной конструкции применены газоразрядные индикаторы ИН-12 и индексом «А» или «Б» (отличие ИН-12Б в том что присутствует еще один катод в виде запятой, в схеме он не используется)
Технические характеристики:
Для питания схемы можно использовать несколько вариантов ИП. Это, например, и классический трансформаторный, или импульсный блок питания, или блок питания с двойным преобразованием. При такой конструкции часов (с ГРИ) наиболее часто применяется последний вариант. Для получения высокого постоянного напряжения, долго не думая, возьмем достаточно распространенную схему с использованием специализированной ИМС DC-DC преобразователя МС34063.
Принцип работы повышающего (step-up) преобразователя на данной ИМС подробно описан в интернете [1]. Основное отличие: для получения высокого напряжения используется внешний ключ.
Схема довольная простая и не содержит дефицитных деталей. Диод можно использовать любой быстродействующий с напряжением от 300 В и током от 0,5 А. Высоковольтный силовой ключ можно заменить на схожий по параметрам транзистор, так же возможно использовать менее мощный, но дополнительно потребуется установить его на теплоотвод. Дроссель можно использовать готовый на ток не мене 0,5 А или намотать самому на ферритовом сердечнике.
Для питания самих часов используется любой сетевой блок питания (AC-DC адаптер) с постоянным выходным напряжением 12 В и током не менее 500 мА (значение взято с запасом, чтобы исключить нагрев адаптера). Часы работают и от 9 В (проверено, но только на предмет включения).
В качестве драйверов для управления анодами ГРИ используется обычная схема верхнего ключа из состоящая из двух транзисторов.
В данном варианте применены отечественные высоковольтные транзисторы. Возможно использование импортных высоковольтных транзисторов типа MPSA42 и MPSA92, BF422 и BF423 и других. Но расположение выводов у них отличается от приведенных в схеме, и прямая замена без изменения трассировки печатной платы не предоставляется возможным. Резистор R7 ограничивает ток базы транзистора Q1, чтобы предотвратить выход из строя порта микроконтроллера. При необходимости его значение можно уменьшить. R10 ограничивает ток анода, его значение можно откорректировать если будет наблюдаться недостаточная или избыточная яркость свечения символов соответственно уменьшив или увеличив сопротивление.
Коммутация катодов осуществляется с помощью высоковольтного двоично-десятичного дешифратора типа К155ИД1. На схеме изображен импортный аналог SN74141N. Расположение выводов у них совпадает, поэтому замена производиться без каких либо изменений.
Часы реального времени представляют собой рапространенную спецаилизированную ИМС DS1307, так же содержащую календарь и достаточно хорошо описанную и разобранную «по косточкам» в глобальной сети [2]. При применении обычного часового кварца с частотой 32,768 кГц обеспечивается нормальная точность хода (точнее просто не было необходимости).
«Мозгом», управляющим выводом информации и обработкой вводимых и выводимых данных, является 8-ми разрядный микроконтроллер ATmega8.
Все в кучу
Полная схема устройства изображена на рисунке:
К вышеописанному можно добавить, что в схеме присутствует источник питания на 5 В на интегральном стабилизаторе типа LM7805, зуммер (пьезоизлучатель со встроенным генератором) с напряжением питания 5 В, предусмотрена возможность установки 6-ти кнопок, из них для обеспечения функционала используется только 4. Так же предусмотрена установка разъема для внутрисхемного программирования МК (ISP Connector). Для улучшения наглядности и читаемости показаний времени/даты используются дополнительные неоновые индикаторы типа ИНС-1 (возможно использование других типов с подбором резистора R38 для установки требуемой яркости свечения) в качестве разделительных точек.
Режем, рубим и… паяем
Устройство состоит из двух печатных плат размером 180х45 мм изготовленных из одностороннего фольгированного стеклотекстолита толщиной 1,5 мм по лазерно-утюжной технологии. Все используемые детали выводные, для монтажа в отверстия. При установки плат друг над другом, общая высота нижней платы с установленными деталями не превышает 10 мм (ограничена примененными резьбовыми стойками), все выступающие элементы устанавливаются горизонтально. Соединение плат осуществляется разъемами типа PBS и PLS. Помимо этого есть возможность углового соединения плат между собой с использование угловых разъемов того же типа. Для фиксации можно применить металлические уголки, прикручиваемые к крепежным отверстиям. Кнопки — тактовые, угловые, разъем питания — для установки на корпус.
Важно, после монтажа нежно проверить наличие между собой контакта всех участков «земляного» полигона, соединенных с выводами элементов, и, при необходимости, пропаять проблемные места. Обратите внимание, что с не припаянными кнопками (крепежные элементы используются как перемычки) и перемычкой над МК, некоторые участки иметь контакта не будут!.
Платы в собранном виде
Фото 1. Вид со стороны пайки
Фото 2. Вид со стороны деталей
Фото 3. «Бутерброд»
Фото 4. Общий вид
Индикаторы впаяны непосредственно в плату, что затрудняет последующий демонтаж, если возникнет такая необходимость. Этого можно избежать путем применения каких либо разъемов или частей от них, а так же панелей ПЛ31А-П (пластмасса) или ПЛ31А-К (керамика) для цоколя РШ-31А.
Вдох-выдох, подключай
Платы собраны, вымыты от остатков флюса, проверена правильность монтажа, отсутствие замыканий, можно включать. Если под микроконтроллер установлена панелька, то первое включение можно (и желательно, если в чем то не уверены) производить без него, и без платы индикации.
Внимание!!! Схема содержит источник высокого напряжения. Для предотвращения случая поражения электрическим током необходимо соблюдать требования техники безопасности.
После включения нужно убедиться в правильной работе источника питания. Для этого замеряем напряжение на конденсаторе C14, и подстроечным резистором RV1 устанавливаем значение равное 170 В. Также нужно проконтролировать наличие питания с напряжением 5 В.
Далее обесточиваем схему и вставляем (запаиваем) МК. Контроллер можно запрограммировать отдельно имеющимся программатором, или прошить прямо на плате (для этого предусмотрено место под разъем для внутрисхемного программирования).
Фьюзы для прошивки: cksel=F, sut=3, boden=0, bodlevel=0 (для mega8L bodlevel=1). Остальные по умолчанию. Также необходимо запрограммировать энергонезависимую память (EEPROM)
Скриншот фьюзов для CodeVisionAVR:
После включения часы будут стоять, чтобы они пошли необходимо выставить время.
Тыкая кнопочки
Управление часами осуществляется 4-мя кнопками. При каждом нажатии издается звуковой сигнал
Кнопки (слева направо) | Действие | Действие в режиме показа времени |
---|---|---|
1 (MODE) | Выбор режима | — |
2 (NEXT) | Следующий параметр | — |
3 (SET) | Установка значения | Показать дату |
4 (SAVE) | Сохранение значений | Выключение будильника |
Для настройки используется 4-е режима (без режима «по умолчанию»), переключение которых осуществляется циклически (0 -> 1 -> 2 -> 3 -> 4 -> 0, «0» используется для привязки к программе ).
Режим | Назначение |
---|---|
0 | Показ времени (режим «по умолчанию») |
1 | Настройка времени |
2 | Настройка даты |
3 | Настройка будильников |
4 | Дополнительные настройки |
Если примерно в течении 10-и секунд не была нажата ни одна кнопка, часы переходят в режим «по умолчанию». При выборе кнопкой «NEXT» нужного параметра для его установки, соответствующее значение будет мигать, и при его изменении кнопкой «SET» загорятся разделительные точки. Это означает , что текущее значение хотя бы одного параметра изменено и, если необходимо, его нужно сохранить нажав кнопку «SAVE», разделительные точки при этом погаснут. В случае выставления недопустимых значений времени или даты и при попытке их сохранения кнопкой «SAVE», запись не будет произведена, о чем будут свидетельствовать горящие точки.
Настройка времени: выставляется требуемое значение, при установки секунд (как десятков, так и единиц) происходит их сброс в «0». Далее в нужный момент введенные значения сохраняются.
Настройка даты: тут просто выставляется требуемое значение и сохраняется.
Настройка будильника: выставляются часы и минуты, при изменении значения в позиции для десятков секунд происходит последовательный перебор будильников (всего может быть настроено до 10-ти будильников), в позиции единиц секунд будильник активируется при установки «1», и, соответственно, деактивируется установкой «0» (при прошивке все будильники установлены в 00:00 и выключены).
Дополнительные настройки: здесь каждый параметр отвечает за небольшое изменение функциональности. В таблице приведены значения дополнительных настроек.
Параметр (по порядку) | Значения | Функциональность |
---|---|---|
1 | 0 / 1 | Выбор зуммера или динамика соответственно |
2 | 0 / 1 (выкл/вкл) | Включение эффекта плавной смены цифр |
3 | 0 / 1 (выкл/вкл) | Показ даты в начале каждого часа (~ 10 сек) |
4 | 0 / 1 / 2 | Разделительные точки (потушены / зажжены / мигают) |
5 | 0 / 1 (выкл/вкл) | Звуковой сигнал каждый час |
6 | 0 / 1 | Номер мелодии для будильника («0» для зуммера) |
(при прошивке все значения установлены в «0»). Мелодия для будильника сделана одна «В траве сидел кузнечик», так сказать, на пробу (за то что понравится не ручаюсь 🙂 ). При использовании зуммера не рекомендуется ставить мелодию, так как будет каша из звуков «режущих» ухо.
Прошивка написана на языки Си в среде CodeVisionAVR 2.05. Исходный код (с подробными, я так думаю, комментариями) прилагается. Проект печатной платы и схема выполнены в Altium Designer 10. Для не владеющих этим инструментом все переведено в PDF.
Если будет время, возможно, что-нибудь будет добавляться в прошивку, но для повседневного использования такого функционала по-моему достаточно. Или каждый может поменять и добавить то, что ему нужно.
Небольшое видео работы часов:
… и еще пара картинок
Использованные материалы:
1. Повышающий DC-DC преобразователь
2. DS1307
3. Огромнейшая тема по часам на ГРИ
Update
Обновленная прошивка от 7.05.2019.
- Добавлены два эффекта отображения — плавный переход из одной цифры в другую, смена цифры перебором (настраивается в пункте вкл/выкл эффекта плавной смены).
- Добавлен аналоговый датчик температуры типа LM35 (можно использовать похожего типа с характеристикой 10 мВ/°С). Выход датчика подключается на 26-ю ногу МК. На печатной плате изначально заложено место по разъем. Показания температуры выводится при нажатии на кнопку 2(NEXT) в режиме показа времени.
- Добавлен ночной режим — пониженная яркость с 22:00 до 6:00. (Для тех, кому не хватало яркости в обычном режиме, анодные резисторы индикаторов можно уменьшить до 1-2,2 кОм).
- Из-за некоторых изменений и оптимизаций в прошивке, корректная работа будильника (если им вообще кто-то пользуется) пока не проверена. По задумке должно работать так: при настройке будильника, в позиции единиц секунд — 0 — выкл; 1,2,3,4,5,6,7 — по дням; 8 — будни; 9 — все дни.
Архив (Clock_firmware_7.05.2019.zip) с прошивкой (исходников не будет) прикреплен ниже.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | Часы реального времени (RTC) | DS1307 | 1 | |||
U2 | Кодер, декодер | SN74141 | 1 | SN74141N или К155ИД1 | ||
U3 | МК AVR 8-бит | ATmega8A | 1 | ATmega8A-PU | ||
U4 | Линейный регулятор | L7805AB | 1 | |||
U5 | DC/DC импульсный конвертер | MC34063A | 1 | |||
Q1, Q3, Q6, Q8, Q10, Q12, Q15 | Биполярный транзистор | КТ940А | 7 | MPSA42, MPSA92, BF422 BF423 | ||
Q2, Q4, Q7, Q9, Q11, Q13, Q16 | Биполярный транзистор | КТ3157А | 7 | |||
Q5 | Биполярный транзистор | 2N5551 | 1 | |||
Q14 | MOSFET-транзистор | IRF740 | 1 | |||
D1-D6 | Выпрямительный диод | 1N4148 | 6 | |||
D7 | Выпрямительный диод | 1N4937 | 1 | |||
C1 | Конденсатор | 0.047 мкФ | 1 | |||
C2, C3, C5, C6, C8, C10 | Конденсатор | 0.1 мкФ | 6 | |||
С4 | Электролитический конденсатор | 100 мкФ 25В | 1 | |||
C9 | Электролитический конденсатор | 10 мкФ 25В | 1 | |||
C11 | Электролитический конденсатор | 470 мкФ 25В | 1 | |||
C12 | Конденсатор | 100 пФ | 1 | |||
C13 | Конденсатор | 470 пФ | 1 | |||
C14 | Электролитический конденсатор | 4.7 мкФ 250В | 1 | |||
C15, C16 | Конденсатор | 22 пФ | 2 | |||
R2 | Резистор | 100 Ом | 1 | |||
R3, R19, R28 | Резистор | 10 кОм | 3 | |||
R4 | Резистор | 3 кОм | 1 | |||
R5, R6, R10, R14, R20, R24, R29, R33 | Резистор | 4.7 кОм | 8 | |||
R7, R11, R15, R21, R25, R30, R35 | Резистор | 33 кОм | 7 | |||
R8, R12, R16, R22, R26, R31, R36 | Резистор | 100 кОм | 7 | |||
R9, R13, R17, R23, R27, R32, R37 | Резистор | 470 кОм | 7 | |||
R34 | Резистор | 330 Ом | 1 | |||
R38 | Резистор | 150 кОм | 1 | |||
R43 | Резистор | 560 кОм | 1 | |||
R44-R47 | Резистор | 0 | 4 | |||
R48 | Резистор | 3.3 кОм | 1 | |||
RV1 | Подстроечный резистор | 2 кОм | 1 | |||
Y1 | Кварц | 32768 Гц | 1 | |||
Y2 | Кварц | 7.3728 МГц | 1 | |||
LS1 | Пьезоизлучатель | 5 вольт | 1 | |||
V1-V6 | Индикатор газоразрядный | ИН-12 | 6 | ИН12-А или ИН-12Б | ||
DS1-DS4 | Неоновая лампа | ИНС-1 | 4 | |||
L2 | Дроссель | 330 мкГн | 1 | Не менее 0.5А | ||
S1-S6 | Кнопка | замыкающая | 1 | |||
P1 | Разъём | 2 контакта | 1 | разъём питания | ||
P2 | Разъём | PLS-7 | 1 | соединение плат | ||
P3 | Разъём | PLS-10 | 1 | соединение плат | ||
P4 | Разъём | PBS-7 | 1 | соединение плат | ||
P5 | Разъём | PBS-10 | 1 | соединение плат | ||