目录
Ⅰ 简介
发光二极管简称为LED。由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。
当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED和无机发光二极管LED。>当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED和无机发光二极管LED。
LED最初用于仪器仪表的指示性照明,随后扩展到交通信号灯。再到景观照明、车用照明和手机键盘及背光源。后来发展出微型发光二极管(micro-LED)的新技术,其将原本发光二极管的尺寸大幅缩小,用可独立发光的红、蓝、绿微型发光二极管成阵列排列形成显示阵列用于显示技术领域。微型发光二极管具有自发光显示特性,比自发光显示的有机发光二极管(Organic Light Emitting DiodeOLED)效率高、寿命较长、材料不易受到环境影响而相对稳定。
Ⅱ 工作原理
发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。不同的半导体材料中电子和空穴所处的能量状态不同。当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。常用的是发红光、绿光或黄光的二极管。发光二极管的反向击穿电压大于5伏。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流。
发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。
Ⅲ 发光二极管原理图及结构图
ps:发光二极管最核心的就是PN结,它实现了发光二极管只能单向流通,即从P极流向N极,
Ⅳ 使用方法
-
电路原理图
-
接线说明
以Arduino UNO R3为例,发光二极管的正极连接板上的2号引脚,负极连接板上的GND引脚,在电路中串联一个1KΩ的电阻,防止电压过大导致元件的损坏。(正极连接的信号引脚可根据需要在代码中修改)
详细代码:
/******************************************
* 作者:会电焊的ESP32
* 项目:点亮LED灯
* 难度:@
******************************************/
void setup() {
pinMode(2, OUTPUT); //设置2引脚为输出引脚
}
void loop(){
//实现亮-灭-亮-灭……的操作,中间间隔1s
digitalWrite(2, HIGH); //给2引脚接高电平,即通过2引脚发送电信号也就是通电
delay(1000); //延迟1000ms,即1s
digitalWrite(2, LOW); //给2引脚接低电平,即通过2引脚断开电信号也就是断电
delay(1000);
}
板上有部分引脚,如:3、5、6、9、10、11脚,它们可通过程序修改其PWM值,也就是可以通过修改PWM的值控制输入进LED灯的电信号大小,从而控制LED灯的亮度。将一个模拟数值写进Arduino引脚,即可通过这个操作来控制PWM值的大小。Arduino每一次对引脚执行analogWrite()指令,都会给该引脚一个固定频率的PWM信号,PWM信号的频率大约为490Hz。就Arduino UNO R3来说,5号引脚和6号引脚的PWM频率为980Hz。
接线方式同上,只需要将信号脚使用可修改PWM值的引脚即可。
/******************************************
* 作者:会电焊的ESP32
* 项目:用PWM值控制灯泡亮度,实现呼吸灯效果
* 难度:@
******************************************/
void setup() {
//调用analogWrite()函数前,不需要使用pinMode()函数来设置该引脚。这是与正常点亮LED的不同之处
// pinMode(3, OUTPUT);
}
void loop() {
int i;
for (i = 0; i <= 255; i++) { //通过for循环从低到高控制输入3号引脚的PWM信号数值,即LED亮度从暗到亮
analogWrite(3, i);
delay(15); //每次修改中间加入15ms秒的间隔
}
for (i = 255; i >= 0; i--) { //通过for循环从高到低控制输入3号引脚的PWM信号数值,即LED亮度从亮到暗
analogWrite(3, i);
delay(15);
}
}