单片机/MCU论坛
直播中

fsdzdzy

11年用户 260经验值
擅长:嵌入式技术 控制/MCU opencv
私信 关注
[文章]

【BPI-Pico-RP2040 开发板】+ 板载RGB-LED点亮不同颜色

本篇来测试BPI-Pico-RP2040板载的GRB LED。

WS2812介绍

BPI-Pico-RP2040板载的RGB LED不是普通的3个颜色用3个引脚单独控制的LED,而是通过1个引脚进行RGB三种颜色的控制,这里用到的就是WS2812B型的LED。
1.png

WS2812B是一种智能控制LED光源,将控制电路和RGB芯片集成在一个5050个组件的封装中。内部包括智能数字端口数据锁存和信号整形放大驱动电路。还包括精密的内部振荡器和电压可编程恒流控制部分,有效保证像素点的光色高度一致。

数据传输协议采用单NZR通信模式。像素上电复位后,DIN端口从控制器接收数据,第一个像素采集初始24位数据,然后发送给内部数据锁存器,其他经过内部信号整形放大电路整形后的数据通过DO端口发送给下一个级联像素。

Arduino IDE安装NeoPixel库

为了能方便的控制WS2812B驱动的LED,这里找了一个对应的库——NeoPixel,在Arduino IDE中可以搜索并安装,安装完之后就可以使用这个库提供的函数功能进行RGB颜色的控制。
2.png

测试程序

写了一个简单的测试程序,依次显示7种颜色。

根据原理图,RGB-LED的引脚是3号引脚。

#include <Adafruit_NeoPixel.h>Adafruit_NeoPixel leds(/*NUMPIXELS*/1, /*PIN*/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);
  }
}

演示

红色
3.png

绿色
4.png

蓝色
5.png

演示视频:

BPI-Pico-RP2040-板载RGB彩灯测试_x264

更多回帖

发帖
×
20
完善资料,
赚取积分