通过R、G、B三个引脚的PWM电压输入可以调节三种基色(红/蓝/绿)的强度从而实现全彩的混色效果。用Arduino程序控制可实现酷炫的灯光效果。
# 部署
- RGB发光二极管的
R端子连接到OSEPP UNO的3号引脚。 - RGB发光二极管的
G端子连接到OSEPP UNO的5号引脚 - RGB发光二极管的
B端子连接到OSEPP UNO的6号引脚。 

# 程序搭建
- oseppBlock 积木知识
 

RGB发光二极管的定义积木。
定义名称和连接引脚。

设置RGB发光二极管的颜色积木。通过滑块调节,可以设置颜色,饱和度和亮度。

设置RGB发光二极管颜色积木。通过输入三种颜色的的数值来调节改变颜色,数值范围是0-255。此积木要放入上面积木颜色框里面。
- oseppBlock程序
 

拖动滑块RGB发光二极管就会显示和积木里面一致的颜色。
下面有一个颜色显示数据表,可以在程序里面输入数字来控制颜色。利用Arduino来控制输出需要的颜色。
把RGB颜色积木换成自定义数值的积木
- oseppBlock程序
 

- Arduino程序
 
void setup()
{
    //rgb1
    pinMode(3, OUTPUT); //定义3号引脚为输出模式
    pinMode(5, OUTPUT); //定义5号引脚为输出模式
    pinMode(6, OUTPUT); //定义6号引脚为输出模式
}
void loop()
{
    analogWrite(3, 255); //3号引脚输出红色全亮
    analogWrite(5, 0);   //5号引脚输出绿色0
    analogWrite(6, 0);   //6号引脚输出蓝色0
}
 2
3
4
5
6
7
8
9
10
11
12
13
14
表格里面给了RGB三个通道的数值,我们只要照着填上去,就可以能看RGB发光二极管显示出表格里的颜色。
只要给RGB三个颜色输入不同的数值,RGB发光二极管就能显示不同的颜色。那我们把这个数值改成随机数,RGB发光二极管就能随机显示颜色。
- oseppBlock程序
 

- Arduino程序
 
int R = 0; //定义整型变量R
int G = 0; //定义整型变量G
int B = 0; //定义整型变量B
void setup()
{
    //rgb1
    pinMode(3, OUTPUT); //定义3号引脚为输出模式
    pinMode(5, OUTPUT); //定义5号引脚为输出模式
    pinMode(6, OUTPUT); //定义6号引脚为输出模式
}
void loop()
{
    R = random(0, 256); //R等于0-256之间的随机数
    G = random(0, 256); //G等于0-256之间的随机数
    B = random(0, 256); //B等于0-256之间的随机数
    analogWrite(3, R);  //3号引脚输出R的随机数
    analogWrite(5, G);  //3号引脚输出G的随机数
    analogWrite(6, B);  //3号引脚输出B的随机数
    delay(500);         //延时500毫秒
}
 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 运行结果
把程序传上osepp UNO后,RGB发光二极管就会随机变换颜色。每隔0.5秒换一次颜色,你可以更改这个延时数值,数值越小变化越快。
# 解析
- 整型变量:   
int 
整型变量(int)是变量里的一种,它可以用来存储-32768~+32767之间的数字。在Arduino中,整型(int)是最常用的变量类型。变量就是告诉程序,这个值类型的和范围。


定义变量的类型名称和初始值积木。有整型变量,长整型变量,无符号整型变量,无符号长整型变量,字符变量,字节变量和浮点变量。
变量名称为 i 的值的积木。
改变变量值的积木,可以进行数学运算。
- 随机函数:  
random() 

随机函数 random(min, max) ,就是生成一个随机的数值。
参数
 min: 产生随机数的下限(包含此数值)
 max: 产生随机数的上限(不包含此数值)
返回值
在最小值min和最大值max-1之间的随机数值
← RGB三色灯-电位器控制 扬声器-发出声音 →