NeoPixelフルカラーLEDに限らず,LEDの発色はなかなか意図したようになりませんね。PC画面での設計とはかなりかけ離れた発色が特に三原色の混合時には起こります(^^;;;。

実際に色を発色させて,欲しい色のRGB値を調べれば良いという現物合わせの発想の装置を試作してみました。

混沌とした机の上の試作機です。RGBそれぞれの値をボリュームで調整してNeoPixelを光らせ,その値を読み取ります。



・PICAXE-20M2
AD変換で出力調整ボリュームのRGB値を8bitで読み取り,値をLEDにパルスを出すATtiny202と液晶ディスプレイ2004Aに出力します。

・ATtiny202
PICAXEからUARTシリアル通信でRGB値を受け取り,NeoPixelLEDにシリアル信号のパルスを出力するモジュールとして働きます。

・2004A液晶モジュール
 PICAXEからI2C通信で受け取った8bit のRGB値(0-255)を表示し,簡易なバーもつけてみました(^^)。

・RGB出力調整ボリューム
 10KΩのスライド抵抗で,0V-5Vに出力を変化させ,PICAXEはこれを0−255の8bitに変換します。

・NeoPixel フルカラ ーLED
NeoPixel系のLEDはLED1個ずつにマイコンが内蔵され,シリアル通信で送られてきたRGB各8bitの数値を反映して発色します。一度データを取り込むと次のデータが来るまで保持され,発色を続けるのが特長です。


以上のように近頃ごそごそとやっていた事を組み合わせて作ってみました。

NeoPixel系のLEDリングをATtiny202を使ってシリアル接続のモジュールにしてみた
NeoPixelフルカラーLEDで出したい色の三原色の配合・RGB値を探る装置を試作中
I2C接続の20x4キャラクタ液晶ディスプレイをライブラリのないPICAXEで動かしてみた


実際に操作してみると,光の色の世界はなかなかに難しいものだと実感できます(^^;;;;;

ま,RGBの出力値のバー表示はそれぞれの色のLEDでバー表示した方がより実感できて楽しそうですね。

また,動作が少し重たいのは液晶ディスプレイに付属しているI2CモジュールがあまりインテリジェントではないのでPICAXEからの世話がかかり過ぎているのも一因と感じます。

いっその事,ATtiniy1604ぐらいならPin数も足りるのでI2C通信のLCD専用のモジュールなどを新たに作った方がスッキリしそうです。


なにはともあれ動いたので,良かったです(^^)。

LEDの発色は各社によってクセがあるかもしれませんので,そういう現実的なチェックにも使えそうです。

もう少ししっかりした工作で,使いやすくしないといけませんね(^^;;;;;;。