本篇来测试BPI-Pico-RP2040板载的GRB LED。
WS2812介绍
BPI-Pico-RP2040板载的RGB LED不是普通的3个颜色用3个引脚单独控制的LED,而是通过1个引脚进行RGB三种颜色的控制,这里用到的就是WS2812B型的LED。
WS2812B是一种智能控制LED光源,将控制威廉希尔官方网站
和RGB芯片集成在一个5050个组件的封装中。内部包括智能数字端口数据锁存和信号整形放大驱动威廉希尔官方网站
。还包括精密的内部振荡器和电压可编程恒流控制部分,有效保证像素点的光色高度一致。
数据传输协议采用单NZR通信模式。像素上电复位后,DIN端口从控制器接收数据,第一个像素采集初始24位数据,然后发送给内部数据锁存器,其他经过内部信号整形放大威廉希尔官方网站
整形后的数据通过DO端口发送给下一个级联像素。
Arduino IDE安装NeoPixel库
为了能方便的控制WS2812B驱动的LED,这里找了一个对应的库——NeoPixel,在Arduino IDE中可以搜索并安装,安装完之后就可以使用这个库提供的函数功能进行RGB颜色的控制。
测试程序
写了一个简单的测试程序,依次显示7种颜色。
根据原理图,RGB-LED的引脚是3号引脚。
#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel leds(1, 3, NEO_GRB + NEO_KHZ800);
uint8_t colortable[7][3] = {
{255, 0, 0},
{0, 255, 0},
{0, 0, 255},
{255, 255, 0},
{0, 255, 255},
{255, 0, 255},
{255, 255, 255}
};
void setup()
{
leds.begin();
}
void loop()
{
for (int i = 0; i < 7; i++)
{
leds.setPixelColor(0, leds.Color(colortable[i][0], colortable[i][1], colortable[i][2]));
leds.show();
delay(1000);
}
}
演示
红色
绿色
蓝色
演示视频:
BPI-Pico-RP2040-板载RGB彩灯测试_x264
|