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 追加 つづきはこちら
追加終わり












コメント