nRF52832とMbedでWS2812で制御する

nRF52832が搭載されているMDBT42Qを利用して、WS2812(フルカラーLED)を制御する方法を書きます。
プラットフォームはMbedを利用します。

ライブラリ

参考 mbed-ws2812-nrf52github.com

クラス名

クラス名
WS2812

ライブラリの詳細

関数名引数戻り値内容
WS2812PinName pinなしコンストラクタ。ピン番号のみの指定でOK
lightint color, int brightnessなしLEDを指定された色と輝度で点灯させる
lightBlinkint 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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください