IchigoJamに8x8ドットのマトリックスLEDをつないで電光掲示板を作ってみました。
8x8ドットなので表示できるのは一文字分ですが、右から左に文字が流れて行くようにLEDを点灯させることで、電光掲示板を作ることができます。
電光掲示板に表示する文字は、IchigoJamバージョン1.2から使える文字列変数を使用しているので、変数の文字を変えるだけで簡単に変更することができます。
IchigoJamで使えるすべての文字が使えます。キャラ文字も使えます。
こちらに電光掲示板が動いている様子の動画があります。
サンプル動画
機材
- IchigoJam
バージョンは1.2以上が必要です。 - マトリックスLED
aitendoのI2Cマトリックスキットを使っています。
組立キットなので、はんだ付けが必要です。
IchigoJamにはI2Cで接続します。
接続方法
IchigoJam | -> | マトリックスLED |
---|---|---|
VCC | -> | VCC |
GND | -> | GND |
IN3 (またはSDA) | -> | SDA |
EX1 (またはSCL) | -> | SCL |
プログラム
MatrixLED.txt
1 'MatrixLED Sample
10 CLS:CLV
20 T="IchigoJam "
100 @INIT
110 C=#70:D=#783:M=#800
120 POKE #780,#21,#81,#E1,#00
130 FOR A=#780 TO #782
140 IF I2CW(C,A,1,#780,0)?"E"
150 NEXT
200 GSB @MSG
210 GSB @CLEAR
300 END
900 @CLEAR
901 LET [0],0,0,0,0,0,0,0,0
910 @MLED
911 Z=I2CW(C,D,1,M,16)
912 RTN
920 @SCROLL
921 FOR S=0 TO 7
922 FOR I=0 TO 7
923 IF L>0 THEN [I]=([I]<<1|[L+I]>>(7-S)) ELSE [I]=([R+I]<<(7-S)|[I]>>1)
924 NEXT
925 GSB @MLED
926 WAIT 1
927 NEXT
928 RTN
930 @MSG
931 L=10:R=0:?STR$(T)
932 FOR X=0 TO LEN(T)-1
933 FOR I=0 TO 7
934 [10+I]=PEEK(ASC(T+X)*8+I)
935 NEXT
936 GSB @SCROLL
937 NEXT
938 RTN
プログラムの解説
-
20行目
: マトリックスLEDに表示する文字を変数T
に代入します。 キャラ文字も含めてIchigoJamで使える文字を表示することができます。 末尾のスペースは、最後の文字をスクロールアウトさせるために入れてあります。 -
100~150行目
: マトリックスLEDの初期化を行います。 -
300行目
: プログラムを終了します。 -
200行目
:@MSG
サブルーチンを呼び出し、マトリックスLEDに文字を表示します。 -
210行目
:@CLEAR
サブルーチンを呼び出し、マトリックスLEDの表示を消します。 -
900~912行目
: マトリックスLEDを消灯する@CLEAR
サブルーチンです。910~912行目は@MSG
サブルーチンに続いています。 -
910~912行目
: マトリックスLEDを点灯する@MSG
サブルーチンです。 -
920~928行目
: マトリックスLEDの表示をスクロールさせる@SCROLL
サブルーチンです。 -
930~938行目
: マトリックスLEDに表示する文字を設定する@MSG
サブルーチンです。
電光掲示板の文字は、プログラム20行目の変数T
の文字を変えるだけで簡単に変更できます。
ぜひ好きな言葉を表示させて遊んでみてください。