LEDマトリックスを複数スタックして点灯させる「LEDマトリックス名札」を以前に作りました。
www.ichigojaman.jp
プログラムでLEDをスキャンしなくても手軽に点灯できるのですが、LEDマトリックス1個に付きLPC1114が1個必要です。今は世界的な半導体不足でLPC1114が入手困難なので、これは作りづらいです。
そこで手に入りやすいロジックICを使って、複数スタックもできる基板を作ってみました。
IchigoJam Rにつないで使います。(IchigoJam Sでは速度が全然足りません)
シフトレジスタ・74HC595と、行方向にスキャンするための3to8ラインデコーダ・74HC138の2個のICを搭載しています。
回路図は上のとおりです。
74HC595へ1列(8ビット)分の表示データをシリアル転送、74HC138で行方向へスキャンして表示します。
74HC595のQH'出力を次の基板のシリアル入力へつないでいるので、基板をスタックすると表示データを連続して送れます。
(2個スタックしたら16ビット分、3個スタックしたら24ビット分をシリアル転送した後に、ラッチクロックを送ればLEDへ出力される)
IchigoJam Rの出力ポートは、以下のようにつながっています。
IchigoJam R | LED64Stack-R | |
---|---|---|
OUT1~OUT3 | - | 74HC138・A~C入力 |
OUT4 | - | 74HC595・シリアル入力 |
LED | - | 74HC595・シリアルクロック |
OUT8 | - | 74HC595・ラッチクロック |
作って実際に動かしてみると、IchigoJam Rでもスキャン速度が足りなくて、LEDの輝度が低いです。
周囲を暗くすると、ちゃんと見えます。
2個スタックすると、シリアルで送るデータが8bit→16bitと2倍になるので、さらにスキャン速度が落ちてLEDが暗くなってしまいます。
周囲を暗くすると、ちゃんと見えます。
…というわけで、LEDがかなり暗くて、残念な結果になりました。
暗い場所なら結構見えるので、使い方次第かもしれません。
LEDマトリックスを1個点灯させればいいなら、以前に作った「LEDマトリックススキャン」の方が回路も簡単ですし、IchigoJam Sでも十分光らせることができます。そちらをお勧めします。
www.ichigojaman.jp
基板データ
- Fusion PCB用ガーバーデータ(ZIP)(88×76mm)
*同じ基板を4枚割り付けしています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2021 Shiro Saito (https://www.ichigojaman.jp)
プログラム
1文字表示
LEDマトリックス1個に指定した文字を表示します。
30行を改造すれば、表示する文字を変えられます。
10 @ARUN:'*Matrix Chr 20 CLV:VIDEO 0 30 A=ASC("A")*8 40 V=#900 50 FOR E=0 TO 7 60 D=PEEK(A+E) 70 M=128 80 FOR B=0 TO 7 90 POKE V,D&M>0 100 V=V+1:M=M>>1 110 NEXT 120 NEXT 130 @LOOP 140 V=#900 150 FOR Y=0 TO 7 160 FOR B=0 TO 7 170 OUT 4,PEEK(V) 180 LED 1:LED 0 190 V=V+1 200 NEXT 210 OUT 8,1:OUT Y 220 NEXT 230 GOTO @LOOP
2文字表示
文字コードが連続した2文字を、LEDマトリックス2個に表示します。
30行を改造すれば、表示する文字を変えられます。
10 @ARUN:'*Matrix Chr2 20 CLV:VIDEO 0 30 A=ASC("A")*8 40 V=#900 50 FOR E=0 TO 7 60 D=PEEK(A+8+E) 70 GSB @PUSH1 80 D=PEEK(A+E) 90 GSB @PUSH1 100 NEXT 110 @LOOP 120 V=#900 130 FOR Y=0 TO 7 140 FOR B=0 TO 15 150 OUT 4,PEEK(V) 160 LED 1:LED 0 170 V=V+1 180 NEXT 190 OUT 8,1:OUT Y 200 NEXT 210 GOTO @LOOP 220 @PUSH1 230 M=128 240 FOR B=0 TO 7 250 POKE V,D&M>0 260 V=V+1:M=M>>1 270 NEXT 280 RTN