ЧАСЫ НА ГРИ И ARDUINO v2

Внимание, это анонс проекта! Платы проверены, всё работает. Имеющиеся прошивки находятся в архиве проекта, ссылка на загрузку есть в самом низу страницы.

14.03.2019 nixieClock_2_test_v1.1 – тест индикаторов (просто крутит цифры по порядку)
15.03.2019 nixieClock_2_v1.0_BETA – бета-версия прошивки, показывает время, мигает, кнопки пока не активны
16.03.2019 nixieClock_2_v1.1_BETA – добавлены режимы переключения цифр, “глюки”, антиотравление, мелкие доработки в коде
12.05.2019 nixieClock_2_v1.3 – добавлена настройка времени кнопками
13.05.2019 nixieClock_2_v1.4 – добавлено управление эффектами с кнопок
14.05.2019 nixieClock_2_v1.5 – исправление ошибок, ещё управление с кнопок
08.06.2019 Исправлена ошибка на плате ИН-12 перевёрнутая. Где была ошибка можно читать тут
29.06.2019 Китайцы больше не делают насечку для разделения плат (бесплатно). На всех платах добавлена шелкография сверху и снизу для самостоятельного разделения частей.

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

Платы:

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

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

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

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

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

Управление кнопками:

Настройка времени:

  • Левая кнопка – выбор, остальные “больше” и “меньше”
  • Удержать “выбор” – настройка времени
  • Клик по “выбору” – смена настройки часы/минуты
  • Клик “больше” и “меньше” – изменение времени
  • Удержать “выбор” – возврат к режиму часов

Настройка эффектов. В режиме часов:

  • Центральная кнопка переключает режимы подсветки ламп
    • Дыхание
    • Постоянное свечение
    • Отключена
  • Правая кнопка переключает режимы перелистывания цифр
    • Без эффекта
    • Плавное угасание
    • Перемотка по порядку числа
    • Перемотка по катодам
  • Удержание центральной кнопки включает/отключает “глюки”

ЭФФЕКТЫ

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

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

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

ПЕЧАТНЫЕ ПЛАТЫ

Проект

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

перейти

ИН-14

скачать gerber
easy eda

ИН-14 NEON точка

скачать gerber
easy eda

ИН-12

скачать gerber
easy eda

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

скачать gerber
easy eda

Чертёж плат

  • 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 скринах показано, как убрать металлизацию нижней платы. Если вам это нужно.

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

Если вместо указанных товаров у вас открываются блузки/вата/прочая хрень – выбросьте свой айфон! Или проверьте его на вирусы.
Лампы ИН-14 и ИН-12. Где купить? Барахолки, Авито, Юла, гугл (есть магазины), стопудовый вариант – Митинский или другой радиорынок
всё для пайки
аккумы, bms
arduino, модули
мультиметры
инструменты
бп и модули

