Часы на ГРИ и Arduino v2 [18.03.20]

ОБНОВЛЕНИЯ


27.11.2019 nixieClock_2_v2.0: добавлены эффекты, поправлены баги
27.11.2019 nixieClock_2_v2.1: исправлен баг =)
30.11.2019 nixieClock_2_v2.2: сброс секунд при установке времени с кнопок
02.12.2019 nixieClock_2_v2.3: Добавлены расширенные настройки яркости и исправлены зависания при нулевых значениях некоторых настроек
02.12.2019 nixieClock_2_v2.4: Ещё исправления ошибок при нулевых настройках
17.03.2020 nixieClock_2_v2.5: Демонстрация эффекта при смене с кнопок

ОПИСАНИЕ


 

Решил я сделать максимально простой и доступный проект часов на газоразрядных индикаторах и Arduino! Односторонняя плата, выводные компоненты, никакой жести!

Платы:

  • Габариты платы меньше 100х100мм, то есть заказать 10 таких плат у китайцев будет стоить $2 без учёта доставки
  • Плата односторонняя, её без проблем можно сделать классическим ЛУТом!
  • Все компоненты – выводные, припаяет даже новичок
  • Т.е. плата народная: можно сделать её бабкиным утюгом и распаять горячим гвоздём!
  • Количество компонентов сведено к минимуму!
  • На данный момент в проекте есть платы под индикаторы ИН-12 и ИН-14, возможно будут сделаны и другие
  • Система состоит из двух плат: нижней (вся управляющая электроника) и верхней (лампы и светодиоды подсветки)
  • Нижних плат два варианта: обычная (4 оптопары, точка – светодиод) и с дополнительной оптопарой под неоновую точку (5 оптопар, точка – неонка)
  • У плат ИН-14ИН-12ИН-12_перевертыш нижняя часть одинаковая! Части плат взаимозаменяемы. Нижняя плата отличается только у ИН-14_неон

Хардверные фишки:

  • Сердце платы – полноразмерная Arduino NANO, это означает простую сборку и прошивку
  • Питание всей схемы – 5 Вольт
  • Генератор высокого напряжения раскачивается ШИМ каналом Arduino
  • Напряжение генератора подстраивается резистором с крутилкой
  • Время задаёт RTC DS3231
  • 3 кнопки для настройки времени и будильника
  • Пищалка для будильника
  • Подсветка ламп индикаторов
  • Проект основан на плате Железнякова Андрея. Спасибо! Ссылка на проект: https://goo.gl/xTVQWP

Софтверные фишки:

  • “Перебор” цифр, не дающий индикаторам окисляться
  • Плавное изменение яркости точки и подсветки ламп
  • Настройка яркости цифр, “точки” и подсветки ламп
  • Два режима яркости в зависимости от времени суток
  • 6 режимов переключения индикаторов
  • 3 режима подсветки ламп
  • Будильника пока что нет

ЭФФЕКТЫ


Плавный переход

Перебор цифр

Перебор катодов

Случайный глюк

ВИДЕО


КОМПОНЕНТЫ


Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей. Также проект можно попробовать собрать из компонентов моего набора GyverKIT.

ПЛАТЫ


Проект

Общая страница проекта на EasyEda, с неё есть ссылки на все платы проекта

ИН-14 NEON точка

ИН-12 перевёртыш

Чертёж плат v2.0

blank
  • 2.0 – первоначальная версия (такая есть только у меня)
  • 2.1 – убран DS18b20, куча мелких исправлений
  • 2.2 – добавления:
    • Добавлена поддержка микро-версии DS3231
    • Добавлен конденсатор по питанию платы (необязательный)
    • Добавлен конденсатор по питанию RTC (необязательный)
    • Добавлен шёлк линии отлома

Скачав gerber-файлы, вы можете заказать изготовление платы у китайцев на сервисе https://jlcpcb.com/, я получил платы через 2 недели после заказа.

  • Создать заказ и загрузить гербер файл (архив .zip) на сайт JLCPCB
  • Настроить (я менял только количество плат). Цвет платы теперь выбирается бесплатно!
  • Раньше получалось попросить китайцев сделать надрез между платами для удобного разделения. Теперь у них изменились правила, и бесплатно разделить две разные платы они не могут. Я добавил линию разреза на слой шелкографии для каждой платы, разделить платы нужно будет вручную (читайте ниже). Никаких комментариев к заказу оставлять не нужно, V-cut теперь платная функция.
  • Выбрать тип доставки и оплаты (ePacket и PayPal – мой выбор)

