nRF52832とMbedでWS2812で制御する

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に書き込めばこんな感じに動きます。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください