使用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。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用条款