8.PWM三色LED调色实验(第7组)

导入:

将红、绿、蓝LED作为假想的RGB三基色,用相加混合法配出指定的颜色,通过旋转可变电阻连续改变Led的颜色。


实验过程

(一)PWM三色LED调色原理

        LED调色温是改变不同光的比例。增加红光,色温变暖,增加蓝光,色温变冷。调节亮度, 改变流过LED的电流大小,电流大些,就亮些。反之就暗些。电流的调节,是用改变PWM来实现的。

(注:所谓PWM,就是脉冲宽度调整。脉冲宽度调整的方法,最根本的是改变决定其宽度的电阻与电容值的数值。RC的乘积大,则宽度会大些。具体要结合电路图来讨论。)

(二)实验过程

实验仪器:

控制器、USB下载线、大面包板、跳线若干、全彩LED灯、调节电阻

器材准备


实验步骤:

①如图所示连接电路

②改变电阻大小,观察LED灯颜色

连接电路

效果展示:

效果图


代码展示:

代码1

代码2
int R_Pin=11;int G_Pin=10;int B_Pin=9;//定义三个输出引脚并分别连接全彩LED灯的red,green 和blue 引脚void setup() {  // put your setup code here, to run once:pinMode(R_Pin,OUTPUT);pinMode(G_Pin,OUTPUT);pinMode(B_Pin,OUTPUT);//定义三个引脚为输出}void loop() {  // put your main code here, to run repeatedly:int i,j,k;for(i=1;i<=7;i++)//红灯逐渐变亮{  for(j=1;j<=7;j++)//绿灯逐渐变亮  {    for(k=1;k<=7;k++) Color(i,j,k);//蓝灯逐渐变亮    for(k=6;k>=2;k--) Color(i,j,k);//蓝灯逐渐变暗  }  for(j=6;j>=2;j--)//绿灯逐渐变暗  {    for(k=1;k<=7;k++) Color(i,j,k);    for(k=6;k>=2;k--) Color(i,j,k);  }  }for(i=6;i>=2;i--)//红灯逐渐变暗{  for(j=1;j<=7;j++)  {    for(k=1;k<=7;k++) Color(i,j,k);    for(k=6;k>=2;k--) Color(i,j,k);  }  for(j=6;j>=2;j--)  {    for(k=1;k<=7;k++) Color(i,j,k);    for(k=6;k>=2;k--) Color(i,j,k);  }}}void Color(int r,int g,int b)//全彩LED子程序{  analogWrite(R_Pin,36*r);  analogWrite(G_Pin,36*g);  analogWrite(B_Pin,36*b);  delay(100);}

(三)感悟

①由于调节电阻不好控制LED灯颜色,所以选择了三个470电阻进行实验。

②配色的时候看有些颜色看起来不是太正,有偏色现象,导致偏色的原因较多,LED温度不一样时,相同的电压值下也会有不同的颜色值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Arduino Due有14个数字I/O,6个模拟I/O,一个复位开关,一个ICSP下载口,7-12v电源供电。 ...
    麦牛2013阅读 3,389评论 0 8
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,408评论 0 2
  • basics analogreadserial bareminimum blink DigitalReadSeri...
    麦牛2013阅读 2,410评论 0 1
  • 周日看了一部电影《僵尸世界大战》,跟我们中国的僵尸片的差距很大,不得不提东西方的思维方式确实有所区别。这部电影讲的...
    雨系阅读 538评论 0 4
  • 山开水分相见 为消这万缕情由 笑这贪心不懂 静水深流
    忘了这是梦阅读 219评论 0 2