WS2812B
名称
WS2812Bライブラリ(NeoPixel制御ライブラリ)
ヘッダーファイル #include <WS2812B.h>
/icons/hr.icon
概要
WS2812Bライブラリは、WS2812B RGB LEDストリップを制御するライブラリです。
WS2812B RGB LEDストリップの制御にはSPIオブジェクトを利用しています。
現バージョンではSTM32F103x系、システムクロック72MHzでの利用のみに対応しています。
(補足:2019/05/27)
BluePillボードにて、本ライブラリの動作確認を行いましたが、まともに動作しませんでした。
WS2812B接続方法
/icons/hr.icon
NeoPixcelモジュールをSPI1を利用する場合、次の結線となります。
NeoPixcelモジュール STM32ボード
VDD(LED用電源供給) :5V
DIN( 制御用データ入力) :MOSI1(PA7ピ ン)
DOUT(連結用データ出力) :ー
VSS(グランド) :GND
ライブラリ リファレンス
/icons/hr.icon
■ コンストラクタ
書式
WS2812B (uint16_t number_of_leds)
引数
number_of_leds :LEDストリップ数
戻り値
なし
説明
WS2812Bクラスのインスタンスを生成し、初期化を行います。
number_of_ledsには、LEDストラップ数を指定します。
■ ディストラクタ
書式
~WS2812B()
引数
なし
戻り値
なし
説明
WS2812Bクラスのインスタンスのリソースを開放します。
■ 初期化
書式
void begin(void)
引数
なし
戻り値
なし
説明
WS2812B RGB LEDストリップの制御のためのSPIの利用開始設定を行います。
■ 表示
書式
void show(void)
引数
なし
戻り値
なし
説明
バッファを内容をWS2812B RGB LEDストリップに反映します。
■ ピクセル色設定
書式
void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b)
void setPixelColor(uint16_t n, uint32_t c)
引数
n :ピクセル番号(0 ~ LEDストラップ数-1)
r :赤成分の色コード(8ビット)
g :緑成分の色コード(8ビット)
b :青成分の色コード(8ビット)
c :32ビットRGB コード
戻り値
なし
説明
指定したピクセル番号の色を設定します。設定はバッファ内にのみ行われます。
表示に反映させるには、show(void)を呼び出す必要があります。
setBrightness()にて輝度設定を行っている場合、32ビットRGB コードで指定時はその輝度設定を考慮した設定を行います。
■ 輝度設定
書式
void setBrightness(uint8_t level)
引数
level :輝度(0:最も暗い ~ 255:最も明るい)
戻り値
なし
説明
輝度の設定を行います。
設定はバッファのピクセルに対して設定します。
表示に反映させるにはshow()を呼び出します。
■ ピクセルデータクリア
書式
void clear()
引数
なし
戻り値
なし
説明
バッファ内のピクセルデータをクリアします。
表示に反映させるにはshow()を呼び出します。
■ LEDストリップ数の変更
書式
void updateLength(uint16_t n)
引数
n : LEDストリップ数
戻り値
なし
説明
LEDストリップ数を変更します。
変更前のピクセルデータは破棄され、初期化されます。
■ 輝度の値取得
書式
uint8_t getBrightness(void) const
引数
なし
戻り値
なし
説明
現在設定している輝度の値を返します。
■ LEDストリップ数
書式
uint16_t numPixels(void) const
引数
なし
戻り値
なし
説明
LEDストリップ数を返します。
■ 32ビットRGBコード変換
書式
static uint32_t Color(uint8_t r, uint8_t g, uint8_t b)
引数
r :赤成分の色コード(8ビット)
g :緑成分の色コード(8ビット)
b :青成分の色コード(8ビット)
戻り値
32ビットRGBコード
説明
R、G、Bをパックされた32ビットRGBカラーに変換します。
パックされたフォーマットは、LEDストランドの色順に関係なく、常にRGBです。
■ 32ビットWRGBコード変換
書式
static uint32_t Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w)
引数
r :赤成分の色コード(8ビット)
g :緑成分の色コード(8ビット)
b :青成分の色コード(8ビット)
w :輝度コード(8ビット)
戻り値
32ビットRGBコード
説明
R、G、B、Wをパックされた32ビットWRGBカラーに変換します。
LEDストラップの色順に関係なく、パック形式は常にWRGBです。
■ 表示更新可能チェック
書式
bool canShow(void)
引数
なし
戻り値
true:表示可能、false:表示不可
説明
LEDストラップの表示が可能状態を取得します。
データ転送、初期化直後にshow()を実行する場合はcanShow()にて確認の上、実行する必要があります。
/icons/hr.icon
このドキュメントはWS2812Bライブラリのプログラムソースを元にたま吉が執筆したものです。