フルカラーで「色々」表示
PWMの回路
図のスイッチ回路を高速でオン/オフして半点灯状態を作ります。
色を合成する
赤・青・緑(R,G,B) の3色を適当な強さで混合すると、いろんな色を合成できます。赤と緑を混ぜると黄色、赤と青を混ぜると紫(ピンク)になります。人が見えるほとんどの色はこの混合でつくることができます。
プログラム
R,G,B の各色の値を0〜255の範囲で設定します。0は発色なし、255が最大の発色になります。最初、各端子に通電を開始し、以下、0〜255の繰り返しのなかで、消灯します。
0の場合は直後で、255の場合最後に消灯します。これを繰り返して、発色を行います。
フルカラーLED
フルカラーLEDはR,G,B 3色のLEDを一つのLED の中に封じ込んでいます。写真はOSTA5131A(OptoSupply社)です。上から2番目の一番長い線が共通のカソード(GND)で、上からR(赤)、GND、B(青)、G(緑)の順です。各色の発光強度を制御すれば、フルカラーの発色が可能です。
色により発光効率が異なる為、同じ電流を流しても白色にはなりません。許容最大電流は50mAです。
回路の実際
組み込みコンピュータの回路は次のようになります。PA5,PA4,PA3 の端子にR,G,Bの各色に対応するLEDを接続します。
強さの調整
混合するには、各色の強さを調整する必要があります。この調整を、一定の時間の中で発光している割合を変化させることで行います。
この方式をPWM(Pulse WIdth Modulation)と呼びます。光だけでなく、直流モータの制御にも利用できます
//r,g,b の値を定める(0〜255) //最初に点灯します //時間kがR,G,Bの値になると消えます output_high(PIN_A3);//最初に通電 output_high(PIN_A4); output_high(PIN_A5); for(k=0;k<=255;k++){ //時間になったら通電を止める if(k==r) output_low(PIN_A3); if(k==g) output_low(PIN_A4); if(k==b) output_low(PIN_A5); }