三色灯传感器实验
产品介绍:
RGB三色灯就是由内部三个不同颜色的灯珠组成的一个灯。RGB灯分为共阴和共阳两种。我们这里用的是共阳的,四个引脚中最长的那个为阳极。其他三个分别为,红灯(R),蓝灯(B),绿灯(G)的阴极。我们通过控制三个灯两端的电压值可以控制灯的发光亮度,然后组合,让RGB灯发出不同颜色的光。
实验器件:
■ RGB三色灯:1个
■ 220Ώ电阻:3个
■ 多彩面包板实验跳绳:若干
Arduino入门手淘搜:524263
实验连线
将代码上传到开发板。
程序代码(直接打开对应例程即可)
//颜色跳变程序
int redPin = 11; // R 红色LED 控制引脚 连接到Arduino的 11脚
int greenPin = 9; // G绿色LED 控制引脚 连接到Arduino的 9脚
int bluePin = 10; // B蓝色LED 控制引脚 连接到Arduino的 11脚
void setup()
{
pinMode(redPin, OUTPUT); //设置redPin对应的管脚11为输出 Arduino入门手淘搜:524263
pinMode(greenPin, OUTPUT); //设置greenPin,对应的管脚9为输出
pinMode(bluePin, OUTPUT); //设置bluePin对应的管脚10为输出
}
void loop() // run over and over again
{
// Basic colors:
color(255, 0, 0); // 红色亮
delay(1000); // 延时一秒
color(0,255, 0); //绿色亮
delay(1000); //延时一秒
color(0, 0, 255); // 蓝色灯亮
delay(1000); //延时一秒
// Example blended colors:
color(255,255,0); // 黄色
delay(1000); //延时一秒
color(255,255,255); // 白色
delay(1000); //延时一秒
color(128,0,255); // 紫色
delay(1000); //延时一秒
color(0,0,0); // t关闭led
delay(1000); //延时一秒
}
void color (unsigned char red, unsigned char green, unsigned char blue) //颜色控制函数
{
analogWrite(redPin, 255-red);
analogWrite(greenPin, 255-green);
}
实验结论:
观察到RGB灯按照程序设置的颜色变化
//颜色渐变程序
int redpin=11;//定义LED接口
int bluepin=10;
int greenpin=9;
int redval;//定义LED变量
int blueval;
int greenval;
int i=0;
void setup()
{
pinMode(redpin,OUTPUT);//设置LED接口为输出接口 Arduino入门手淘搜:524263
pinMode(bluepin,OUTPUT);
pinMode(greenpin,OUTPUT);
pinMode(redval,INPUT);//设置LED变量为输入值
pinMode(blueval,INPUT);
pinMode(greenval,INPUT);
Serial.begin(9600);//连接到串行端口,波特率为9600
}
void loop()
{
i++;
if(i<200){
redval+=1;//红灯变亮
greenval-=1;//绿灯变暗
blueval=1;//黄灯不变
}else if(i<400){
redval-=1;//红灯变暗
greenval=1;//绿灯不变
blueval+=1;// 黄灯变亮
}else if(i<600){
redval=1;//红灯不变
greenval+=1;//绿灯变亮
blueval-=1; //黄灯变暗
}else{
i=0;//重新给i赋值进行新循环
}
analogWrite(redpin,redval);//给LED接口付模拟值
analogWrite(bluepin,blueval);
analogWrite(greenpin,greenval);
Serial.print(i,DEC);//显示出i的值
Serial.print( \" R:\");//分别显示出各个LED的模拟值
Serial.print(redval,DEC);
Serial.print( \" B:\");
Serial.print(blueval,DEC);
Serial.print( \" G:\");
Serial.println(greenval,DEC);
}
实验结论:
观察到RGB灯的颜色在渐渐变化,可以组合出多种颜色。
别显示出各个LED的模拟值