Термометр с Nixie-трубкой, управляемый Arduino: 14 шагов
Термометр с Nixie-трубкой, управляемый Arduino: 14 шагов
Anonim
Термометр с Nixie-трубкой, управляемый Arduino
Термометр с Nixie-трубкой, управляемый Arduino

Несколько лет назад я купил в Украине кучу ламп IN-14 Nixie, и с тех пор они у меня лежали. Я всегда хотел использовать их для нестандартного устройства, и поэтому я решил, наконец, взяться за этот проект и создать что-то, что использует этот почти древний способ отображения цифр, но сейчас я не хотел создавать ламповые часы Nixie (я думал, что это было чем-то вроде клише, и на данный момент у меня достаточно модных проектов хипстерских часов), поэтому я подумал: почему бы не построить для моей комнаты термометр, который можно активировать, хлопая в ладоши? Я сделал его включенным, чтобы он не работал все время, потому что я думал, что это пустая трата энергии, и я также не хотел, чтобы он освещал комнату, особенно ночью.

Лампы Nixie контролируются Arduino, который также отвечает за считывание температуры с хорошо известного датчика температуры DHT-11.

Это сокращенная копия моей оригинальной серии, опубликованной на моем сайте. Взгляните на него, если вас интересуют другие технические статьи и проекты, которые я еще не редактировал для Instructables.

Шаг 1: трубки Nixie и высокое напряжение

Трубки Nixie и высокое напряжение
Трубки Nixie и высокое напряжение

Лампы Nixie - это лампы с холодным катодом, заполненные определенным газом. Кроме того, они содержат общий анод (или катод) и отдельные катоды (или аноды) для каждой цифры или символа, которые они могут отображать (см. Рис. 1.1).

В моем случае лампы имеют общий анод, а цифры - отдельные катоды. В отличие от других ламп того времени (транзисторы, диоды и т. Д.) Лампы Никси обычно не нуждаются в нагревании для правильной работы (отсюда и название: лампа с холодным катодом).

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

Шаг 2: повышающий преобразователь постоянного тока с 12 В до 170 В

Повышающий преобразователь постоянного тока с 12 В до 170 В
Повышающий преобразователь постоянного тока с 12 В до 170 В

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

Будьте осторожны при использовании этой схемы и высокого напряжения в целом. Они не игрушка, и получить удар в лучшем случае очень больно, а в худшем потенциально может убить вас! Всегда выключайте источник питания перед заменой / обслуживанием цепи и обязательно используйте подходящий футляр, чтобы никто случайно не прикоснулся к нему во время использования!

В качестве повышающего преобразователя я использовал хорошо известную интегральную схему MC34063. Эта небольшая ИС сочетает в себе все, что вам нужно для любого переключающего преобразователя. Однако вместо использования встроенного транзистора ИС я решил использовать внешний транзистор, который помогал сохранять ИС в холодном состоянии, а также позволял мне иметь более высокий ток на выходе. Более того, поскольку было на удивление сложно найти правильные значения для всех этих компонентов, чтобы получить выход 170 В, я сдался после нескольких дней расчетов и тестов (максимальное значение, которое я получил от 12 В, было 100 В) и решил не изобретать заново. колесо. Вместо этого я купил комплект на eBay, который в значительной степени соответствует схеме из этого технического описания с некоторыми изменениями (см. Рис. 2.1. Я также добавил описания к изображению).

Шаг 3: управление лампами с помощью Arduino

Управление лампами с помощью Arduino
Управление лампами с помощью Arduino

Итак, как вы видели ранее, для включения ламп требуется высокое напряжение. «Так как же можно включать и выключать лампы с помощью микроконтроллера, например, Arduino?», - спросите вы.

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

Так что я не буду использовать такой ламповый драйвер Nixie. Вместо этого я буду использовать транзисторы и декодеры от двоичного к десятичному, так что мне не нужно использовать 10 линий GPIO на одну трубку. С этими декодерами мне понадобится 4 линии GPIO на трубку и одна линия для выбора между двумя трубками.

