Part list to make the project:
1. Arduino UNO https://amzn.to/2P58O7s
2. Nixie tube 6 pcs https://amzn.to/3aHyJvX
3. Opto coupler chip TLP627
4. DC step-up module from 12VDC to 390VDC https://amzn.to/30kpdK9
5. Breadboard https://amzn.to/2uCrnsW
Buy electronic component on utsource.net
Step 1. Circuit design
As matrix design, we only need 12 output from Arduino to control 20 lights of 2 nixie tube.By quick turn on and off 2 nixie tube, we will see two number as permanent view. The sequence turning on/off is by Arduino Code
Step 2. Arduino code
const int nixie_0 = 2;
const int nixie_1 = 3;
const int nixie_2 = 4;
const int nixie_3 = 5;
const int nixie_4 = 6;
const int nixie_5 = 7;
const int nixie_6 = 8;
const int nixie_7 = 9;
const int nixie_8 = 10;
const int nixie_9 = 11;
const int row_1 = 0;
const int row_2 = 1;
const int time_on = 3;
void setup() {
pinMode(nixie_0, OUTPUT);
pinMode(nixie_1, OUTPUT);
pinMode(nixie_2, OUTPUT);
pinMode(nixie_3, OUTPUT);
pinMode(nixie_4, OUTPUT);
pinMode(nixie_5, OUTPUT);
pinMode(nixie_6, OUTPUT);
pinMode(nixie_7, OUTPUT);
pinMode(nixie_8, OUTPUT);
pinMode(nixie_9, OUTPUT);
pinMode(row_1, OUTPUT);
pinMode(row_2, OUTPUT);
//Serial.begin(9600); //should NOT use seiral println, it will effect to output pin D0 & D1
}
void loop() {
for (int i=0; i<=59; i++){
int j = i/10; //second number from right
int k = i%10; //first number from right
for (int m=0; m<=50; m++){ //this for loop is used for delay showing two numbers
//-----------show first number
off_all();
on_number(1,k+2);
delay(time_on);
//-----------show second number
off_all();
on_number(0,j+2);
delay(time_on);
}
}
}
void on_number(int row, int nixie){
//void off_all();
digitalWrite(row, HIGH);
digitalWrite(nixie, HIGH);
}
void off_all(){
digitalWrite(nixie_0, LOW);
digitalWrite(nixie_1, LOW);
digitalWrite(nixie_2, LOW);
digitalWrite(nixie_3, LOW);
digitalWrite(nixie_4, LOW);
digitalWrite(nixie_5, LOW);
digitalWrite(nixie_6, LOW);
digitalWrite(nixie_7, LOW);
digitalWrite(nixie_8, LOW);
digitalWrite(nixie_9, LOW);
digitalWrite(row_1, LOW);
digitalWrite(row_2, LOW);
delayMicroseconds(420); //to prevent "ghost" effect to other tube
}-------------------------------------------------------------------
Code and circuit can be downloaded herehttp://bit.ly/38KY1ri
Comments