Уже не первый десяток лет газоразрядные цифровые индикаторы переживают свой ренессанс. Одни собирают часы и метеостанции на широко распространённых ИН-12, другие уходят в тему с головой и пытаются наладить своё производство ламп немыслимых доселе форм и размеров.

Я же предпочитал в своих конструкциях использовать ВЛИ (VFD) — они требуют куда более низких напряжений питания, да и весьма чаще встречаются в виде готовых модулей, которым нужно лишь подать 5 вольт питания и данные.

Большинство конструкций на газоразрядниках, которые мне попадались в категории «для начинающих», использовали давно снятые с производства микросхемы дешифраторов по типу К155ИД1 или SN74141. Также многие встреченные схемы экономили на количестве оных, используя один дешифратор для всех ламп сразу, коммутируя аноды через оптопары.

Поставить же две ИН-12, валявшихся в ящике уже десяток лет, хотелось в свой проект CD-плеера — отображать номер трека или радиостанции. Поэтому хотелось иметь такой же модуль, как и любой другой дисплей — не сильно крупнее геометрически, чем сами лампы, подключающийся по стандартной шине и не требующий от процессора никаких заморочек с обновлением динамической индикации и всего такого, ну и на активно производящихся компонентах до кучи.

Так и зародился в проекте побочный файл платы с говорящим названием Nixierator.

❯ Принцип работы

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

Справа можно увидеть вход высокого напряжения (HV), как правило для ИН-12 это 200 вольт постоянного напряжения. Резисторы Ra1 и Ra2 задают ток через индикаторы — для ИН-12 рабочий ток рекомендуется в диапазоне от 2 до 3,5 мА, и 100 кОм на 200 вольтах как раз обеспечивают щадящий режим работы по нижней границе этого диапазона.

Слева же у нас вход данных с ардуины, хорошо знакомая всем I2C-шина. R4 и R5 подтягивают её к положительному напряжению питания, на случай, если подтяжки не установлены на схеме, которая будет модулем управлять. По ней данные поступают в восьмибитный регистр PCF8574, адрес которого задаётся перемычками A2, A1 и A0.

Восьмибитный выход с регистра разбивается по полубайтам на два дешифратора MC14028. У каждого дешифратора есть четырёхбитный вход и 10 выходов. Если двоичное значение на входе попадает в десятичный диапазон от 0 до 9, то на соответствующем выходе из Q0-Q9 появится высокий логический уровень, в противном же случае — все выходы останутся на низком уровне. Можно представить эту логику в виде таблицы истинности:

Подавая на вход двоичное представление цифр от 0 до 9 — ‭«выбираем‭» соответствующий выход, а от A до F — ‭«отключаем‭» их все
Подавая на вход двоичное представление цифр от 0 до 9 — ‭«выбираем‭» соответствующий выход, а от A до F — ‭«отключаем‭» их все

Таким образом, например, если мы запишем в регистр PCF8574 шестнадцатеричное число 0x28 — первые (старшие) 4 бита уйдут на верхний по схеме дешифратор (U8) и включат у него выход под номером 2, вторые (младшие) 4 бита уйдут на нижний дешифратор (U7) и включат у него выход под номером 8.

Дальше все эти выходы идут через микросхему SN75468 — сборку из семи составных транзисторов. Эти транзисторы дают нам усиление по напряжению, чтобы сигналами логических уровней (0..5 В) переключать питание нужных нам катодов газоразрядных ламп. Когда выход дешифратора активен (лог. 1), соответствующий транзистор в сборке открывается и замыкает подключённый к нему катод лампы на землю, зажигая его. Если же выход дешифратора неактивен (лог. 0), транзистор заперт — ток через катод не течёт, и он не светится.

Внимательный читатель заметит, что SN75468 по даташиту допускает максимальное напряжение коллектор-эмиттер равное 100 вольтам. Однако наши лампы работают от 200 вольт! Как же это работает, а закрытые транзисторы не пробивает высоким напряжением?

Именно по этой причине на схеме установлен стабилитрон Z1 на 91 вольт. Он подключён между общей точкой коллекторов всех транзисторов внутри SN75468 и их же общим эмиттером. Таким образом, на транзисторах никогда не будет больше 91 вольта между коллектором и эмиттером — либо 0 (транзистор открыт, катод зажжён), либо 91 (транзистор закрыт, катод погашен). Возможно, будет понятнее, если отрисовать этот участок схемы отдельно и упрощённо, лишь с одним транзистором:

