Arduinoでは、LEDを点灯するときPWM出力で簡単に輝度を制御することができます。PWM出力ピンはArduino UNOあたりだと6個ほどあるわけですが、ピン1本にLEDを1個ずつつけていたら、貴重なピンの無駄遣いです。
マイコンを使ってたくさんのLEDを点灯する回路ではマトリックス方式が有名ですが、制御回路とラッチを組み合わせて、一つひとつ輝度値を書き込んでいく、なんて方法もあります。
そんなことを考えながら千石電商を探していて見つけたのが、TLC5940というPWM制御IC。ArduinoのPWM Shieldに使われていたり、ARDUINO PLAYGROUNDに記事があったり、その界隈では名の知れたデバイスなんだなぁ、と思っていたら、ちゃんとライブラリがあるんですね。
というわけで実験。
(1) ライブラリのインストール
こちらからダウンロード。
解凍したフォルダをArduinoのインストールフォルダの下のlibrariesの下へ置く。
(2) 回路
接続は下図のような感じで。
またFritzing使って描きました。TLC5940のパーツは登録されてなかったので、ICをインスペクターによる編集で、ピン数追加とピン名付加を行いました。
4.7kΩの並列は2kΩの代わりです。
LEDは基板に並べられるだけ並べて12個です。
(3) プログラム
12個のLEDを端から順番に点灯させるようにします。点灯したLEDはすぐに消えずに、徐々に暗くして残像のような効果を残してみます。
OSTA71A1DのようなフルカラーLEDと組み合わせても面白そうです。注意すべき点は、アノードコモンを選ぶ必要がある点です。
デイジーチェーン接続もできてチャンネルたくさん増やせるし、PWM制御自体、LED点灯に用途を限るものではありません。夢が広がります。
0 件のコメント:
コメントを投稿