2019-1-24 17:21:14 [显示全部楼层]
8154浏览
查看: 8154|回复: 1

[入门] Arduino学习(四) 双色LED实验

[复制链接]
本帖最后由 tyjjr 于 2019-1-25 10:40 编辑

Arduino学习(四) 双色LED实验图1
双色LED是一种可以显示二色颜色的LED灯,  可以有三种状态:  灭,  颜色1亮, 颜色2亮 .  根据颜色组合的不同,  分为红蓝双色,  黄蓝双色, 红绿双色等等.
双色LED是一种常用的LED. 常于指示状态, 比如:红色表示忙碌, 绿色表示Ready.

一, 双色LED( TWO-COLOR LED) 原理

双色LED其实就是把二个LED做在一个元件中( 内部原理图如下).  根据接线的不同,分为共阳型和共阴型二种。
Arduino学习(四) 双色LED实验图2
二个LED有四个脚, 但双色LED只有三个脚,  两个LED共用一个脚.
如果共用的是阳极,则称为共阳型. 如果共用的是阴极,则称为共阴型.  两者的使用电路是不同的.  选购\使用元器件是要注意区分.


二、双色LED灯实验(使用双色LED模块)

1, 双色LED模块

    如下图:
Arduino学习(四) 双色LED实验图3
图中模块有三个管脚,

其中  (图中左侧)标注‘-’的管脚接GND,中间的管脚接数字IO,(图中右侧)标注"S"的管脚也接数字IO
当中间管脚为高电平,则LED亮灯为一种颜色。
当S管脚为高电平,则LED亮灯为另一种颜色。

2, 接线

用杜邦线把模块三个脚分别接到开发板上,其中把 "-"线接 GND,   中间的脚接D5, "S"脚接D8

3, 在Arduino IDE中写个Arduino程序控制双色LED灯
[mw_shl_code=applescript,true]int pin1 = 5; //双色LED管脚1
int pin3 = 8; //双色LED管脚3

void setup() {
  pinMode(pin1, OUTPUT); //设置管脚1为输出状态
  pinMode(pin3, OUTPUT); //设置管脚3为输出状态
}

void loop() {
  //熄灭
  digitalWrite(pin1, LOW);  //设置管脚1为LOW
  digitalWrite(pin3, LOW);  //设置管脚3为LOW
  delay(1000); //等待1000毫秒

  //颜色1亮
  digitalWrite(pin1, HIGH);  //设置管脚1为HIGH
  digitalWrite(pin3, LOW);  //设置管脚3为LOW
  delay(1000); //等待1000毫秒
  
  //颜色2亮
  digitalWrite(pin1, LOW);  //设置管脚1为LOW
  digitalWrite(pin3, HIGH);  //设置管脚3为HIGH
  delay(1000); //等待1000毫秒

  //颜色1亮 + 颜色2亮 (形成混合色)
  digitalWrite(pin1, HIGH);//设置管脚1为HIGH
  digitalWrite(pin3, HIGH);  //设置管脚3为HIGH
  delay(1000); //等待1000毫秒
}[/mw_shl_code]
运行效果:   双色LED每隔一秒换一种颜色\状态 ( 灭 --> 颜色1亮 --> 颜色2亮 -->颜色1+颜色2混合色 )

三、双色LED灯实验(使用双色LED元器件自已搭电路)

1, 准备元器件和器材

    双色LED共阴型 一个
    面包板一块
    1K 电阻二个
     杜邦线若干

2, 双色LED电路原理图
Arduino学习(四) 双色LED实验图4
图中红框部分是共阴型双色LED, 它的中间管脚接GND,  两侧管脚分别接一个1K欧姆的阻流电阻,再接MCU的GPIO输出脚

3, 用面包板接线
Arduino学习(四) 双色LED实验图5
共阴型双色LED元器件(上图)有三个脚,中间的脚是阴极

接线如下图: 阴极接GND, 两侧两脚分别接1K欧姆电阻,再分别接D5, D8
Arduino学习(四) 双色LED实验图6
4, 在Arduino IDE中写个Arduino程序控制双色LED灯
[mw_shl_code=applescript,true]int pin1 = 5; //双色LED管脚1
int pin3 = 8; //双色LED管脚3

void setup() {
  pinMode(pin1, OUTPUT); //设置管脚1为输出状态
  pinMode(pin3, OUTPUT); //设置管脚3为输出状态
}

void loop() {
  //熄灭
  digitalWrite(pin1, LOW);  //设置管脚1为LOW
  digitalWrite(pin3, LOW);  //设置管脚3为LOW
  delay(1000); //等待1000毫秒

  //颜色1亮
  digitalWrite(pin1, HIGH);  //设置管脚1为HIGH
  digitalWrite(pin3, LOW);  //设置管脚3为LOW
  delay(1000); //等待1000毫秒
  
  //颜色2亮
  digitalWrite(pin1, LOW);  //设置管脚1为LOW
  digitalWrite(pin3, HIGH);  //设置管脚3为HIGH
  delay(1000); //等待1000毫秒

  //颜色1亮 + 颜色2亮 (形成混合色)
  digitalWrite(pin1, HIGH);//设置管脚1为HIGH
  digitalWrite(pin3, HIGH);  //设置管脚3为HIGH
  delay(1000); //等待1000毫秒
}[/mw_shl_code]
运行效果:   双色LED每隔一秒换一种颜色\状态 ( 灭 --> 颜色1亮 --> 颜色2亮 --> 颜色1+颜色2混合色 )
这个程序与使用双色LED模块是一样的.

课后练习题:
1,连接一个双色LED灯到Arduino开发板,编写一个程序,让LED灯来亮。
 用万用表测量一下,通过LED灯的电流是多少。限流电阻两端的电压是多少。LED灯两端的电压是多少
 如果要增加电流到10ma,限流电阻应改为多少? 修改电阻,看LED灯亮度有否变化,电流是否变化。
2,连接一个双色LED灯到Arduino开发板,编写一个程序,让LED灯上电时即开始亮颜色1,5秒种后亮颜色2。
3,连接一个双色LED灯到Arduino开发板,编写一个程序,让LED灯上电后闪烁颜色1,8秒种后闪烁颜色2,然后再5秒后常亮颜色

gada888  版主

发表于 2019-2-1 13:47:12

支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail