しかし、前回作成したバーサライタには様々な問題がありました。
- ドットマトリクスが8×8と非常に粗いこと
- ドットマトリクスを回転させるため、表示させる立体がゆがむこと
そこで現在、ドットマトリクスを32×32に拡張し、水平に往復運動させるようなバーサライタを作成しています。
ただし、前回はArduinoのピンでドットマトリクスをそのまま制御することができたのですか、さすがに64本のピンはないのでシフトレジスタを用いることにしました。
シフトレジスタには74HC595を用いています。
このシフトレジスタを用いることで、クロックピン、データピン、ラッチピン、(リセットピン)の3本ないしは4本でドットマトリクスを制御することが可能となります。
ただし、今回は高速化のために、行と列でシフトレジスタを分けたため、8ピンで制御しています。
また、シフトレジスタだけではLEDを複数光らせるのに十分な電流を流せないため、トランジスタアレイを用いています。
こちらが、まだ途中ですが、ドットマトリクスを表示させてみたものです。
とりあえず、指定したピンを光らせることに成功しました。
今回、ドットマトリクスを光らせるために、32×32の配列を作ってデータを入れていたのですが、ArduinoのSRAMがどうやらオーバーフローしてしまうようで、フラッシュメモリにデータを書き込んで、読みだしてくる必要がありました。
実際、ドットマトリクスのデータなど非常に大量のデータを書き込む際にはSDカードなどに保存して、処理の合間に呼び出すような仕組みが必要なのかもしれません。
0 件のコメント:
コメントを投稿