何年か前に、8×8の小さ目のLCDマトリックスで、PICを使って流れるサインボードのおもちゃを作成しまし
た。ネットサーフィンをしていると、ちょっと大きめの8×8LCDマトリックスがめにとまりましたので、
思わず、いくつかポチってしまいました。
この一つのものと、4連のもの合計3つをアリでぽちりました。
4連のものは、赤と青を購入しました。
この、LCDは、MAX7219というコントロールIC(ドライバー)が使われていて、比較的たやすく、コント
ロールができるようで、arduinoだと、専用のライプラリーもいくつかあるようです。また、このLCDの
面白いのは、横に連結して使えることです。どのくらい連結できるのかわかりませんが、arduinoの設定
の項目には11個の記載がありましたので、もしかして、電源のこと考えないなら、11個ぐらい連結で
きるのかもしれません。
ライブラリーを使えばいいのでしょうが、MAX7219を直接コントロールしたくて、あれこれしらべました。
幸い詳しく書かれている諸兄のHPが見つかりましたので、ここを参考にいろいろやってみます。
いままで、いろんなもののコントロールに、SPI(シリアル通信)を使う記事も見かけましたが、実際は
どんなふうにするのかいまいち理解がおよびませんでしたが、なんとなく理解することができました。
諸兄のHPによれば、下記のようになるそうです。SPIは3本の線でやり取りします。CLK,Cs,DOUTの3本の
線で下記のようにやり取りをします。
・Load端子をLowにセット
-・CLK端子をLowにセット
+・15ビット目の値をDINにセット①
+・CLK端子をHighにセット ここでシフトレジスタの0ビット目に①の値がセットされます
+ つまり 00000000 0000000① がMAX7219のシフトレジスタに入ってま
+・CLK端子をLowにセット
+・14ビット目の値をDINにセット②
+・CLK端子をHighにセット ここでシフトレジスタがシフトし②が0ビット目に入ります
- つまり 00000000 000000①② が入ってます
これを繰り返して 16ビットすべて送信したら
LoadをHighにセットします
この瞬間シフトレジスタの値が 指定されてたレジスタに反映されます。
この流れを、プログラムに組んでやれば、基本的なデータの送信ができます。この送信の手順は、
のデータシートに記載のあるタイミング図をみればいいみたいですが、いままで、この意味がよく分かり
ませんでした。今となって、やっとその意味が分かりました。
このデータ送信も、arduinoだとSPI(シリアル通信)のライブラリーがあるので、簡単にできてしまうよう
なので、ちょっと、びっくりですね。