Arduino小白学习记录:双色LED灯实验

目录

  • 一、介绍
  • 二、材料准备
  • 三、实验原理
  • 四、实验过程
  • 五、代码
  • 六、效果展示
  • 七、总结分析

一、介绍

双色发光二极管(LED)能够发出两种不同颜色的光,通常是红的和绿色的,而不是仅有一种颜色。它采用3mm或5mm环氧树脂封装。它有3个引脚,共阴极或者共阳极可用。双色LED具有两个LED端子或者引脚,以反向平行方式排列在电路中并通过阴极/阳极连接。正电压可以指向LED端子之一,使该端子发出相应颜色的光;当电压的方向反转时,发出另一种颜色的光。在双色LED中,一次只能有一个引脚接受电压。因此,这种LED经常用作各种设备(包括电视机、数码相机和遥控器)的指示灯。
Arduino小白学习记录:双色LED灯实验_第1张图片

二、材料准备

  • Arduino Uno 主板*1

  • USB数据线*1

  • 面包板*1

  • 双色LED模块*1

  • 跳线若干

三、实验原理

通过模拟信号端口控制LED灯的亮度,LED灯的颜色从红色变为绿色并闪烁混合颜色。
Arduino小白学习记录:双色LED灯实验_第2张图片

四、实验过程

首先,这个实验需要用到的主要元器件就是一个双色LED灯,非常简单,按图2.3连接好就可以了。
Arduino小白学习记录:双色LED灯实验_第3张图片
图2.3中的红色线连接在板子的11号引脚上,绿色线连接在板子的10号引脚上,蓝色的线作为接地(大家注意一下,实际接线时略有差异)。

按要求将线接好后就是图2.4的样子了,怎么样,是不是很简单呢!没错,我也这么觉得!
Arduino小白学习记录:双色LED灯实验_第4张图片
给板子接上USB连接线后,我们就可以进行程序部分的工作了。

五、代码

/************************************
 * 项目名字:双色LED实验
 * 接口列表:
 * Dual-color     Arduino Uno R3
 *    R                 11
 *   GND                GND
 *    G                 10      
 *编写:南友***********************/
int redPin=11;//选择板子的11接口作为LED的红灯输出信号接口
int greenPin=10;//选择板子的10接口作为LED的 绿灯输出信号接口
int val=0;
void setup()                //引脚分配
{
     
  pinMode(redPin,OUTPUT);    
  pinMode(greenPin,OUTPUT);
  Serial.begin(9600);
 }
void loop() 
{
     
  for(val=255;val>0;val--)
  {
     
    analogWrite(redPin,val);
    analogWrite(greenPin,255-val);
    Serial.println(val,DEC);
    delay(200);           //延时200毫秒
  }
 for(val=0;val<255;val++)
  {
     
    analogWrite(redPin,val);
    analogWrite(greenPin,255-val);
    Serial.println(val,DEC);//通过串口监视器读出val的值
    delay(200); 
  } 
}

六、效果展示

将程序上传到Arduino板子上后,打开右上角的串口监视器,我们可以看到窗口里的数字在疯狂地刷新着,从255到0,再从0到255,同时面包板上的双色LED灯也在跟着变化着。如图2.5和图2.6所示,分别是双色LED灯在红灯时和绿灯时的样子,通过观察串口监视器上的数字我们不难发现,在红灯时,数值在255附近;在绿灯时,数值在0附近。
Arduino小白学习记录:双色LED灯实验_第5张图片
Arduino小白学习记录:双色LED灯实验_第6张图片
同样,为了让这个过程显得更加直观,接下来我们通过一个视频来一起看看吧!

Arduino小白的学习记录:双色LED灯实验演示

七、总结分析

总体来说,本次实验并不难,主要的难点在于程序部分。因为要实现双色LED灯红灯和绿灯渐变变化的过程,我们需要用两个for循环,一个for循环让红灯从最亮的状态到最暗的状态,让绿灯从最暗到最亮;另一个for训练的作用就与之相反,这样就可以达到我们想要的效果了。

相信大家在实验过程中应该也发现了一个问题,也就是我在前面的视频中最后提到的一个问题,我们会感觉这个双色LED灯大多数时候都是出于红灯的状态,而很少亮绿灯,这和我们程序设计的结果有一定的出入。为了试着找到问题所在,我试着改变了一个延迟时间,结果发现把延迟时间调节得越小,观察到的绿灯的时间就越短,反之则可以观察到的绿灯的时间就越长。接着我通过从不同的方向观察LED灯后发现,其实还是有很多时间灯的颜色是绿色的,只是我们没有注意观察。所以我觉得程序并没有出错,灯也没问题,只是我们观察到的灯它的红色光太强,把绿灯光给掩盖了,把延迟时间调长一点可以让绿灯光明显一些的原因是这样可以让绿灯光的时间停留的时间久一点,所以就会有一种绿灯时间变长的错觉。当然,以上只是我个人通过观察分析后得出的观点,大家如果有其他想法也可以留言告诉我哦!

你可能感兴趣的:(Arduino小白的学习历程,arduino,led)