Транзистор закрыт — на лампе, находящейся вместо вольтметра VM1, падает лишь 110 вольт, чего недостаточно для зажигания неона внутри неё, а на транзисторе падает 90 вольт за счёт подключённого к нему параллельно стабилитрона, что вполне себе в пределах допустимого по даташиту
Транзистор закрыт — на лампе, находящейся вместо вольтметра VM1, падает лишь 110 вольт, чего недостаточно для зажигания неона внутри неё, а на транзисторе падает 90 вольт за счёт подключённого к нему параллельно стабилитрона, что вполне себе в пределах допустимого по даташиту
Транзистор открыт — его сопротивление равно нулю, как и падение напряжения. Все 200 вольт ‭«достаются‭» лампе, и она зажигается
Транзистор открыт — его сопротивление равно нулю, как и падение напряжения. Все 200 вольт ‭«достаются‭» лампе, и она зажигается

Резистор R3 задаёт ток стабилитрона для достижения им рабочего режима и обеспечения правильного напряжения в точке между Z1 и R3. В интернете встречаются схемы, где этот резистор опущен, в надежде на то, что паразитный ток внутри не горящей лампы от анода к катодам будет достаточным сам по себе. Но тогда напряжение в точке между Z1 и R3 может оказаться ниже, чем 91 вольт — как повезёт с конкретными лампами и стабилитроном — падение напряжения на лампах же, напротив, увеличится, и даже выключенные катоды будут гореть частично или целиком. В идеале R3 нужно подбирать по даташиту стабилитрона, чтобы ток через него был оптимален, но я воткнул 100 кОм просто от балды, чтоб не заказывать лишние номиналы, и всё работало прекрасно.

❯ Почему это работает?

Как мы уже разобрались, в нашей схеме на выводе зажжённого катода будет потенциал в 0 вольт, а на выводе погашенного — те самые 91 вольт. Однако, цифры будут гаснуть несмотря на то, что потенциал погашенных катодов ниже потенциала анода.

Типовая ВАХ газового разряда
Типовая ВАХ газового разряда

Всё дело в том, что вольт-амперная характеристика у газоразрядного индикатора нелинейна, наподобие таковой, к примеру, у светодиода.

Напряжение, при котором ток начнёт течь, называют напряжением возникновения разряда (на графике слева точка D) — при нём в газовой среде происходит тлеющий разряд, который и светится вокруг катода.

После этого в лампе уже достаточно нагретого и ионизированного газа, чтобы тлеющий разряд поддерживал себя даже при понижении напряжения. Однако ниже определённого напряжения он уже себя поддерживать не сможет и погаснет — это напряжение называют напряжением поддержания разряда (на графике слева — точка E').

Посмотрим, чему эти напряжения равны для ИН-12, в паспорте на эту лампу:

В контексте нашей схемы напряжения будут:

  • Когда цифра активна: потенциал катода 0 В (транзистор на землю открыт), потенциал анода 200 В, разность потенциалов (напряжение) — 200 В, что больше напряжения возникновения разряда в 170 В. Соответственно, катод зажигается.

  • Когда цифра погашена: потенциал катода 97 В (транзистор закрыт, напряжение задано стабилитроном), потенциал анода 200 В, итого напряжение (200 - 97) = 103 В, что ниже напряжения поддержания разряда в 120 В. Значит, катод погаснет, хотя какой-то мизерный ток через него течь и продолжит.

❯ Печатные платы

По-быстрому раскидал на плате в диптрейсе — по мере возможности разводя подальше высокое напряжение и логику. Скорее всего, конечно, не пробьёт, но страшно такие вещи держать рядом.

В следующих ревизиях, если такие будут, хочется сделать сквозные разъёмы для питания и данных. Но так как я и эту в итоге не применил, то когда это произойдёт — вопрос тот ещё :-)

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

Собираем, подключаем:

Работает, радостно!

❯ Код

По умолчанию все пины PCF8574 работают как выходы, поэтому для работы с ним через ардуину не нужна никакая библиотека кроме стандартной Wire. Вот пример кода, считающего на одном таком модуле секунды от 0 до 99 и мигающего нулём в старшем разряде на нечётных значениях меньше десяти:

