Часы на ГРИ и 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
ИН-14 NEON точка
ИН-12
ИН-12 перевёртыш
Чертёж плат v2.0
- 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
СБОРКА
Последовательность сборки и настройки. Подробности по каждому пункту читай ниже.
- Полностью собрать нижнюю плату (можно не паять DS3231).
- Отмыть флюс! Зубной щёткой и спиртом/калошей, или на худой конец горячей водой.
- Выставить крутилку напряжения (в самом верху на левой половине платы) в среднее положение
- Загрузить прошивку lamp_test, выбрав тип платы (читай код в самом начале)
- Должен начать работать высоковольтный генератор. Аккуратно пальцы, за низ платы не хватаем
- Измеряем напряжение на конденсаторе в верхнем левом углу платы (мультиметр ставить в режим DC, напряжение 50-300 Вольт). Крутилкой выставляем напряжение в районе 180-200 вольт
- На данном этапе можно и нужно проверить лампы, подключив анод (белая нога) через резистор 10 кОм на “плюс” конденсатора, и любую другую ногу на “минус” конденсатора. Перебирая ноги минусовым проводом проверить все цифры индикатора. Если цифра горит не полностью, можно повысить напряжение и “прожечь” катод, или просто подождать. Лампы старые, могут начать нормально работать не сразу. ВНИМАНИЕ! Цифра (катод) в плохом “старом” состоянии потребляет бОльший ток, что может приводить к падению напряжения на генераторе и заветных 180В в работе вы не получите. Поэтому рекомендуется прокалить лампы от генератора в ручном режиме, как написано выше.
- Далее можно смело паять лампы на верхнюю плату.
- Обязательно отмыть флюс!
- При включенном питании верхнюю и нижнюю платы не соединять!
- На прошивке lamp_test будут последовательно перебираться цифры на лампах на максимальной яркости, в порт будет выводиться текущая цифра. Снова берём отвёртку и подстраиваем генератор на 180-200 Вольт (предыдущая настройка была нужна для первого пуска ламп, чтобы ничего не сгорело. При подключении ламп напряжение просядет, и его нужно будет выкрутить обратно).
- Есть смысл оставить часы поработать на этой прошивке пару часов, чтобы лампы пришли в себя, т.к. каждый индикатор перебирает все цифры на максимальной яркости без динамической индикации.
- Если всё нормально – прошиваем актуальную прошивку часов nixieClock_2_v2.* и наслаждаемся!
- Что касается компонентов: индуктивность катушки зависит от частоты. Частота у нас фиксированная, так что будьте добры купить катушку на 220 мкГн с током насыщения не менее 240 мА, так как напряжение высоковольтной линии сильно проседает под нагрузкой. Индуктивность по ссылке вывозит нормально, крупнее – ещё лучше. Меньше – не ставьте, будет 140 Вольт и блэдные лампы. Диод быстрый (импульсный), в принципе любой этого класса. Резисторы любые по мощности и точности, я ставил 1/4 Вт самые обычные. Оптопары нужны высоковольтные! Обычные не подойдут. Если приспичило выпаять индикатор, то вам поможет паяльный фен. Также можно попытаться убрать припой с ног при помощи медной оплётки или паяльного отсоса. Фокус с иглой от шприца скорее всего не прокатит, диаметр отверстий под ноги лампы маловат.
- Если вы заказывали плату на JLCPCB без прорезания V образной фрезой, разделить плату нужно будет вручную. Можно распилить ножовкой: будет лететь стеклопыль, очень мерзкая и опасная штука! Лучше прорезать по линии раздела сверху и снизу чем-нибудь острым (саморез), а затем аккуратно сломать по ней в тисках. Также рекомендую резак по оргстеклу: 2-3 царапины с двух сторон платы и можно аккуратно отломить. Умельцы делают такие резаки из старых полотен от лобзика.
Компоненты паяются на шелкографию, в том числе лампы. Дорожки остаются на нижней стороне платы. Лампы вставляем белой ногой в помеченное кружочком отверстие. Схема паяется за 20 минут обычным паяльником, все компоненты выводные, припаяет даже новичок.
- Упаси вас хосподи паять с кислотой или активным флюсом, поверьте, вам это не надо. Всё паяется обычным припоем с флюсом внутри (ПОС-61, китайский SOLDER).
- После пайки компонентов обязательно отмыть флюс (который вытечет из припоя). В идеале изопропиловым спиртом или калошей, но вполне достаточно будет потереть зубной щёткой под горячей водой.
- На неотмытую плату питание не подавать! Могут погореть компоненты.
- Перед первым запуском установить крутилку (потенциометр в верхней части платы) в среднее положение
- Бутерброд из плат при подключенном питании не собирать/разбирать! Перед снятием/установкой верхней платы обязательно отключите питание. Малейший перекос/лишний дребезг может привести к выгоранию компонентов.
Напряжение высоковольтной линии – 140-300 Вольт, держите пальцы подальше от контактов на плате с лампами и от генератора на левой части платы (где катушка и конденсатор). Не убьёт, но тряхнёт знатно! Если держите часы – гарантированно их бросите, и нет гарантий, что они не разобьются.
По поводу напряжения: его задаёт во-первых резистор (на моей плате подстроечный, вверху в центре), и во-вторых скважность ШИМ сигнала. По умолчанию скважность стоит 180, что уменьшает просадку под нагрузкой. Резистор в оригинальной схеме стоит на 360 кОм, у меня подстроечный на 500 кОм, и я его выкрутил на максимум (170 Вольт). Также на напряжение влияют сами лампы (как нагрузка). Измерять и настраивать напряжение нужно под нагрузкой (со включенными лампами), минимальное напряжение около 130 Вольт (лампы зажигаются), максимальное не должно превышать 175-180 Вольт (это максимум для лампы). Также окисленную (отравленную) лампу можно прожарить, подав на неё бОльшее напряжение (скажем 220-250) на некоторое время. Выбор горящей лампы и цифры появится в прошивке позже. Не забывайте о том, что при питании от USB напряжение 5-ти Вольтовой линии составляет около 4.5 Вольт (часть падает на диоде по питанию Ардуино), поэтому все настройки производить только при подключенном внешнем питании 5 Вольт в соответствующие входы питания на плате (сверху, правее Ардуино).
Как настроить скетч под другие индикаторы (даже если вы сделали под них свою плату)? Всё очень просто: за порядок цифр отвечает массив 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 светодиода подсветки ламп питаются напрямую от пина Ардуино через резистор, ток с пина не превышает допустимых 40 мА. Питать через транзистор я не стал в целях упрощения схемы. Светодиодная точка также питается от пина. Неоновая точка питается от высоковольтной части через оптопару (пятую, на плате NEON DOT).
Светодиоды подсветки ламп для платы с ИН-14 паяются снизу платы (длинной ногой в круглое отверстие, короткой – в квадратное) и загибаются к отверстиям под лампами. 3мм светодиод вставляется в отверстие (отверстие можно залить термоклеем для лучшего рассеивания света), 5мм светодиод между платами не вмещается, поэтому его можно вдвое укоротить кусачками и затереть напильником. Точно также прислоняется к отверстию и подсвечивает лампу снизу. Также можно использовать SMD светодиод, подпаяв его проводочками и приклеив под отверстие в плате. Светодиоды подсветки ламп ИН-12 паяются сверху платы и наклоняются примерно под 45 градусов к лампе. У лампы непрозрачный задник, подсветить снизу не получится.
Источник