Открыв плату в EasyEda, вы можете экспортировать её как картинку (желательно PDF, иначе страдает качество) для дальнейшего изготовления ЛУТом или импорта в Altium (скрин 1). Параметры экспорта (скрин 2) позволяют настроить вывод нужного слоя и его зеркальность по горизонтали. В настройках печати обязательно ставить реальный размер (скрин 3). На 4 и 5 скринах показано, как убрать металлизацию нижней платы. Если вам это нужно.

ПРОШИВКА


Прошивки находятся в скачанном архиве в папке firmware:

  • lamp_test – прошивка для теста ламп, перебирает цифры на лампах по очереди (сначала 0–9 на первой, потом на второй…), пауза перебора задаётся в самом начале скетча
  • nixieClock_2_test_v1.1 – “минимальная” прошивка чисто для работы с лампами, на её основе можно написать свои часы. В сыром виде прошивка перебирает по очереди цифры на всех лампах одновременно
  • nixieClock_2_v2.5 – основная прошивка часов, со всеми эффектами, временем и прочим прочим

В самом начале кода находятся настройки. Самая важная для вас – выбор типа платы, по умолчанию выбрана плата под ИН-12. Для ИН-14 нужно сменить цифру с нуля на на 2, получится BOARD_TYPE 2

#define BOARD_TYPE 0
// тип платы часов:
// 0 - IN-12 turned (индикаторы стоят правильно)
// 1 - IN-12 (индикаторы перевёрнуты)
// 2 - IN-14 (обычная и neon dot)
// 3 другие индикаторы

СБОРКА