int address = 0x38; // адрес, заданный перемычками

// Отображает двухзначное число на газоразрядном индикаторе
// @param num Число в диапазоне 0-99
// @param leading_zero Включает или выключает 0 в старшем разряде, если число меньше 10
void nixieShow(int num, bool leading_zero) {
    if(num >= 100) num = (num % 100);
    int bcd = (num % 10) | ((num / 10) << 4); // Перевод числа в BCD

    if(!leading_zero && (num / 10) == 0) {
        // Отключить первую цифру, если не нужен 0 в старшем разряде
        bcd |= 0xF0;
    }

    Wire.beginTransmission(address);
    Wire.write(bcd);
    if(Wire.endTransmission() != 0) Serial.println("send error!!");
}

void setup() {
    Serial.begin(115200);
    Wire.begin();
}

int second = 0;
void loop() {
    if(second == 99) second = 0;
    else second++;
    nixieShow(second, (second % 2) == 0); 
    delay(1000);
}

Из нюансов здесь лишь перевод числа в двоично-десятичный код — т.е. чтобы при выводе десятичного числа 39 в регистр записалось двоичное 0011 1001b == 0x39 == 57d, а не 0010 0111 == 0x27 == 39d.

❯ Минута славы откуда не ждали

Собственно, платы я заказал и сделал, но в плеер мне нужна была лишь одна, а минимальный заказ на JLC PCB — четыре штуки. Выкидывать остальные четыре было бы расточительно, а положить их в долгий ящик — непонятно, когда бы они ещё понадобились.

Поэтому я заказал деталей, кроме ламп, на все пять плат, и выложил лишние четыре на Яху-аукционы — местный аналог почившего ныне ‭«молотка‭» в рунете. Специально для начинающих ардуинщиков типа меня, которым с газоразрядниками поиграться хотелось бы, а откуда подступиться — непонятно.

Изначальный листинг на аукционе
Изначальный листинг на аукционе

Через пару дней в комментарии пришёл кто-то и начал расспрашивать: можно ли соединить несколько таких модулей? Можно ли на них вывести что-то кроме текущего времени или погоды? И в конце попросил написать на почту напрямую.

Оказалось, что им нужно табло для декорации машины времени в сериале! Как раз на 8 разрядов, из оставшихся последних четырёх плат.

Сериалом же оказалась экранизация настольной игры 「八月のタイムマシン」(Hachigatsu no Time Machine), в жанре science fiction. Да, видимо в этом жанре в этой части планеты клише с дисплеями на технологиях пятидесятых годов прошлого века с нами ещё надолго :-) (Про саму игру, увы, ничего сказать не могу — не пробовал)

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

До кучи, как показала пробная съёмка оных с динамической индикацией — когда цифры очень быстро зажигаются по очереди — почти любое изменение скорости затвора вызывало мерцание цифр, как при съёмке ЭЛТ-монитора, что для кино недопустимо.

И тут как наудачу я выкладываю на продажу свои эти платы! Причём описанная здесь схема реализует статическую индикацию — все цифры всегда горят одновременно, и никакого мерцания не возникнет.

Поначалу была идея сделать просто набивку цифр в память через USB-UART и простейшее веб-приложение из одной страницы, общающееся с устройством через WebSerial.

Концепт вебморды для выставления цифр на табло
Концепт вебморды для выставления цифр на табло

Однако мне показалось впоследствии, что тягать по студии ноутбук на каждый чих — не самая лучшая идея, да и microUSB-разъём у ардуины нано — уж больно хрупкая штука. Идея с заменой ардуины на ESP8266 тоже показалась не лучшей — опять же нужен компьютер или телефон, плюс на съёмочной площадке, как правило, радиоэфир забит по самое не балуй, а у ESP с радиочастью исторически было так себе. Да и корпус этой части машины времени предполагался из стали — то есть выносную антенну делать надо, а ESP с IPEX-коннекторами у меня закончились...

И тут мой взгляд упал на валявшийся в ящике с деталями инфракрасный хвост от ТВ-тюнера.

