WS2812Bマイコン内蔵RGBLEDの制御方法1

開発

はじめに

1つのLEDを点灯、光量や色を変化させたいと思います。データのOUTピンを観察するために、LED2つ分のデータを入力しています。

 

機能

外形

5mm角、高さ1.57mm

 

ピンアサイン

VDD・・・電源(+3.5V~+5.3V)
DOUT・・・コントロールデータ信号出力
VSS・・・グランド
VIN・・・コントロールデータ信号入力

 

LED1つ分の24ビットデータ構成

24bit x LEDの数 = 1フレームのデータbit数

 

bit0,1,リセットデータのシーケンス図

T0H・・・400±150ns
T0L・・・850±150ns
T1H・・・850±150ns
T1L・・・400±150ns
Reset・・・50μs以上

 

点灯させてみる

白色を点灯させる

白色データを2連続(101010h+101010h)で送ると1つめのLEDが点灯データとして吸収され、DOUTピンからは2つめ以降が出力される。

 

データシートのシーケンス図は無視してbit0とbit1のタイミングを実験してみました。実験で使用したこちらの制御マイコンの最小命令タイミングが68nsとなりますので、この倍数のタイミングで実験してみました。

bit0のタイミングは、T0Hが68~408nsまで認識OK、ただし全体が680ns以上でなければいけない。よって、T0H:68nsであれば、T0L:612ns以上必要。T0H:408nsであれば、T0L:272ns以上に設定する必要があります。

bit1のタイミングは、T1Hが476ns以上で、全体が680ns以上必要となります。よって、T1H:476nsであれば、T1L:204ns以上必要。T1H:612nsであれば、T1Lは68nsでもOK。

 

光の強さを変えてみる

白色光の強弱をつける

データ(202020h)

 

データ(808080h)

 

データ(FFFFFFh)

 

強弱を変更する方法

000000h(消灯)からFFFFFF(一番明るい)まで256段階の強弱が可能

 

光る色を変えてみる

赤色を点灯させる

データ(002000h)

 

色を変更する方法

色データは 緑256段階 x 赤256段階 x 青256段階 = 16777216色の表現が可能。

 

まとめ

データを連続で送ると1つめのLEDが点灯データとして吸収され、DOUTピンからは2つめ以降が出力される。2つめのLEDが次のデータを点灯データとして吸収し、3つめ以降がDOUTピンから出力される。これが繰り返される。

緑8ビット+赤8ビット+青8ビットの24ビットの並びを1つのLEDデータとして各ビットの大きさにより明るさが変わり、それらの組み合わせで色を変更できる。

次回はLEDの数を8個並べて制御したいと思います。1フレーム、2フレーム、・・・とLEDを動きのあるアニメーションを制作します。

 

タイトルとURLをコピーしました