LED マトリクスでのグラデーション表現

LED Matrix

前の実装では,ダイナミック点灯を利用することによって画素毎の輝度調整を可能にした。ただし,4段階程度しか表現できないうえ,目に分かるフリッカーが生じてしまっていた。これにいくつかの改良を加えたところ,8段階の表現が可能になり,そのうえフリッカーも軽減することができた。

改良したのは,タイマー割り込みを導入することによってダイナミック点灯の切り替えタイミングを厳密に設定できるようにしたという点と,その切り替え間隔を細かく調整したという点だ。この方式の場合,切り替え間隔は 3164 マイクロ秒,ないしは 3955 マイクロ秒に設定すると良いらしい。この値に根拠はなく,検証を繰り返すことによって求めた。 MAX7219 のリフレッシュレートが 800Hz とのことだったので,その倍数にすると良いのかと思ったのだけれど,それではあまり良い結果を得ることができなかった。

ソースコードGoogle Code 上で公開している

今回の結果によって, LED の駆動には MAX7219 があれば十分なことができるという確信を持つことができた。 LED はグラデーション表現が出来るか出来ないかによって大きな差が生じると考えているのだけれど, MAX7219 のような使いやすいパーツでそのギャップを越えることができるというのは,個人的にとても嬉しい事実だ。