Кроме того, чтобы мне не приходилось все время переключаться между лампами с высокой частотой, я буду использовать триггеры (для которых потребуется одна дополнительная линия GPIO для сброса), чтобы сохранить последний вход так долго, как это необходимо (См. Рис. 3.1, щелкните здесь, чтобы просмотреть полную схему управления в высоком разрешении).

Шаг 4: соображения по дизайну

При разработке этой схемы я нашел декодеры со встроенными R / S-триггерами, которые все еще производятся (например, CD4514BM96). Но, к сожалению, я не смог получить их быстро, так как срок доставки составлял две недели, и я не хотел ждать так долго. Поэтому, если ваша цель - сделать небольшую печатную плату (или вы хотите иметь небольшое количество различных микросхем), вам обязательно стоит использовать такой чип вместо использования внешних триггеров.

Существуют также инвертированные варианты этих декодеров. Например, CD4514BM965 - это инвертированный вариант вышеупомянутой микросхемы, где выбранное число будет низким, а не высоким, что не является тем, что мы хотим в данном случае. Поэтому обращайте внимание на эту деталь при заказе запчастей. (Не волнуйтесь: полный список деталей будет включен позже в этом Руководстве!)

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

Шаг 5: Транзисторная матрица

Транзисторная матрица
Транзисторная матрица

На шаге 3 я не показывал массив транзисторов, чтобы графика была простой и понятной. На рисунке 5.1 подробно показана пропавшая транзисторная решетка.

Как видите, каждый цифровой выход декодера подключен к базе npn-транзистора через токоограничивающий резистор. Все очень просто.

Просто убедитесь, что используемые вами транзисторы могут выдерживать напряжение 170 В и ток 25 мА. Чтобы выяснить, каким должно быть значение вашего базового резистора, используйте калькулятор, указанный в конце этой инструкции в разделе «Дополнительная информация».

Шаг 6: считывание температуры

Считывание температуры
Считывание температуры
Считывание температуры
Считывание температуры

Возможно, вы уже слышали о комбинированном датчике температуры и влажности DHT-11 (или DHT-22) (см. Рис. 6.1). Единственное отличие этого датчика от DHT-22 - точность и диапазон измерения. 22 имеет более высокий диапазон и лучшую точность, но для измерения комнатной температуры DHT-11 более чем достаточно и дешевле, хотя он может выдавать только целочисленные результаты.

Для датчика требуется три соединения: VCC, GND и одна линия для последовательной связи. Просто подключите его к источнику напряжения и подключите одиночный провод для связи к выводу GPIO на Arduino. В таблице данных предлагается добавить подтягивающий резистор между линией связи и VCC, чтобы линия связи находилась в высоком состоянии, когда не используется (см. Рис. 6.2).

К счастью, уже есть библиотека для DHT-11 (и множество хорошо задокументированных библиотек для DHT-22), которая будет обрабатывать связь между Arduino и датчиком температуры. Так что тестовое приложение для этой части довольно короткое:

Шаг 7: Завершите эскиз Arduino

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

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

Я решил добавить защелку R / S прямо перед каждым входом декодера. Для тех из вас, кто не знает, как работает одна из этих защелок, вот краткое объяснение:

Это в основном позволяет хранить один бит информации. Защелку можно установить и сбросить (отсюда и название R / S-Latch, также известное как S / R-Latch или R / S-триггер). При активации входа SET защелки выход Q устанавливается на 1. При активации входа RESET Q становится равным 0. Если оба входа не активны, предыдущее состояние Q сохраняется. Если оба входа активируются одновременно, у вас есть проблема, потому что защелка принудительно переводится в нестабильное состояние, что в основном означает, что ее поведение будет непредсказуемым, поэтому избегайте этого состояния любой ценой.

Итак, чтобы отобразить цифру 5 на первой (слева) и цифру 7 на второй трубке Nixie, вам необходимо:

  • СБРОСИТЬ все защелки
  • Активируйте левую трубку (отправьте 0 по EN-линии)
  • Установите входы декодера (D, C, B и A): 0101
  • Установите D, C, B и A все на 0, чтобы сохранить последнее состояние (этого не нужно делать, если на обеих пробирках должно отображаться одно и то же число)
  • Активируйте правую трубку
  • Установите входы декодера (D, C, B и A): 0111
  • Установите D, C, B и A все на 0, чтобы сохранить последнее состояние

