Газоразрядная трубка или Nixie Tube – это заполненная газом неоновая трубка с анодом из проволочной сетки и различными катодами в форме цифр или других символов. Еще в 1950-х годах они использовались в компьютерах, калькуляторах и лабораторном оборудовании. Позже они были заменены вакуумно-люминесцентными и жидкокристаллическими дисплеями и светодиодами и стали довольно редки сегодня. Произошло это из-за большей стоимости трубок. Поэтому постепенно они были заменены практически во всех приборах.
Сегодня мы вспомним об этом замечательном изобретении и постараемся научиться управлять им при помощи платы Arduino.
Предупреждение! В данном проекте используется высоковольтный источник питания. Поэтому необходимо быть предельно осторожным при работе. Все действия вы производите на свой страх и риск.
Материалы
- Преобразователь 12-180 VDC;
- Газоразрядные трубки (в нашем распоряжении оказались IN-12B и IN-14);
- Чип SN74141;
Тестируем наши трубки
Перед подключением трубок к Arduino необходимо убедиться, что все цифры отображаются верно. Для настройки преобразователя постоянного тока лучше использовать мультиметр. Нашим трубкам необходимо около 180 VDC. Необходимо подключить «+» преобразователя к аноду трубки с резистором 12К. Эти цифры не точны и относятся именно к нашим экземплярам трубок. Для определения своих данных необходимо ознакомиться со спецификацией трубок. Также в спецификации необходимо выяснить какой из контактов является анодом. Но рассмотрев несколько трубок мы выяснили, что анод всегда имеет белое защитное покрытие, в то время, как катоды черное. Теперь подключаем оставшиеся контакты к земле, чтобы убедиться, что все цифры корректно работают. Не стоит беспокоиться, если вы подключите два контакта одновременно. Ничего страшного не произойдет, а просто одновременно загорятся две цифры.
Подключение трубок
Если трубка исправна и нормально работает можно приступать к подключению к микросхеме SN74141. Соединяем контакт 11 с контактом 4 (D), 10 с 7 (С), 9 с 6 (В), а 8 с 3 (А). Подключаем 5V от Arduino к 5 на микросхеме и заземляем на 12 на микросхеме. Катоды на трубке подключаем к соответствующим выходам на микросхеме, а анод к 180 VDC. Микросхема принимает двоичный сигнал и передает его на трубку. Для управления двумя трубками понадобится 8 цифровых контактов на Arduino, либо придется использовать регистр сдвига (рисунок 4).
Код
Далее необходимо загрузить данный код. Он будет циклически перебирать цифры в трубках. Для создания собственного кода можно воспользоваться таблицей в прилагаемом документе.
- void
setup() {
pinMode(11, OUTPUT);// D
pinMode(10, OUTPUT);// C
pinMode(9, OUTPUT);// B
pinMode(8, OUTPUT);// A
}
void loop()
{
//0
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(8, LOW); //B
digitalWrite(8, LOW); //A
delay(1000);
//1
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B
digitalWrite(8, HIGH); //A
delay(1000);
//2
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, LOW); //A
delay(1000);
//3
digitalWrite(11, LOW); //D
digitalWrite(10, LOW); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, HIGH); //A
delay(1000);
//4
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH); //C
digitalWrite(9, LOW); //B
digitalWrite(8, LOW); //A
delay(1000);
//5
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH); //C
digitalWrite(9, LOW); //B
digitalWrite(8, HIGH); //A
delay(1000);
//6
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, LOW); //A
delay(1000);
//7
digitalWrite(11, LOW); //D
digitalWrite(10, HIGH); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, HIGH); //A
delay(1000);
//8
digitalWrite(11, HIGH); //D
digitalWrite(10, LOW); //C
digitalWrite(9, LOW); //B
digitalWrite(8, LOW); //A
delay(1000);
//9
digitalWrite(11, HIGH); //D
digitalWrite(10, LOW); //C
digitalWrite(9, HIGH); //B
digitalWrite(8, LOW); //A
delay(1000);
}
Статья является авторским переводом с сайта instructables.com