WS2812B LEDの設定とインターフェイスの方法

さまざまな色のLED
 

 

笑いたい気分ですか? こんな話があります。私は数十年の経験を持つ設計技術者ですが、最近のLEDプロジェクトでほとんど絶望しそうになりまた。私はLEDというものが、制限用の抵抗と電源に接続された発光ダイオードと同様に単純なものだと思っていました。違うでしょうか?

 

数年前に私がアーキテクチャモデルの照明プロジェクトに従事していたとき、まさにそう考えていました。このプロジェクトでは、ビルディングと周囲をWS2812B LEDで照らすことになっていました。これは、その当時では新しく、一般的なタイプの統合LEDでした。しかし、従来のLEDとは異なり、このLEDを動作させるのは単に電源をオンにするだけでは終わりませんでした。これは、LEDが独自の方法でマイクロコントローラーと接続されるためです。マイクロコントローラーとLEDとの間の通信インターフェイスは単線式ですが、標準のUARTシリアルインターフェイスとは異なり、厳密なタイミングが要求されます。リアルタイムプロセッサーを使用してLEDの実行を望む私たちのようなナードの興味を引く以外に、WS2812B LEDは大量の赤、緑、青(RGB) LEDを必要とするプロジェクトに有用です。WS2812B LEDには、ストリップ内のLEDの数にかかわらず、接点が3つしかないため、配線が複雑化することを避けられます。

WS2812Bと従来型LEDとの相違点

私たちのようなEEにとって、LEDという単語は多くの場合、回路図のダイオードのシンボルを想起させます。このシンボルにはいくつかの矢印があり、それが発光ダイオードであることを示します。電子回路の設計において、ほとんどの技術者はアノードとカソードの接続を持つデュアルピンのLEDを使い慣れています。組み込みシステムの設計において、これらのLEDは簡単に制御でき、多くの場合に視覚的なインジケータとして使用されます。

しかし、WS2812Bは一般的なLEDとは異なります。これはRGB LEDで、単一の5050フォームファクタ内で、インテリジェントな制御チップと統合されています。単一ラインでの伝送プロトコルを対応し、LEDのRGB値を制御するため、クロックやデータ信号が最低で毎秒400kbitの速度でWS2812Bへ送信されます。WS2812Bは、LEDの「データ出力」ピンを別のLEDの「データ入力」ピンへ接続することにより、カスケード接続できます。

 

このため、WS2812Bを点灯するのは、LEDを5VのDC電源へ接続するだけでは終わりません。これを行っても何も起こりません。WS2812B LEDを動作させるには、コントローラーからWS2812B LEDへ有効なコマンドを送信する必要があります。WS2812B LEDの色を変えるのはコマンド1つだけで実行できますが、データパケットを送信するのが複雑です。時間固有のインターフェイスを使用しているため、ロジック0とロジック1のコマンドは対応する方形波パルス長により定義されます。このチュートリアルでは、各パルスの対応する長さについて、視覚的な例で示します。これに対して、従来型のRGB LEDは一定のパルス幅変調(PWM)信号を送ることで、輝度と色を維持します。

クロック信号のデータパラメーターを変調する必要から、十分なコーディング能力と、マイクロコントローラーへの理解が必要となります。ストリップ上の複数のLEDに適用するときは、問題がいっそう複雑になります。参考までに、標準的なWS2812B LEDのリールは通常5mで、合計150のLEDがあります。私の経験では、結局のところLEDのリールを複数接続し、一か所で制御することになります。それでは、これらの綺麗なLEDを制御するために、どのような方法が正解でしょうか?まず、適切なLEDコントローラーが必要です。

信頼性の高いWS2812B LEDコントローラーを設計するための要点

正しく動作するLEDコントローラーを設計することは、WS2812Bのストリップを駆動するための要点です。考慮すべき2つの重要な点は、WS2812Bがクロックとデータの両方を単一のラインで共有することと、サポートされる最低データ転送速度が毎秒400kbitということです。このため、ハードウェア設計者とファームウェア開発者の両方にとって、開発は複雑なものになります。

 

WS2812B LEDストリップ

