シリアル通信で数珠繋ぎに制御できるフルカラーLEDといえばNeoPixelが有名です。今回実験してみるOST4ML5B32AというフルカラーLEDもシリアルで数珠繋ぎ制御できるのですがNeoPixelとは決定的に違います。OST4ML5B32Aは1本の信号線に中間電位を含めた3値を「載せて」通信。波形が気になる一品。
※「部品屋根性」投稿順Indexはこちら
OST4ML5B32A
Adafruit社のNeoPixelといえば1本の信号線に数珠繋ぎにLEDを接続して発色を制御できるので用途が広い製品群です。デバイスとしてはWS2812という型番のデバイスみたいです。WS2812のシリアル通信は、0と1を表現するのにパルス幅で規定してます。またRESETコードもありです。
一方、今回実験してみるOST4M5B32Aは、トポロジカルにはNeoPixelと同様の数珠繋ぎなシリアル接続が可能なのですが、0と1の規定は過激っす。
-
- ハイ、VDD電圧
- ロー、0V
- 通信してないとき、VDD/2
デジタル信号といっても3値論理です。複数の電位を使いわけるのはLCDパネルの制御などではフツーですが、マイコンで制御する「シリアル」通信としては異色の存在かもしれません。Optosupply社(香港)のホームページが以下に。
よゐこは「デジタル入力端子」に中間電位をダラダラかけ続けるのは貫通電流ヤバイんじゃね、と思うに違いありません。また「デジタル出力端子」で中間電位を作るには2本の信号を「ぶつけて」作り出す必要もあります。ぶつけたときに流れる電流、どんだけ?
規定はちょっち過激ではあるものの、動いております。毎度お世話になっております、秋月電子通商殿の通販ページが以下に。
マイコン内蔵RGBLED 5mm OST4ML5B32A (10個入)
LED1個をArduino接続
今回は、まずはお試しということで、上記の秋月電子通商殿のページに置かれているサンプルプログラム(Arduino用)をそのまま使わせていただくことにいたしました。とりあえず接続するLEDは1個だけ。やはりこういうときには、
Arduino UNO機
が業界標準。サンプルプログラムをそのまま書き込めば一撃で動作するハズ。
Arduino UNOとの接続回路は以下のとおり、「3値」信号を作り出すためにPin2とPin3を抵抗を介してですがショートさせています。やっぱりちょっと過激。
LED点灯確認
さて、Arduino UNO機とブレッドボード上に配置したOST4ML5B32Aが以下に。テストパターン的にはフルカラーLEDを3原色いれかわり点灯させてます。以下写真では青点灯みたいです。
気になる通信波形を観察したものが以下に。確かに中間電位がデフォで、1と0のときにパルスが出ております。
ちょっと気になるのは頭に0が出ているところ。サンプルプログラムのコード的には頭から1111と4発「1」が出てよさそうなんだが。なぜに?