使用WS2812B 4x4 RGB LED
材料準備
- Ameba x 1
- WS2812B 4*4 RGB LED x 1
範例說明
這個範例裡使用WS2812B4*4 RGB LED模組來點亮LED裡各種顏色的效果。我們需要的library有:
https://github.com/ambiot/amb1_arduino/raw/master/Arduino_libraries/AmebaLedStrip.zip
安裝library的方式請參考Arduino官方網站的教學文章將zip檔的library加入Ameba:
https://www.arduino.cc/en/Guide/Libraries#toc4
WS2812B除了VCC(3.3V)和GND,只有使用1條DATA線,RTL8195範例接線如下:
RTL8710範例接線如下:
我們打開範例 “File” -> “Examples” -> “AmebaLedStrip” -> “WS2812Bdemo”, 編譯並上傳至Ameba之後按下Reset按鈕,就可以在WS2812B上看到5顆LED被點亮的效果
程式碼說明
#define DIGITALPINNUMBER 5
定義Ameba的訊號輸出腳位,也就是要接到WS2812B的DATA IN,在這裡我們定義為D5。
#define NUM_LEDS 16
本範例使用的WS2812B為4*4的內嵌16顆LED,因此此參數定義為模組裡LED的總數。
ws2812b ledstrip = ws2812b(DIGITALPINNUMBER , NUM_LEDS);
初始化ws2812b,並且預先建構Ameba的訊號輸出腳位及ws2812b裡LED的總數。
ledstrip.begin();
ws2812b開始運作。
ledstrip.setPixelColor(5,0,10,0); 點亮編號5的LED為綠色
ledstrip.setPixelColor(2,0,0,10); 點亮編號2的LED為藍色
ledstrip.setPixelColor(1,10,10,10); 點亮編號1的LED為白熾色
ledstrip.setPixelColor(3,10,0,0); 點亮編號3的LED為紅色
ledstrip.setPixelColor(8,10,0,0); 點亮編號8的LED為紅色
使用setPixelColor(index, Red, Green, Blue)來點亮ws2812b的Led,需注意的是,模組內的LED編號由0開始,可參考下圖列出LED在模組內的編號。
ledstrip.show();
開始點亮指定的LED。
Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved. Terms of Use