

IchigoJam BASIC 1.4.1のバージョンから、WS.LED 命令が新しく追加されました(2019/12/6確認)。
この新しい命令は、WS2812BなどのフルカラーLEDを光らせるためのものです。
今回は、12個のフルカラーLEDが円形に並んだWS2812 12ビット RGBリングという部品を繋げて、プログラミングします。
他にもフルカラーLEDの個数が違う大小の円形や、テープ状や、スティック状のものなどがあります。
いずれもWS2812というLED部品が載っているものならば使うことができます。
※2019/10/29にテキスト「LEDでナナイロづくり2」も公開しました。こちらの記事も参考にしてください。
目次
P.1 やってみよう
P.2 色設定サブルーチン
P.3 Mission1 七色からひとつ色を選んで光らせる
P.4 Mission2 七色を順番に光らせる
P.5 Mission3 ひとつ置きにひからせる
P.6 Mission4 逆順に光らせる
応用プログラム
P.7 1.ルーレット
P.8 2.レベルメーター
P.9 3.傾き計
やってみよう!(つなぎ方と光らせ方)
IchigoJam基板とフルカラーLED基板は次の図のようにつなげます。

| IchigoJam側 | フルカラーLED基板側 |
| VCC(3.3V) | VCC |
| GND | GND |
| LED | IN |
| 繋がない | OUT |
その場合は、LED基板のVCCを、IchigoJam基板のCN5の5Vに繋いで、USBから電源をもらうようにしてもOKです。USB電源は5Vですが、LED部品のWS2812B自体は5V品なので問題はありません。
フルカラーLEDを光らせる、新しいIchgoJamの命令書式はつぎのとおりです 。
WS.LED 光らせるLED数 [, 繰り返し数]
今回は12個のフルカラーLEDが付いた基板を使いますので、次のように書きます。
WS.LED 12
これは、「12個のフルカラーLEDを点灯せよ」という意味の命令になります。
しかし、これだけでは光ってくれません。
あらかじめLED位置に相当する配列に、RGB色の明るさ値を設定する必要があります(参照:RGB 、配列 )。
次の例では、1番目のLEDが緑色に光ります。
[0]=100:[1]=0:[2]=0
OK
WS.LED 12
OK
■□□□□□□□□□□□
配列[0] = 100 (緑色を明るさ値100に設定)
配列[1] = 0 (赤色を明るさ値0に設定 = 光らない)
配列[2] = 0 (青色を明るさ値0に設定 = 光らない)
・フルカラーLEDの色は、緑・赤・青の各色の明るさの割合で決まります
・色の明るさの割合は、配列にGRB(緑赤青)の順に設定します
・明るさ値は、0~255までの値を指定します
2番目のLEDを光らせるときは、配列[3],[4],[5]にGRB値を設定して、WS.LED命令を実行します。
次の例では、2番目のLEDを赤色に光らせます。
明るさの値を200にしているので、緑色より明るく光ります。
1番目のLEDは配列値を変えていないので、そのまま緑色を点灯し続けます。
[3]=0:[4]=200:[5]=0
OK
WS.LED 12
OK
■■□□□□□□□□□□
このように、IchigoJamのプログラムでフルカラーLEDを光らせる時は、このように配列への設定とWS.LED命令の実行で行います。
しかしこれだと、各色の色の組み合わせが、約1600万色(緑256色×赤256色×青256色)もあります。
また、LEDの位置を配列で指定するのも複雑複雑ですので、これでは、プログラミングのも大変です。
そこで、色を7色に限定して、LEDの位置を簡単に指定できるように「LED色設定」サブルーチンを作りました(参考:GOSUB,GSB命令)。
