LoginSignup
1
1

More than 5 years have passed since last update.

IchigoJamと8x8マトリックスLEDでつくる電光掲示板

Posted at

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の文字を変えるだけで簡単に変更できます。
ぜひ好きな言葉を表示させて遊んでみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1