Canon Canola L1211の表示器の各セグメントをESP32でON,OFFできるようにしました。Canon Canola L1211の表示器であるJRC(日本無線)のSEPTANIX J4923Aに関しては、こちらをご覧ください。
SEPTANIX J4923Aは、セグメントの制御と桁の制御と2つの制御を行う必要があります。
今回は、セグメントの制御回路を作りたいと思います。
トランジスタでセグメントの制御
各セグメントは、抵抗接続して電流をトランジスタを使ってGNDへ流すことで点灯します。
こちらが、セグメントのドライバ回路です。以前ニキシー管の点灯制御にも使用した、高耐圧トランジスタMPSA42を使っています。詳しくは、こちらの記事をご覧ください。
トランジスタの回路を小さな基板に作りました。
プログラム
シンプルに0から9までの数字を表示するプログラムを作りました。
const int a_PIN = 5; //7 const int b_PIN = 16; //5 const int c_PIN = 2; //2 const int d_PIN = 15; //1 const int e_PIN = 0; //3 const int f_PIN = 17; //6 const int g_PIN = 4; //4 const int dp_PIN = 18; //8 const int com_PIN = 19; //9 const int SEG_PIN[9] = { a_PIN, b_PIN, c_PIN, d_PIN, e_PIN, f_PIN, g_PIN, dp_PIN, com_PIN }; const int SEG_NUM = 9; // a b c d e f g const bool CHAR[10][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} }; void setup() { // put your setup code here, to run once: Serial.begin(115200); Serial.println("start"); for( int i=0 ; i< SEG_NUM ; i++) { pinMode(SEG_PIN[i], OUTPUT); digitalWrite(SEG_PIN[i], LOW); } } void loop() { for( int i=0 ; i< 10 ; i++) { for( int j=0 ; j<7 ; j++ ) { digitalWrite(SEG_PIN[j], CHAR[i][j]); } Serial.printf("%d\n",i); delay(500); } }
プログラムも書き込んで準備完了です。
数字が表示された!
電源を入れると、無事表示管に数字が表示されました!ニキシー管と同じような色合いですが、7セグメントの表示器になっています。LEDには無い暖かい感じのとても綺麗な色をしています。
セグメントの制御はうまくいきました。次回は桁の制御を追加したいと思います。
2021.4.11 追加 つづきはこちら
追加終わり
コメント