前回の ledz の話で、 7 0 0 は赤、0 7 0 は緑、0 0 7 は青という意味だと話しました。 この赤・緑・青は光の三原色と呼ばれるものです。 たいていの人間の目はこの三色を感じるセンサ (錐体) しか持っていないため、 この三色の組み合わせによって、あらゆる色を表現することができるのです。 みなさんが今、この画面を見ているディスプレイも、小さな赤緑青の発行体が並んで色を表現しています。
赤、緑、青はそれぞれ英語でレッド(Red)、グリーン (Green)、ブルー (Blue) といいます。このレッド・グリーン・ブルーの頭文字を取って RGB と表現することもあります。
ledz 7 0 0 の 7 0 0 は、赤の明るさを 7 (最大)、緑と青の明るさを最低 (0) にしろという命令だったのです。赤しか光らなかったので赤く見えて当然です。 同様の原理で 0 7 0 は緑、0 0 7 は青く見えたのです。 では 7 0 7 や 7 7 7、0 0 0 など他の組み合わせだとどうなるかというと
上の図から分かるように紫や白、黒 (何も光ってない) ように見えます。
本システムでは赤緑青各色の明るさは 0〜7 の 8 段階で設定できます。 すなわち 2 7 3 や 6 1 4 など様々な色を作ってみることができます。 色のパターンは全部で 8×8×8=512 色あります。 どういう値でどういう色になるかはこちらに一覧がありますが、自分で探したほうが楽しいかと思います。
ここまで使っていた ledz は 4 つの LED 全て同時に同じ色を指定していました。 しかしせっかく LED が四つあるのです。四つそれぞれに違う色を配色したいものです。 そういう時に使う命令が leda, ledb, ledc, ledd の四つの命令です。 それぞれ左上、左下、右下、右上の LED の色を制御します。 A が左上、B が左下、C が右下、D が右上という意味なんです。
以下のようなプログラムを走らせてみましょう。
START: leda 0 7 7 ledb 3 7 1 ledc 5 5 6 ledd 7 4 0 wait 25 ledz 0 0 0 wait 25 jmp START |
LED 個別に橙や藤色で点滅するようになるはずです。