ArduinoとTLC5940で複数のRGB LEDを制御する
Arduinoで複数のRGBフルカラーLEDを制御してみようと思ったのですが、まずArduinoでPWM出力できるピンは6つしかなく、フルカラーLEDを1つ制御するには3つのPWM出力ピンを使う為、ArduinoだけだとフルカラーLED2つまでしか制御できないということになります。
そこで、もっと多量のPWM出力を制御できないか調べたところ、TLC5940というICから16ピン分のPWM出力を制御できるということが分かりました。さらにTLC5940どうしでデイジーチェーン接続していけば、32、48、、というようにPWM出力のピン数を増やしていけるみたいです。
そしてLEDのカソード側とTLC5940のPWM出力を繋ぐので、RGB LEDはアノードコモンのものが必要になります。
このLEDの足をブレッドボードに4つの導線に分けて刺そうとすると、あと1穴分幅が足りなくてブレッドボードに刺さりません。むむむ、もどかしいです。
他に良さそうなアノードコモンのRGB LEDを見つけれなかったので、このLEDの足に銅線をはんだ付けしてブレッドボードに刺せるようにします。(もっと簡単な方法があったのでしょうかね?)
お次は回路を組みます。
「Arduino 日本語リファレンス」のTLC5940のページにあった回路を参考に組みました。
ランダムな色で順番に光るようにした動画です。
Arduinoのコードはこちら
// "tlc_config.h"の値を下記に変更 // #define NUM_TLCS 2 #include "Tlc5940.h" #define MAX_BRIGHTNESS 4095 void setup() { Tlc.init(); } void loop() { int myR = random(4)*(MAX_BRIGHTNESS/3); int myG = random(4)*(MAX_BRIGHTNESS/3); int myB = random(4)*(MAX_BRIGHTNESS/3); //channelの 0 と 31 は未接続 for (TLC_CHANNEL_TYPE channel = 1; channel < (NUM_TLCS * 16)-2; channel += 3) { Tlc.clear(); Tlc.set(channel + 0, myR); Tlc.set(channel + 1, myG); Tlc.set(channel + 2, myB); Tlc.update(); delay(70); } }
今後はLEDの数をもっと増やしてテストを続けて行きたいと思います。
お金がかかります。ブルジョアの道楽です。
少々強引ですが、角型は斜めにすれば挿せます。
1C,2A,3D,4Bに足が来るようにしてみてください。
そんな手があったんですね!
情報どうもありがとうございます。