Чтобы выключить лампы, вы можете передать недопустимое значение (например, 10 или 15). Затем декодер отключит все выходы, и, следовательно, ни один из доступных транзисторов не будет активирован, и ток не будет течь через лампу Никси.

Вы можете скачать всю прошивку здесь

Шаг 8: заказ печатной платы

Заказ печатной платы
Заказ печатной платы
Заказ печатной платы
Заказ печатной платы
Заказ печатной платы
Заказ печатной платы

Я хотел объединить все (кроме повышающей схемы) на одной печатной плате, что, как мне кажется, получилось неплохо (см. Рис. (8.1).

Моя главная цель заключалась в том, чтобы размер печатной платы был как можно меньше, но при этом оставалось место, где ее можно было бы установить на корпус. Я также хотел использовать SMD-компоненты, чтобы улучшить свою технику пайки, и они также помогли бы сохранить печатную плату тонкой, чтобы индивидуальный корпус не был большим и громоздким (см. Рис. 8.2).

Из-за использования компонентов SMD большинство подключений приходилось выполнять на стороне компонентов. Я старался использовать как можно меньше переходных отверстий. На самом деле нижний слой имеет только линии GND, VCC и + 170V, а также некоторые соединения, которые должны были быть выполнены между разными контактами одной и той же ИС. По этой же причине я использовал две микросхемы DIP-16 вместо их SMD-вариантов.

Вы можете скачать файлы дизайна печатной платы и схемы EAGLE здесь.

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

Я решил заказать их на PCBWay и очень доволен продуктом, который мне прислали (см. Рис. 8.3).

Вы можете мгновенно получить расценки на свои прототипы онлайн без необходимости регистрироваться. Если вы решите заказать: у них также есть этот удобный онлайн-конвертер, который преобразует файлы EAGLE в правильный формат gerber. Несмотря на то, что у EAGLE тоже есть конвертер, мне очень нравятся онлайн-конвертеры от производителей, потому что так вы можете быть на 100% уверены, что с версией gerber не будет проблем с совместимостью.

Шаг 9: Устранение неполадок

Исправление проблем
Исправление проблем

При первом тестировании моей только что припаянной печатной платы ничего не работало. Трубки либо вообще ничего не отображали (декодеры достигли значения> 9), либо случайные числа либо оставались включенными постоянно, либо мигали, что выглядело хорошо, но в данном случае было нежелательно.

Сначала я винил программное обеспечение. Итак, я придумал этот тестер Nixie для Arduino (см. Рис. 9.1).

Этот скрипт позволяет вам ввести номер контакта GPIO (0-8), состояние которого вы хотите изменить. Затем он запрашивает состояние. При вводе пина № 9 защелки сбрасываются.

Поэтому я продолжил тестирование и составил таблицу истинности со всеми возможными входами для A, B, C и D. Я заметил, что числа 4, 5, 6 и 7 не могут отображаться ни на одной из двух трубок. Кроме того, они по-разному реагировали бы на одну и ту же комбинацию входных данных.

Я подумал, что это тоже проблема с электрикой. Я не мог найти никаких технических проблем в конструкции, но затем я подумал о том, что я узнал много лет назад (но с тех пор у меня никогда не было проблем): флюс может быть проводящим. Это может не быть проблемой для обычных цифровых и низковольтных приложений, но похоже, что это проблема здесь. Так что я протер доску спиртом, после чего она вела себя нормально.

Вид. Еще я заметил: часть, которую я использовал в EAGLE при создании разводки печатной платы, была неправильной (по крайней мере, для моих ламп). У моих ламп вроде другая распиновка.

Просто о некоторых вещах, о которых следует помнить, когда ваша схема не работает сразу.

Шаг 10: индивидуальный случай

Индивидуальный случай
Индивидуальный случай
Индивидуальный случай
Индивидуальный случай
Индивидуальный случай
Индивидуальный случай

После того, как все остальное было разобрано, я хотел построить хороший корпус для моей трассы. К счастью, от моего проекта Word Clock у меня осталось много дерева, которое я хотел использовать для построения внутренней сетки (см. Рис. 10.1).

Я построил корпус, используя следующие размеры:

Количество Размеры [мм] Описание
6 40 х 125 х 5 Нижняя, верхняя, передняя и задняя сторона
2 40 х 70 х 5 Маленькие боковины
2 10 х 70 х 10 Конструктивные элементы внутри (см. Рис. 8).
2 10 х 70 х 5 Конструктивные элементы на крышке (см. Рис. 11).

Нарезав части, я сложил их вместе, чтобы получилась коробка, показанная на рис. 10.2.

На рис. 10.3 этот случай показан под другим углом.

Верх корпуса точно такой же, как и нижний, только без стенок и с менее высокими конструктивными элементами (см. Рис. 10.4). Она действует как крышка и может быть снята для обслуживания внутренних компонентов. Плата будет прикреплена к крышке двумя трубками, торчащими из корпуса.

Убедившись, что все сочетается друг с другом, я просто склеил все части вместе и дал им высохнуть в течение нескольких часов.

Вам может быть интересно, как я прикрепил плату к крышке, когда наверху не видно винтов. Я просто просверлил отверстие для винта в конструктивной части крышки, а затем сделал зенковку для головки винта (см. Рис. 10.5).

Шаг 11: Завершение сборки

Завершение сборки
Завершение сборки
Завершение сборки
Завершение сборки

После того, как основная плата была прикреплена к крышке, все остальные компоненты просто нужно было поместить в корпус, что можно увидеть на рис. 11.1.

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

Еще я добавил к корпусу разъем DC-Jack (и немного помешался на горячем клее). Но так можно запитать термометр с помощью любого стандартного зарядного устройства для телефона и подходящего кабеля. Однако вы также можете добавить батарею на 5 В, если хотите.

Шаг 12: Детали, используемые в этой сборке

Для электроники:

Количество Продукт Цена Подробности
1 DHT-11 4, 19€ Достал в дорогом магазине. Вы можете получить их менее чем за 1 доллар из Китая.
2 CD4028BM 0, 81€ Декодер
2 74HCT00D 0, 48€ NAND
1 74HCT04D 0, 29€ Инвертор
1 Пинхедер 0, 21€ 2x5 контактов
1 Винтовой зажим 0, 35€ 2 подключения
20 SMBTA42 0, 06€ npn-транзистор
20 SMD-резистор 0, 10€ 120 тыс.
2 74LS279N 1, 39€ R / S-шлепанцы
1 Печатная плата 4, 80€ Заказать здесь
2 ИН-14 Никси 2, 00€
1 Повышающий преобразователь 6, 79€

Вам также понадобится какой-то микроконтроллер. Я использовал Arduino Pro Micro.

По делу:

Количество Продукт Цена Подробности
N. A. Древесина ~2€ См. Выше
4 Винты M3x16 0, 05€
4 Гайки М3 0, 07€
1 бутылка Клей для дерева 1, 29€
1 банка Краска для дерева 5, 79€

Шаг 13: Заключение

Заключение
Заключение
Заключение
Заключение

Я очень доволен результатом этой сборки. На этот раз мне удалось точно распилить деревянные части, а также не забыть о отверстиях для крепления печатной платы. И даже выглядит великолепно (см. Рис. 13.1).

Кроме того, было интересно работать с лампами и высоким напряжением в целом, и при этом нужно учитывать несколько моментов.

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

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

Шаг 14: Авторство, источники и дополнительная литература

Дополнительная информация

Источники изображений [Рис. 1.1] IN-14 Nixie tube, coldwarcreations.com [Рис. 2.1] Повышающая схема, нарисованная самостоятельно, но взятая с сайта ebay.com [Рис. 6.1] Датчик температуры DHT-11 - tinytronics.nl