WS2812B LEDのストリップ

 

 

RGBパラメーターのデータはクロック信号自体の中に変調されるため、LEDを駆動するマイクロコントローラー(MCU)の精度は不可欠です。このため、ファームウェア開発者の選択肢は2つです。大きな処理能力を持つハイエンドの32ビット マイクロコントローラーを選択するか、低予算の8ビット マイクロコントローラーを選ぶかです。32ビットのMCUを使用すると、ファームウェアの開発は簡単になりますが、コストがかなり増大します。一方で、8ビットのMCUはWS2812Bのデータパケットを正確に生成できない可能性があります。これらのLEDにとってタイミングは非常に重要で、約1マイクロ秒の相違でも、色が変わってしまいます。この問題を解決するため、LEDドライバーをアセンブリ原語で記述することもできます。それでも、ファームウェアの開発が高価で複雑な作業となることは覚悟する必要があります。

私の経験では、8ビットのMCUを選択しています。1回の開発に要するコストは、製造する全てのLEDコントローラーに32ビットMCUを搭載するコストよりはるかに少ないものになります。もちろん、このためには最初にアセンブリのプログラムで苦労する期間が発生します。どちらを選択するかは開発者次第です。

MCUを選択した後で、WS2812Bの信号は外部からの干渉に弱いことに留意する必要があります。設計のミスがあると、WS2812Bのデータ信号が破損する恐れがあります。ベストプラクティスとして、WS2812Bのデータを他の高速信号と絶縁する、配線を短く保つなどの原則に従う必要があります。

WS2812Bについて、これらの情報を知ることで、不必要な問題を回避できます

ここまでの話では、WS2812Bベースのプロジェクトを正しく完了するため必要なのは、適切なLEDマイクロコントローラーだけのように思えます。残念ながら、重要な点はまだあります。複数のWS2812Bのストリップを接続するようなプロジェクトでは、LEDを組み立てる技術チームは、いくつかの重要な詳細について理解しておく必要があります。

 

 

ワイヤーをハンダ付けしている人

ミスが1つあっても、WS2812Bのプロジェクトは破綻します
 

 

WS2812B LEDのストリップは多くの電流を消費し、150個のLEDでは2.0Vの電圧降下が発生します。つまり、LEDを駆動するには、十分な電流出力を持つ電源が必要で、さらにLEDストリップの安定した動作電圧を保証するため、150個のLEDごとに、正の5V~7Vの接続が必要です。これを行わないと、LEDの色に偏差が生じ、クライアントの不満を招くことになるでしょう。

WS2812Bのストリップを切断して手動で結線するとき、最高の精度でハンダ付けを行う必要があります。これは、データラインは干渉やドライジョイントに極めて弱いためです。WS2812Bが適切に接続されていないと、LEDは送信された色ではなく、ランダムな色で点灯するようになります。これは、プロジェクトで最も避けるべき結果です。

好む、好まざるにかかわらず、LED照明業界は変化しつつあります。WS2812Bであれ、同様な他のLEDであれ、LEDストリップを電源に接続さえすれば動作する時代は終わったことを理解する必要があります。プロジェクトを完了するには、PCB設計者の枠を超えたチームの労力が必要となります。

自分のWS2812B LEDコントローラーの設計を開始する準備は整いましたか? 高速なWS2812B信号の配線方法について疑問を抱いていますか? このようなプロジェクトにおいては特に、PCB設計のベストプラクティスを活用しましょう。CircuitStudioなどのプロフェッショナルなPCB設計ソフトウェアで、設計を行えます。

LEDに関するご質問は、Altiumの専門家までお問い合わせ下さい

 
 
 
 
 
 
Previous Article
Intelは、オリンピックで未来の電子通信技術を披露します
Intelは、オリンピックで未来の電子通信技術を披露します

Intelは成功のために全力を尽くしています。

Next Article
効率的なPCB実装のために、はんだリフロー炉を選択する方法
効率的なPCB実装のために、はんだリフロー炉を選択する方法

手ではんだ付けをするのが嫌なら、ピッタリの記事があります!

Altium Designerの無償評価版を入手する。

無償ダウンロード