Canon Canola L1211の表示器の各桁をESP32でON,OFFできるようにしました。前回はセグメントをON,OFFできるようにし、1桁の数字の表示ができるようになっていました。詳しくはこちらをご覧ください。
桁の制御回路
回路の設計
ニキシー管同様、各桁をONするためには170V程度の電気をON,OFFしないといけません。一般に簡単は方法としては、高耐圧のフォトインタラプタを使って、マイコンから高電圧をON,OFFする方法があります。しかしその部品を持っていなかっため、高耐圧のトランジスタで回路を設計することにしました。
回路は、以前ニキシー管で作った回路と基本は同じです。詳しくはこちらをご覧ください。
こちらが、桁の制御の回路になります。高耐圧のPNPトランジスタMPSA92を使い、高電圧の電流が吐き出されるようにします。このトランジスタのベースも高電圧となっているため、セグメントの制御の時に使った高耐圧のNPNトランジスタMPSA42を用い、MPSA92のベースを制御します。このような回路にすることで、マイコンのような低い電圧の信号でも高電圧をON,OFFすることができるようになります。
はんだ付け
13桁もあるので、トランジスタの数が多いです。
13桁分作ったのですが、残念ながらESP32のピンが足りないために、A0とA12はマイコンにはつながっておらず、光らせることができません。
プログラム
// a b c d e f g dp com const int SEG_PIN[9] = { 5, 16, 2, 15, 0, 17, 4, 18, 19 }; const int SEG_NUM = 9; // A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 const int ANODE_PIN[11] = { 23, 22, 21, 32, 33, 25, 26, 27, 14, 12, 13 }; const int ANODE_NUM = 11; // a b c d e f g const bool CHAR[16][7] = { {1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 0, 0, 0, 0}, {1, 1, 0, 1, 1, 0, 1}, {1, 1, 1, 1, 0, 0, 1}, {0, 1, 1, 0, 0, 1, 1}, {1, 0, 1, 1, 0, 1, 1}, {1, 0, 1, 1, 1, 1, 1}, {1, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 0, 1, 1}, {1, 1, 1, 0, 1, 1, 1}, {0, 0, 1, 1, 1, 1, 1}, {0, 0, 0, 1, 1, 0, 1}, {0, 1, 1, 1, 1, 0, 1}, {1, 0, 0, 1, 1, 1, 1}, {1, 0, 0, 0, 1, 1, 1}, }; void setup() { Serial.begin(115200); Serial.println("start"); for ( int i = 0 ; i < SEG_NUM ; i++) { pinMode(SEG_PIN[i], OUTPUT); digitalWrite(SEG_PIN[i], LOW); } for ( int i = 0 ; i < ANODE_NUM ; i++) { pinMode(ANODE_PIN[i], OUTPUT); digitalWrite(ANODE_PIN[i], LOW); } } int scroll = 0; void loop() { for (int wait = 0; wait < 10; wait++) { for ( int i = 0 ; i < ANODE_NUM ; i++ ) { int rotated_i = (((i + scroll) % ANODE_NUM) + ANODE_NUM) % ANODE_NUM; for ( int j = 0 ; j < 7 ; j++ ) { digitalWrite(SEG_PIN[j], CHAR[rotated_i][j]); } digitalWrite(ANODE_PIN[i], HIGH); delay(1); for ( int j = 0 ; j < 7 ; j++ ) { digitalWrite(SEG_PIN[j], LOW); } digitalWrite(ANODE_PIN[i], LOW); delayMicroseconds(50); } } scroll--; }
各桁をダイナミックスキャンするように、プログラムを改良しました。また、数字が左へスクロールするようにしました。
光りました!
ESP32にプログラムを書き込むと...
光りました!!ESP32のピンが足りないため、一番右と一番左の桁は光りませんが、11桁分表示できるようになりました。Canon Canola L1211の表示器、SEPTANIX J4923AをESP32で表示できるようになりました。
プリバイアス回路はありませんが、ゴーストはあまり発生していないようです。電流が少ないからでしょうかね。
さーて時計でも作ろうかな。
2021.4.12 追加 つづきはこちら
追加終わり
コメント