今回は前回の少ないバージョンです。
本家が電流制限用の抵抗を付けてなかったの自分もつけませんでしたが、多分付けた方がいいと思う。けど、ちょっと電流が多目に流れる程度で壊れはしないので、大丈夫は大丈夫です。
では、接続図です。
ちなみに、7SEGLEDが実物と違って上下に端子が5本づつあるんですが、絵は4本分のサイズなので、図的にははみ出して接続されてますw
接続出来たら、下記のソースをArduinoに流し込みます。
/* this program will looping 0 to 9 in Nixie Tube * Copyright Yilun Yu * project tutorial : https://osoyoo.com/?p=214 */ int a=7; int b=6; int c=5; int d=11; int e=10; int f=8; int g=9; int dp=4; //display number 1 void display1(void) { digitalWrite(b,HIGH); digitalWrite(c,HIGH); } //display number2 void display2(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(g,HIGH); digitalWrite(e,HIGH); digitalWrite(d,HIGH); } // display number3 void display3(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); } // display number4 void display4(void) { digitalWrite(f,HIGH); digitalWrite(b,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); } // display number5 void display5(void) { digitalWrite(a,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); } // display number6 void display6(void) { digitalWrite(a,HIGH); digitalWrite(f,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); } // display number7 void display7(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); } // display number8 void display8(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); } void clearDisplay(void) { digitalWrite(a,LOW); digitalWrite(b,LOW); digitalWrite(g,LOW); digitalWrite(c,LOW); digitalWrite(d,LOW); digitalWrite(e,LOW); digitalWrite(f,LOW); } void display9(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(g,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(f,HIGH); } void display0(void) { digitalWrite(a,HIGH); digitalWrite(b,HIGH); digitalWrite(c,HIGH); digitalWrite(d,HIGH); digitalWrite(e,HIGH); digitalWrite(f,HIGH); } void setup() { int i; for(i=4;i<=11;i++) pinMode(i,OUTPUT); } void loop() { int i; while(1) { clearDisplay(); switch(i) { case 0: display0(); break; case 1: display1(); break; case 2: display2(); break; case 3: display3(); break; case 4: display4(); break; case 5: display5(); break; case 6: display6(); break; case 7: display7(); break; case 8: display8(); break; case 9: display9(); break; } delay(2000); i++; if(i>9) i=0; } }
ちなみに、本家ではswitch分を使ってないべた書きバージョンです。
本当なら関数ポインタテーブル作って回したいところですが、やめましたw
では、動画を
Next: