Arduino入门篇 第十三课:三色灯传感器模拟值实验

三色灯传感器实验

产品介绍:

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的模拟值

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值