3. LED の色を変えてみよう


光の三原色

前回の 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 色あります。 どういう値でどういう色になるかはこちらに一覧がありますが、自分で探したほうが楽しいかと思います。

LED 個別の制御

ここまで使っていた 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 個別に橙や藤色で点滅するようになるはずです。


[戻る]