Последовательность сборки и настройки. Подробности по каждому пункту читай ниже.

  • Полностью собрать нижнюю плату (можно не паять DS3231).
  • Отмыть флюс! Зубной щёткой и спиртом/калошей, или на худой конец горячей водой.
  • Выставить крутилку напряжения (в самом верху на левой половине платы) в среднее положение
  • Загрузить прошивку lamp_test, выбрав тип платы (читай код в самом начале)
  • Должен начать работать высоковольтный генератор. Аккуратно пальцы, за низ платы не хватаем
  • Измеряем напряжение на конденсаторе в верхнем левом углу платы (мультиметр ставить в режим DC, напряжение 50-300 Вольт). Крутилкой выставляем напряжение в районе 180-200 вольт
  • (Опционально) на данном этапе можно проверить лампы, подключив анод (белая нога) через резистор 10 кОм на + конденсатора, и любую другую ногу на – конденсатора. Перебирая ноги (минусовым проводом) можно проверить все цифры индикатора. Если цифра горит не полностью, можно повысить напряжение и “прожечь” катод, или просто подождать. Лампы старые, могут начать нормально работать не сразу.
  • Далее можно смело паять лампы на верхнюю плату.
  • Обязательно отмыть флюс!
  • При включенном питании верхнюю и нижнюю платы не соединять!
  • На прошивке lamp_test будут последовательно перебираться цифры на лампах на максимальной яркости, в порт будет выводиться текущая цифра. Снова берём отвёртку и подстраиваем генератор на 180-200 Вольт (предыдущая настройка была нужна для первого пуска ламп, чтобы ничего не сгорело. При подключении ламп напряжение просядет, и его нужно будет выкрутить обратно).
  • Есть смысл оставить часы поработать на этой прошивке пару часов, чтобы лампы пришли в себя, т.к. каждый индикатор перебирает все цифры на максимальной яркости без динамической индикации.
  • Если всё нормально – прошиваем актуальную прошивку часов nixieClock_2_v2.* и наслаждаемся!
  • Что касается компонентов: индуктивность катушки зависит от частоты. Частота у нас фиксированная, так что будьте добры купить катушку на 220 мкГн с током насыщения не менее 240 мА, так как напряжение высоковольтной линии сильно проседает под нагрузкой. Индуктивность по ссылке вывозит нормально, крупнее – ещё лучше. Меньше – не ставьте, будет 140 Вольт и блэдные лампы. Диод быстрый (импульсный), в принципе любой этого класса. Резисторы любые по мощности и точности, я ставил 1/4 Вт самые обычные. Оптопары нужны высоковольтные! Обычные не подойдут. Если приспичило выпаять индикатор, то вам поможет паяльный фен. Также можно попытаться убрать припой с ног при помощи медной оплётки или паяльного отсоса. Фокус с иглой от шприца скорее всего не прокатит, диаметр отверстий под ноги лампы маловат.
  • Если вы заказывали плату на JLCPCB без прорезания V образной фрезой, разделить плату нужно будет вручную. Можно распилить ножовкой: будет лететь стеклопыль, очень мерзкая и опасная штука! Лучше прорезать по линии раздела сверху и снизу чем-нибудь острым (саморез), а затем аккуратно сломать по ней в тисках. Также рекомендую резак по оргстеклу: 2-3 царапины с двух сторон платы и можно аккуратно отломить. Умельцы делают такие резаки из старых полотен от лобзика.
  • Компоненты паяются на шелкографию, в том числе лампы. Дорожки остаются на нижней стороне платы. Лампы вставляем белой ногой в помеченное кружочком отверстие. Схема паяется за 20 минут обычным паяльником, все компоненты выводные, припаяет даже новичок.

    • Упаси вас хосподи паять с кислотой или активным флюсом, поверьте, вам это не надо. Всё паяется обычным припоем с флюсом внутри (ПОС-61, китайский SOLDER).
    • После пайки компонентов обязательно отмыть флюс (который вытечет из припоя). В идеале изопропиловым спиртом или калошей, но вполне достаточно будет потереть зубной щёткой под горячей водой.
    • На неотмытую плату питание не подавать! Могут погореть компоненты.
    • Перед первым запуском установить крутилку (потенциометр в верхней части платы) в среднее положение
    • Бутерброд из плат при подключенном питании не собирать/разбирать! Перед снятием/установкой верхней платы обязательно отключите питание. Малейший перекос/лишний дребезг может привести к выгоранию компонентов.
  • Перед пайкой индикаторов на плату желательно проверить их работоспособность, потому что они из Совка и не все отлично сохранились. Нужно взять напряжение с высоковольтной линии платы – схему найдёте чуть выше. Проще всего подпаяться к конденсатору в левой верхней части платы и подать плюс на анод (белая нога лампы) через резистор на 10 кОм, а gnd – на один из катодов, катоды это собственно и есть цифры. Перебрав катоды вы узнаете, все ли цифры работают. Нерабочую цифру в некоторых случаях можно восстановить, повысив напряжение высоковольтной линии. Также для “прожига” лампы можно чуть чуть уменьшить сопротивление токозадающего резистора (10 кОм который), можно влепить подстроечник. Для более точного теста цифр используйте прошивку lamp_test
  • Напряжение высоковольтной линии – 140-300 Вольт, держите пальцы подальше от контактов на плате с лампами и от генератора на левой части платы (где катушка и конденсатор). Не убьёт, но тряхнёт знатно! Если держите часы – гарантированно их бросите, и нет гарантий, что они не разобьются.

    По поводу напряжения: его задаёт во-первых резистор (на моей плате подстроечный, вверху в центре), и во-вторых скважность ШИМ сигнала. По умолчанию скважность стоит 180, что уменьшает просадку под нагрузкой. Резистор в оригинальной схеме стоит на 360 кОм, у меня подстроечный на 500 кОм, и я его выкрутил на максимум (170 Вольт). Также на напряжение влияют сами лампы (как нагрузка). Измерять и настраивать напряжение нужно под нагрузкой (со включенными лампами), минимальное напряжение около 130 Вольт (лампы зажигаются), максимальное не должно превышать 175-180 Вольт (это максимум для лампы). Также окисленную (отравленную) лампу можно прожарить, подав на неё бОльшее напряжение (скажем 220-250) на некоторое время. Выбор горящей лампы и цифры появится в прошивке позже. Не забывайте о том, что при питании от USB напряжение 5-ти Вольтовой линии составляет около 4.5 Вольт (часть падает на диоде по питанию Ардуино), поэтому все настройки производить только при подключенном внешнем питании 5 Вольт в соответствующие входы питания на плате (сверху, правее Ардуино).

  • Если отстают/спешат часы, проблема скорее всего в питании схемы. Если при смене блока питания на более качественный проблема не уходит, повесьте конденсатор по питанию RTC модуля (прям на плату на VCC и GND паять): обязательно керамический, 0.1-1 мкФ (маркировка 103 или 104, смотрите таблицу маркировок). Также можно поставить электролит (6.3V, 47-100 мкФ)
  • Если часы показывают 2525 или 6565, проблема в RTC модуле. Проверять пайку, мыть флюс, также мог попасться брак и придётся заменить. Пишут что среди мелких модулей часто встречаются бракованные, я с таким ни разу не сталкивался.
  • Как настроить скетч под другие индикаторы (даже если вы сделали под них свою плату)? Всё очень просто: за порядок цифр отвечает массив digitMask, хранящий в себе соответствие цифры и номера ячейки. Прошиваем тестовый скетч (nixieClock_2_test_v1.1) с настройкой BOARD_TYPE 3. Также пролистайте чуть ниже (ДЛЯ РАЗРАБОТЧИКОВ) до строчки
    #elif (BOARD_TYPE == 3)
    На следующей строчке находится ваш digitMask, который будет активен при BOARD_TYPE 3. Заполните массив цифрами от 0 до 9 в порядке возрастания. Прошейте скетч и запишите куда-нибудь порядок цифр, который покажут часы (10 цифр). Осталось только изменить свой массив digitMask согласно полученной информации. Например:

    Порядок0123456789
    Часы показали7491308265

    Тогда ваш digitMask будет строиться так: по порядку чисел на нижней строчке выписываем числа из верхней: 0-5, 1-3, 2-7….
    Получим 5374198062, соответственно byte digitMask[] = {5, 3, 7, 4, 1, 9, 8, 0, 6, 2};
    Второй важный массив это opts[], отвечающий за порядок индикаторов слева направо, зависит от платы. Если вы переделывали плату, то не составит труда провести аналогию (или методом тыка) и понять, нужен вам 0123 или 3210.
    Также в основном скетче есть cathodeMask, это порядок катодов (цифр) начиная с дальнего от переднего стекла. Его можно посмотреть на картинке из документации по лампе, этот порядок нужен только для эффекта “перебор катодов”.

  • Если что-то не работает: первым делом грешить на плохую пайку (непропай, сопли, КЗ) и неотмытый флюс. Первым делом умирают оптопары, могут сразу все 4 выгореть. Вторым слабым местом является индуктивность. В некорректном отображении цифр может быть виноват дешифратор, можно попробовать заменить. Если время отображается некорректно – возможен брак модуля часов, лучше покупайте сразу два.
  • 4 светодиода подсветки ламп питаются напрямую от пина Ардуино через резистор, ток с пина не превышает допустимых 40 мА. Питать через транзистор я не стал в целях упрощения схемы. Светодиодная точка также питается от пина. Неоновая точка питается от высоковольтной части через оптопару (пятую, на плате NEON DOT).

    Светодиоды подсветки ламп для платы с ИН-14 паяются снизу платы (длинной ногой в круглое отверстие, короткой – в квадратное) и загибаются к отверстиям под лампами. 3мм светодиод вставляется в отверстие (отверстие можно залить термоклеем для лучшего рассеивания света), 5мм светодиод между платами не вмещается, поэтому его можно вдвое укоротить кусачками и затереть напильником. Точно также прислоняется к отверстию и подсвечивает лампу снизу. Также можно использовать SMD светодиод, подпаяв его проводочками и приклеив под отверстие в плате. Светодиоды подсветки ламп ИН-12 паяются сверху платы и наклоняются примерно под 45 градусов к лампе. У лампы непрозрачный задник, подсветить снизу не получится.

blank

ВАРИАНТЫ КОРПУСА


Корпус для платы на ИН-12 под печать от AlexGyver

Корпус из двух частей, печатал “медным” SBS пластиком, высота слоя 0.2 мм, поддержки от стола. Сборка: закладные под М3 или гайки М3, винтики М3 с круглой шляпкой. Винтики М2 для декора. Файлы для печати и исходник Fusion 360 лежат в архиве проекта по пути case/IN-12_Gyver.

Корпус для платы на ИН-14 от AlexGyver

Корпус под печать или фрезеровку. Файлы для печати .stl, файлы в универсальном формате .step под фрезеровку, чертежи и исходник Fusion 360 лежат в архиве проекта по пути case/IN-14_Gyver.

Корпус для платы на ИН-12 от Максима Осипова

Скачать можно с яндекс диска автора (актуальная версия), также корпус добавлен в архив проекта в папку 3D print/IN-12_Max

ПОДДЕРЖАТЬ


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

guest
12 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии