实验十七 SK6812 RGB模块

实验十七 SK6812 RGB模块#

img#

实验说明

前面我们学习了插件RGB模块,利用PWM信号对模块的三个引脚进行调色。我们这个套价中,还有一个Keyes DIY电子积木 6812 RGB模块,但是这个SK6812 RGB 模块驱动原理不与我们前面学习过的插件RGB模块相同,而且只需要一个引脚就能控制,这是一个集控制电路与发光电路于一体的智能外控LED光源。每个LED原件其外型与一个5050LED灯珠相同,每个元件即为一个像素点,我们这个模块上有四个灯珠即四个像素,

实验中,我们分别使不同的灯亮出不同的颜色。

实验原理

从原理图中我们可以看出,这四个像素点灯珠都是串联起来的,其实不论多少个,我们都可以用一个引脚控制任一一个灯,并且让它显示任一种颜色。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。

数据协议采用单线归零码的通讯方式,像素点在上电复位以后,S端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器。这个6812RGB通讯协议与驱动已经在底层封装好了,我们直接调用函数的接口就可以使用。

image-20260421190014386

实验器材

img

img

img

img

img

Raspberry Pi Pico板*1

Raspberry Pi Pico扩展板*1

keyes DIY电子积木 6812 RGB模块*1

防反插3Pin*1

MicroUSB线*1

接线图

img

测试代码

/* 

 * Keyes Starter Kit for Raspberry Pi Pico

 * lesson 17

 * 6812 RGB LED

*/

#include"rgb.h"

 

RGB rgb(16,4);             //rgb(pin, num);  num = 0-100

///////////////////////////////////////////////////////////////////////////////////

void setup() {

 rgb.setBrightness(100);       //rgb.setBrightness(0-255);

 delay(10);

 rgb.clear();            //Turn off all leds  

 delay(10);

}

///////////////////////////////////////////////////////////////////////////////////

void loop() {

 while(1){  

  rgb.setPixelColor(0,255,0,0);    //rgb.setPixelColor(num,r,g,b);  num = 0-100

  rgb.setPixelColor(1,0,255,0);    //rgb.setPixelColor(num,r,g,b);  num = 0-100

  rgb.setPixelColor(2,0,0,255);    //rgb.setPixelColor(num,r,g,b);  num = 0-100

  rgb.setPixelColor(3,255,255,255);  //rgb.setPixelColor(num,r,g,b);  num = 0-100

  rgb.show();

  delay(1000);

 }

}

代码说明

这里使用到库函数img,库函数的添加方法请查看第三章第四小节。

我们介绍下主要的几个函数接口及功能:

**RGB rgb(16,4);**这个函数用来初始化6812RGB,16为引脚号,4为灯珠数

**rgb.setBrightness(100);**这个函数用来设置6812RGB显示的亮度,范围是(0~255),值越大,灯珠越亮,如果我们没有设置亮度,那么默认255,也就是最亮。

**rgb.clear();**这个函数用来清除显示

**rgb.setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b);**这个函数用来设置6812RGB的灯珠号也就是位置,及每颗灯珠的颜色。

**rgb.show();**这个函数用来设置显示6812RGB,是必要的,如果没有这条语句,灯珠将不刷新显示

测试结果

烧录好测试代码,按照接线图连接好线,上电后,我们可以看到模块上的四个灯珠分别亮红绿蓝白色,如下图所示。

img