せっかく、秋月電子で買ってきた マイコン内蔵RGB LED ですが・・・
自分で、制御プログラムを作れないか、いろいろとやってみましたが・・・
私の技術ではどうにもできないようです。
制御の仕組み自体は簡単で・・・「0」に当たる信号と「1」に当たる信号を1つのLEDに付き24ビット分送付するだけです。
しかも、その24ビットも単純にRGBのそれぞれに当たる明るさ(強さ)を送るだけです。
しかし、この「0」に当たる信号と「1」に当たる信号のタイミングが短すぎて、普通のArduinoの命令では実現が難しいようです。
(サンプルプログラムでは、アセンブラを利用しているようです)
最初は、ループとかで、短いタイミングのWaitを作れば良いのでは・・・とやってみたのですが、どうもうまくいきません。
ということで、独自で作ることはあきらめました。
ネットにある、サンプルのスケッチを使って、プログラミングをすることはできそうです。
例えば
#include Adafruit_NeoPixel TestLED = Adafruit_NeoPixel(4, 3, NEO_GRB + NEO_KHZ400);
void setup() {
TestLED.begin();
TestLED.show();
}
void loop() {
TestLED.setPixelColor(0, TestLED.Color(32,0,0));
TestLED.setPixelColor(1, TestLED.Color(0,32,0));
TestLED.setPixelColor(2, TestLED.Color(0,0,128));
TestLED.setPixelColor(3, TestLED.Color(32,32,32));
TestLED.show();
}
こんな感じです。
とにかく、信号線1本で、いくつものLEDを制御できるので・・・
なかなか便利です。
写真では、きれいに色が分かれていませんが・・・
ちゃんと、緑、赤、青、白に光ります。
同じパワーだと、青がちょっと暗いですかねぇ。
(というか、赤や緑が眩しすぎる・・・)
もちろん、フルカラーなので、中間色なども自由自在です。