obniz

obnizのパーツライブラリを試す:WS2811を使ったフルカラーLED

「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のパーツライブラリのページではこのような配線例が掲載されています。

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