アストロボーイへの道 
7. 7セグLED
トラ技などの雑誌の記事を見ると、表示用のボードとして7セグLEDが8個搭載されたボードを選んだ。値段が手頃なのは良かったが、添付され
た資料はなく、ネット上で関連記事を探すのに苦労した。国内の記事が見つからず、海外の英文の記事に頼らざるを得なかった。搭載されている制御用のチップ
は中国メーカーの物で、一応英文で書かれているが、分かりづらい英語で、部分的に中国語が混じり解読に苦労した。
(1)外観

図1.ボードの外観
(2)ボードの回路図

図2.ボードの回路図
(3)7セグLEDの回路図と文字表示
1つのモジュール内に4個の7セグLEDが搭載されており、7つのセグメントA, B, C, D, E, F,
GそれぞれにLEDとデータビットが割り当てられており、表示する文字はどのLED、即ち、どのビットを立てるかで決められる。各7セグLED毎にLED
のカソードが共通になっており、回路図でDIG1の場合、12ピンをGNDに落とすとDIG1が有効になり、LED AからGに対応した11, 7,
4・・・5ピンをHIGHレベルにすることでLEDが点灯する。

図3.7セグLEDの寸法と内部回路図
表1.表示文字コード表
文字
|
コード HEX
|
コード BIN
|
0
|
3F
|
0011 1111
|
1
|
06
|
0000 0110
|
2
|
5B
|
0101 1011
|
3
|
4F
|
0100 1111
|
4
|
66
|
0110 0110
|
5
|
6D
|
0110 1101
|
6
|
7D
|
0111 1101
|
7
|
27
|
0010 0111
|
8
|
7F
|
0111 1111
|
9
|
6F
|
0110 1111
|
A
|
77
|
0111 0111
|
b
|
7C
|
0111 1100
|
c
|
58
|
0101 1000
|
d
|
5E
|
0101 1110
|
E
|
79
|
0111 1001
|
F
|
71
|
0111 0001
|
H
|
76
|
0111 0110
|
J
|
0E
|
0000 1110
|
L
|
38
|
0011 1000
|
o
|
5C
|
0101 1100
|
P
|
73
|
0111 0011
|
q
|
67
|
0110 0111
|
r
|
70
|
0111 0000
|
s
|
6D
|
0110 1101
|
t
|
78
|
0111 1000
|
U
|
3E
|
0011 1110
|
y
|
66
|
0110 0110
|
なし
|
00
|
0000 0000
|
(4)LED DRIVER CONRROLLER (TM1638)
このチップの製造メーカーは TITAN MICRO ELECTRONICSという会社。チップの仕様書は ココ 。

図4.ArudinoからTM1638へのデータ転送タイミング
図4のように、ArudinoからTM1638のデータ転送は、STB信号がLOWの時に有効。CLK信号がHIGHになる時にDIO信号が取り込まれる。

Command1 : display mode, Command2 : data instruction,
Command3 : 表示レジスタ・アドレス, Data1〜n : 文字コード
図5.アドレス表示インクリメント モード時のデータ転送プロトコル

Command1 : display mode, Command2 : data instruction,
Command3 : 表示レジスタ・アドレス, Data1 : 文字コード
図6.固定アドレス書込 モード時のデータ転送プロトコル
表2.コマンド・コード(抜粋)
コマンド種別
|
命令
| コード HEX |
display mode
|
表示ON&輝度最大
| 8F
|
data instruction
|
アドレス自動インクリメント
| 40 |
data instruction |
固定アドレス書込 |
44 |
表3.表示レジスタ・アドレス
レジスタ名
|
アドレス HEX
|
7SEG 0
|
C0
|
7SEG 1
|
C2
|
7SEG 2
|
C4
|
7SEG 3
|
C6
|
7SEG 4
|
C8
|
7SEG 5
|
CA
|
7SEG 6
|
CC
|
7SEG 7
|
CE
|
(5) Arduino との接続

図7.Arduino との接続
(6)Arduinoプログラム
図4の転送タイミング( 図5と図6の Command, Data を転送 )は行#10〜16で関数化した。引数 value として表2のコードを与える。
図5と図6のデータ転送プロトコルは行#31〜39で関数化した。引数 ad には表3の表示レジスタ・アドレス、chr
には表1の文字コードが入る。レジスタ・アドレスと文字コードの対応は、予め、行#7, 8で配列を作っておき、行#55〜57で
for文を使って逐次代入した。
レジスタの初期化は行#18〜29で関数化した。アドレス自動インクリメント・モードを使用して、全レジスタに"0"を挿入する。
図5、6の Command1 display mode は行#49で予め表示ON、輝度最大にセットした。


図8.Arduino プログラム・リスト "AStro-1"表示

図9."AStro-1" 表示 結果
< Top Page に戻る >