「obnizのパーツライブラリを試す」シリーズでは、obnizのJavaScript SDKパーツライブラリに掲載されているパーツを実際に購入して試した結果をレポートします。
第2回は、コントローラチップとしてWS2811を使ったフルカラーLEDです。
- コントローラチップWS2811を使ったフルカラーLEDを試してみた。
- 数珠つなぎにした場合の動作原理を説明した。
- 数珠つなぎするLEDの数を増やし易いように配線を変更した。
- パーツライブラリに掲載されているプログラムが動作した。
- LEDを3つ繋げる例も試してみた。
パーツライブラリのページ
WS2811は、パーツライブラリの「LED」に分類されています。
パーツライブラリのページはこちらです。
購入先
パーツライブラリのページにはスイッチサイエンスと秋月電子通商の商品ページのリンクが掲載されています。私は秋月電子通商で購入しました。
ピン配置
ピンは4本あります。電源用がVDDとGNDの2本、通信用がDINとDO(DOUT)の2本です。
DIN | VDD | GND | DO |
DOとDINを接続することで数珠つなぎできます。
動作の仕組み
obnizから色情報の列をLEDに送ります。下図の例では、”赤、青、緑”を送っています。各LEDは、受け取った色情報の先頭の色を自分に設定し、残りの色情報を次のLEDに送信します。
下図の例では次のような動作になります。
- 1番目のLEDは”赤、青、緑”を受け取り、赤を自分に設定して、”青、緑”を2番目のLEDに送る。
- 2番目のLEDは”青、緑”を受け取り、青を自分に設定して、”緑”を3番目のLEDに送る。
- 3番目のLEDは”緑”を受け取り、緑を自分に設定する。残りのデータがないので次には送らない。
配線の分析
まずはパーツライブラリのページに記載されている配線を分析してみます。
WS2811のパーツライブラリのページではこのような配線例が掲載されています。
obnizからの出力は右側のLEDに接続されています。これが1番目のLEDになります。プログラムを見ると
となっているので、LEDの向きは下図のようになっていると思われます。
1番目と2番目のLEDのGNDどうし、VDDどうしがそれぞれ接続され、1番目のLEDのDOと2番目のLEDのDINが接続されています。
注:LEDの端子名ではVDDと表記されていますが、obnizのWS2811パーツライブラリではvccと表記されています。どちらも電源の+側を表します。
実際の配線
ブレッドボードにある電源ラインを使って配線し、LEDの数を簡単に増やせるようにしてみました。obnizからのケーブルは+とーの電源ラインと、1番目(左端)のLEDのDINに接続しました。1番目のLEDのDOと2番目のLEDのDINは横方向のジャンパーケーブルで接続しています。
LEDの端子の並びが、パーツライブラリの配線とは逆になっているので注意してください。
プログラムを動かしてみる
パーツライブラリのwired( )関数の説明部分にあるプログラムを実行してみました。
実行するとLEDが赤と青で光ります。
LEDを3つに増やしてみました。プログラムのrgbsデータ配列にgreenを追加して実行してみました。
3番目のLEDは緑になるはずが青になり正しく動作しませんでした。しかし、”// blue”というコメントを削除するとうまく動きました。JavaScripの実行環境(runkit?)のコメント解釈がうまく動作していないのかもしれません。謎です。
パーツリスト
パーツ名 | 購入先 |
マイコン内蔵RGB 8mmLED PL9823-F8 | 秋月電子通商 |
ブレッドボードBB-801 | 秋月電子通商 |
ブレッドボード・ジャンパーワイヤー(オスーオス)10cmセット | 秋月電子通商 |
サンハヤト ジャンプワイヤキット SKS-100 | amazon |