大型7セグメントLEDを制御させるユニットを6個 作りました。
一つのユニットに部品点数はそれほど多くは ないが、全ユニットでトランジスタの足曲げ60個、LEDから基板までの配線が60本、他にもユニットを接続するコネクタ作りがあり、根気がいりました。
なぜ6個も作ったかと言うと、これを使って時計を表示させたいと思ったからです。
大型7セグメントLED ユニットの自作
ユニットと回路図
7セグLEDのアノード側(+)と基板は2本で つながっています。
カーソド側(ー)は各1本です。
R16 の抵抗は いい場所が思いつかなかったので(設計ミスなので?)後付けしました。
今回の制作でユニットは15個まで接続は可能ですが、電源線の容量の問題もありますので、6個までが いいと思います。
接続ピンを増やすか回路そのものを改良するしかないですね。
部品表
部品名 | 定格、値 | 記号 | ユニット1個の個数 | ユニット6個の総個数 |
---|---|---|---|---|
PIC16F84A | U1 | 1 | 6 | |
ICソケット | 18P | U1 | 1 | 6 |
NJM7805FA | 出力5V | U2 | 1 | 6 |
セラミック発振子 (セラロック) |
20MHz | X1 | 1 | 6 |
7セグLED | 9V 300mA | D1 | 1 | 6 |
抵抗器 | 10KΩ | R1-R4、R6、R7 | 6 | 36 |
〃 | 1KΩ | R5、R8-R15 | 9 | 54 |
〃 | 180Ω | R16 | 1 | 6 |
積層セラミックコンデンサ | 50V 0.33μF | C1 | 1 | 6 |
〃 | 50V 0.1μF | C2 | 1 | 6 |
2SC1815 | TR1 - TR10 | 10 | 60 | |
ピンヘッダ(オス) | 2列 8P | CN1 | 1 | 6 |
〃 | 2列 6P | CN2 | 1 | 6 |
〃 | 1列 4P | CN3 | 1 | 6 |
QIコネクタ(2550コネクタ) コンタクトピン |
8 | 48 | ||
QIコネクタ(2550コネクタ) ハウジング |
1列 4P | 2 | 12 | |
KV線 | 10 | 60 |
リストにある「-」(ハイフン)は、間の記号を省略している。
例) R1 - R4 = R1、R2、R3、R4
データシート
制作
制作後に思ったこと。
KV線を間に入れ直結したが、今となるとQIコネクタを使えばよかったかなと思う。
そのせいで、両サイドの基板が斜めになってしまい、
固定する際はアルミ材と硬めのスポンジで挟み込むなどの工夫が必要になる。
接続例
電源ですが、6個の場合、
『7セグLED1個 300mA × 6個 = 1800mA』
最大で 1800mA + α 流れるので、
スイッチングACアダプター 9V の 2A 以上の容量が必要です。
("α" は基板側で消費される電力)
プログラム
PIC16F84A
"MYID"(割り当てID)の値を個別に変更してください。
変更しないと、同じ ID が同じ動作をしてしまいます。
アプリケーション (動作テスト用)
通信
フォーマット
転送速度 | 19200 |
---|---|
フロー制御 | なし |
パリティー・ビット | なし |
データビット長 | 8 |
ストップビット長 | 1 |
USB シリアル変換を使って通信できます。
自作フレームのページに動作テストした動画があります。
コマンド送信
【ID3 - ID0】
識別番号
プログラム中の "MYID" (割り当てID) の値と一致したユニットが動作する。
ID が一致しないユニットは動作しない。
ただし、全てのビットが "1" の場合は動作する。
【CMD2~CMD0】
コマンド
何をさせるかの命令コードである。
「0x01」は、点灯消灯の設定
「0x02」は、点灯状態の取得
(「0x02」のとき、"DP0" と "D*" は「0x00」にする。)
(つまり、2バイト目は「0x00」にする。)
【DP0】
ドット設定
ドット (点) を点灯させるかどうか。
"1" のとき、点灯
"0" のとき、消灯
【D3~D0】
セグメント設定
7セグLEDの a~g を点灯消灯させる。
「0x01」は、"1" を表示
「0x09」は、"9" を表示
「0x0F」は、全消灯。
設定の応答
【点灯消灯の設定のときの応答内容】
コマンドが「0x01」のとき
ID と CMD は送信したものと同じ。
【CD7~CD0】
チェックデジット
送信した1バイト目と2バイト目の排他的論理和 (XOR)。
チェックディジットは、上位4ビットと下位4ビットに分かれて送られてくる。
状態取得の応答
【点灯状態の取得のときの応答内容】
コマンドが「0x02」のとき
ID と CMD は送信したものと同じ。
【D3~D0】
表示値
"1" を表示しているときは「0x01」になる。
"5" のときは「0x05」になる。
【CD7~CD0】
チェックデジット
受信した1バイト目と2バイト目の排他的論理和 (XOR)。