目录
一、发光二极管介绍
1.发光二极管
发光二极管简称LED,由镓(Ga)和砷(As)、磷§的化合物组成的二极管,电子与空穴复合时辐射出可见光。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。
发光二极管与普通二极管一样都是由一个PN结组成,也具有单向导电性,在二极管加正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。
2.工作原理
发光二极管反向击穿电压5V,正向伏安特性曲线陡,使用时一定要串联限流电阻以此控制通过二极管的电流。限流电阻R计算公式: R=(E-VF)/I,其中E是电源电压,VF是LED正向电压降,I是工作电流。一般在5V的逻辑电路中,使用220 Ω \Omega Ω的电阻作为限流电阻。
3.内部结构与连线
发光二极管的两根连线中较长的一根为正极,连接电源正极。
LED灯连线方法:正向导通,负向截止。具体请查阅其他资料。
二、LED闪烁实验
1.实验器材
1个LED灯,220 Ω \Omega Ω电阻,面包板及跳线若干,Arduino UNO R3板及USB线。
2.实验连线
3.实验原理
设置数字8引脚为高电平点亮LED灯,延时5s,再设置数字8引脚为低电平熄灭LED灯,延时5s,人的肉眼看到的LED灯每5s闪烁一次,熄灭一次,可以将delay(x)的参数x修改为1000,则闪烁周期变为1s.
4.程序代码
int ledPin=8;
void setup() {
// put your setup code here, to run once:
pinMode(ledPin,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ledPin,HIGH);
delay(5000);
digitalWrite(ledPin,LOW);
delay(5000);
}
5.实验步骤
打开Arduino IDE,连接板卡的USB线,我是在虚拟机上运行程序的,连接USB线时,会跳出一个弹框,选择虚拟机设备即可,然后,选择你的板卡类型,以及端口。
然后写入你的程序代码,然后编译,编译成功之后,就可以上传,在面包板就可以看到闪烁的LED灯。
注意事项:面包板的连接路线,每一行是通路,每一列不导通,具体看面包板的内部连线结构,这一部分容易失误。
三、LED渐变实验
1.实验器材
LED灯1个,220 Ω \Omega Ω电阻1个,多彩面包板实验跳线若干。
2.实验连线
将发光二极管通过220 Ω \Omega Ω电阻连接到数字的第9引脚。
3.实验原理
PWM是使用数字手段模拟输出的手段,使用数字控制产生占空比不同的方波来控制模拟输出。占空比越高,灯的亮度越亮。
输出的电压值是通过通和断的时间进行计算的,计算公式:
输出电压=(接通时间/脉冲时间)
×
\times
×最大电压值
基本参数:
- 脉冲宽度变化幅度(最小值./最大值)
- 脉冲周期(1秒内脉冲频率个数的倒数)
- 电压高度(0-5V)
PWM接口:6个数字接口:3、5、6、9、10、11。
analogWrite(255)表示100%占空比,analogWrite(127)表示占空比大约为50%。
注意事项:PWM输出与5,6号端口的时候,会产生比预期过高的占空比。原因是PWM输出使用的内部时钟,millis()与delay()函数也在使用,实际占空比比预期大一点,所以,可能会产生5,6号端口输出无法关闭的信号。
4.程序代码
int brightness=0;
int fadeAmount=5;
void setup() {
pinMode(9,OUTPUT);
}
void loop() {
analogWrite(9,brightness);//把brightness的值写入9号端口
brightness+=fadeAmount;
if(brightness==0|brightness==255){
fadeAmount=-fadeAmount;//亮度翻转
}
delay(30);//延时30ms
}
5.实验结果
达到预期结果,可以修改fadeAmount的值(每次灯的亮度的渐变值),实验的结果也略微不同。