СОВЕТЫ ПО СБОРКЕ И НАСТРОЙКЕ

  • Что касается компонентов: индуктивность катушки зависит от частоты. Частота у нас фиксированная, так что будьте добры купить катушку на 220 мкГн с током насыщения не менее 240 мА, так как напряжение высоковольтной линии сильно проседает под нагрузкой. Индуктивность по ссылке вывозит нормально, крупнее – ещё лучше. Меньше – не ставьте, будет 140 Вольт и блэдные лампы. Диод быстрый (импульсный), в принципе любой этого класса. Резисторы любые по мощности и точности, я ставил 1/4 Вт самые обычные. Оптопары нужны высоковольтные! Обычные не подойдут. Если приспичило выпаять индикатор, то вам поможет паяльный фен с насадкой около 9мм. Также можно попытаться убрать припой с ног при помощи медной оплётки или паяльного отсоса. Фокус с иглой от шприца скорее всего не прокатит, диаметр отверстий под ноги лампы маловат.

  • Если вы заказывали плату на JLCPCB без прорезания V образной фрезой, разделить плату нужно будет вручную. Можно распилить ножовкой: будет лететь стеклопыль, очень мерзкая и опасная штука! Лучше прорезать по линии раздела сверху и снизу чем-нибудь острым (саморез), а затем аккуратно сломать по ней в тисках.

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

  • Компоненты паяются на шелкографию, в том числе лампы. Дорожки остаются на нижней стороне платы. Лампы вставляем белой ногой в помеченное кружочком отверстие. Схема паяется за 15 минут обычным паяльником, все компоненты выводные, припаяет даже новичок.

    • Упаси вас хосподи паять с кислотой или активным флюсом, поверьте, вам это не надо. Всё паяется обычным припоем с флюсом внутри (ПОС-61, китайский SOLDER).
    • После пайки компонентов обязательно отмыть флюс (который вытечет из припоя). В идеале изопропиловым спиртом, но вполне достаточно будет потереть зубной щёткой под горячей водой.
    • Перед первым запуском установить крутилку (потенциометр в верхней части платы) в среднее положение
    • На неотмытую плату питание не подавать! Могут погореть компоненты.
    • Бутерброд из плат при подключенном питании не собирать/разбирать! Перед снятием/установкой верхней платы обязательно отключите питание. Малейший перекос/лишний дребезг может привести к выгоранию компонентов.
  • Напряжение высоковольтной линии – 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 мкФ)

  • Как настроить скетч под другие индикаторы (даже если вы сделали под них свою плату)? Всё очень просто: за порядок цифр отвечает массив 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 градусов к лампе. У лампы непрозрачный задник, подсветить снизу не получится.

ПРОШИВКА И НАСТРОЙКА

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате Arduino. Гайд по скачиванию и загрузке прошивки можно найти под спойлером на следующей строчке. Прошивки:

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

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

2. Скачайте архив со страницы проекта. Если вы зашли с GitHub – кликните справа вверху Clone or download, затем Download ZIP. Это тот же самый архив!

3. Извлеките архив. Содержимое папки libraries перетащите в пустое место папки с библиотеками Arduino C:/Program Files (x86)/Arduino/libraries/

4. Папку с прошивкой из firmware положите по пути без русских букв. Если в папке с прошивкой несколько файлов – это вкладки, они откроются автоматически.

5. Настройте прошивку (если нужно), выберите свою плату, процессор. Подключите Arduino к компьютеру, выберите её COM порт и нажмите загрузить.

6. При возникновении ошибок или красного текста в логе обратитесь к 5-ому пункту гайда для новичков – “Разбор ошибок загрузки и компиляции“.

Информация для умников, которые не хотят или не умеют читать инструкции: если в папке с прошивкой несколько файлов, то они должны быть там на момент открытия файла прошивки. Если извлекаете из архива – извлекайте всю папку с прошивкой, а не только один файл. Без остальных файлов работать не будет. Остальные файлы автоматически откроются как вкладки.

Содержимое папок в архиве

  • libraries – библиотеки проекта. Заменить имеющиеся версии (в этом проекте внешних библиотек нет)
  • firmware – прошивки для Arduino
  • schemes – схемы и платы
скачать архив
страница на github
сообщить об ошибке
обсудить на форуме

Вопросы и ответы

  • Почему цифры слегка мерцают? Потому что принцип работы данной платы основан на динамической индикации, в один момент времени горит только один индикатор. Время цикла одного индикатора составляет около 3 миллисекунд, все 4 индикатора перебираются за 12 миллисекунд, то есть присутствует мерцание на частоте около 80 Гц. Это дань за простую схему/плату и минимальное количество компонентов

  • Цифры ног на шелкографии индикаторов ИН-12 не соответствуют даташиту? Да, эти цифры не значат НИЧЕГО. Не обращайте на них внимания.
  • Как настроить время? В версии выше 1.3 можно настроить время кнопками:

    • Левая кнопка – выбор, остальные “больше” и “меньше”
    • Удержать “выбор” – настройка времени
    • Клик по “выбору” – смена настройки часы/минуты
    • Клик “больше” и “меньше” – изменение времени
    • Удержать “выбор” – возврат к режиму часов
2019-08-23T10:58:05+03:00