А ведь это то, что нужно! Можно прилепить где-то в незаметном месте на декорациях, а если родного кабеля не хватает — всегда можно докупить в ближайшем магазине удлинитель для наушников (если такового вообще уже нет на студии) и нарастить его без особого геморроя.

В итоге были докуплены лампы и из подручных деталей было сварганено самое настоящее табло для машины времени:

Для управления из той же коробки с хламом был изъят неизвестного происхождения пульт с крестовиной и кнопкой питания — как раз на все функции, которые нужны. Пришлось, конечно, упихать всё довольно плотно, поэтому схема управления вышла нетривиальной:

Режим →

Выключено

Включено

Редактирование

Кнопка ↓

Нажать

Держать

Нажать

Держать

Нажать

Питание

Показать последнее активное число

То же, но с анимацией

Погасить экран

Редактировать текущий слот памяти

Сохранить текущее число в редактируемый слот памяти

1 / вверх

Показать число в слоте 1

Показать число в слоте 1

То же, но с анимацией

Прибавить цифру под курсором

2 / влево

Показать число в слоте 2

Показать число в слоте 2

Курсор влево

3 / вправо

Показать число в слоте 3

Показать число в слоте 3

Курсор вправо

4 / вниз

Показать число в слоте 4

Показать число в слоте 4

Убавить цифру под курсором

Пример настройки и проверки можно увидеть на видео:

После одобрения реквизиторов и режиссёра табло уехало в мастерскую Azuma Kobo, где уже делали основную декорацию. И спустя пару месяцев машина времени наконец-то увидела свет:

Скриншот из трейлера
Скриншот из трейлера

Часть табло попала и на постер самого сериала:

А эффект пролистывания цифр попал и в заглавные титры:

В эфир сериал пошёл с 4 мая 2025 года по каналу BS12.

А меня этот проект заставил задуматься о некоторых вполне себе нетехнических вещах.

Жизнь штука такая — никогда не знаешь, где выстрелит. Куча усилий была потрачена на плеер компакт-дисков, но внезапно не прошли даром и побочные наработки, которые в плеер вообще не вошли. Да и вообще, казалось бы, где самоделки ради чисто развлечения, и где весь этот большой шоубиз — а вот ведь как бывает.

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

Ну а в-третьих, сериал же о моей жизни вы всегда можете почитать в телеграме :-)

❯ Ссылки и все дела


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале 

Перед оплатой в разделе «Бонусы и промокоды» в панели управления активируйте промокод и получите кэшбэк на баланс.

? Читайте также:

Комментарии (8)


  1. nextbystander
    05.06.2025 14:11

    На рисунках с объяснением работы ограничителя напряжения видимо нужно переставить вольтметр VM1 в цепь между VM2 и V2, а эмиттер заземлить. Иначе в существующем виде будет обратный пробой перехода база-эмиттер с вероятным выходом транзистора из строя.


    1. vladkorotnev Автор
      05.06.2025 14:11

      Точно — спасибо, поправил!


  1. vvzvlad
    05.06.2025 14:11

    Т.е. где-то в декорациях к японской дораме есть надписи на русском?


    1. vladkorotnev Автор
      05.06.2025 14:11

      Ну где-то внутри под крышкой на обратной стороне печатной платы — таки есть, получается %)


    1. Nuflyn
      05.06.2025 14:11

      "Проникновенье наше по планете. \ Особенно заметно вдалеке:\ В общественном парижском туалете\ Есть надписи на русском языке! "(с) ))


  1. TachSkim
    05.06.2025 14:11

    Очень занимательная история, невольно задумываешься, как череда факторов и совпадения может порой сгенерировать истории, которые будешь внукам рассказывать и иногда вообще перевернуть жизнь с ног на голову


  1. NutsUnderline
    05.06.2025 14:11

    По нонешней моде заголовок должен быть по типу "Залетаю с ноги в японский аниме дораму" :) Даже захотелось посмотреть.

    А вообще конечно здорово. Я у себя в закладках держу историю как делали реплику deloean из Назад в Будущее https://arkorobotics.com/bttf.html точнее как раз табло в этой машине. Тоже разносторонний радиолюбитель как то затесался. Жаль схемы нет :)


  1. maynoz
    05.06.2025 14:11

    А еще можно так - https://www.tindie.com/products/allexok/easynixie/ Реализовал на них таймер - очень быстро, просто и минимум подключений.