nRF52832が搭載されているMDBT42Qを利用して、WS2812(フルカラーLED)を制御する方法を書きます。
プラットフォームはMbedを利用します。
ライブラリ
参考 mbed-ws2812-nrf52github.comクラス名
クラス名 |
---|
WS2812 |
ライブラリの詳細
関数名 | 引数 | 戻り値 | 内容 |
---|---|---|---|
WS2812 | PinName pin | なし | コンストラクタ。ピン番号のみの指定でOK |
light | int color, int brightness | なし | LEDを指定された色と輝度で点灯させる |
lightBlink | int color, int brightness, float interval | なし | LEDを指定された色と輝度で間隔を指定して点滅させる |
lightOff | なし | なし | LEDを消灯する |
動かしてみる
WS2812 with MDBT42Q
#include "mbed.h"
#include "WS2812.h"
//LED
DigitalOut led1(P0_23);
//FullColorLED
WS2812 ws(P0_4);
int main()
{
while (true) {
//LED Operation
led1 = !led1;
//FullColorLED Operation
ws.light(0xFF0000,255);
wait(1);
//FullColorLED Operation
ws.light(0x00FF00,255);
wait(1);
//FullColorLED Operation
ws.light(0x0000FF,255);
wait(1);
//FullColorLED Operation
ws.light(0xFFFF00,255);
wait(1);
//FullColorLED Operation
ws.light(0xFF00FF, 255);
wait(1);
//FullColorLED Operation
ws.light(0x00FFFF, 255);
wait(1);
//FullColorLED Operation
ws.light(0xFFFFFF, 255);
wait(1);
ws.lightOff();
wait(1);
ws.lightBlink(0x0000FF, 255,0.125);
wait(3);
ws.lightBlink(0xFFFFFF, 255,0.125);
wait(3);
ws.lightOff();
}
}
これをMDBT42Qに書き込めばこんな感じに動きます。
コメントを残す