王超
在学习单片机编程过程中,用程序控制单片机引脚输出高、低电平,或调制信号控制发光二级管(LED)的学习实验非常的多,这些实验学习者需要按照电路圖焊接或者插接发光二级管,接线复杂繁琐,极容易导致短路和断路。而有些实现封装的发光二级管只能显示一种颜色,要实现多种颜色就要连接多根导线占用多个管脚,这些操作给初学者带来了许多的不便。
本文提出一种学习单片机控制的发光二级管封装电路,其接线简单仅使用2根导线就可以实现多种显示状态的单片机编程。
要实现上述功能就要弄清楚放光二级管的结构原理,发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米内分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。所以当电流反向输入时发光二级不工作,利用这一特性将2只不同颜色的发光二级管反向并联,这样通过2根导线的正负极切换就可以获得两种显示状态。
单片机针脚可以输出高低电平或pwm调制信号,结合上文提到的发光二极管反向并联电路,当单片机针脚输出高电平电流时,通过发光二极管正极流向负极正向发光二极管被点亮,当单片机输出低电平电流从反接的发光二极管流过该发光二极管被点亮。
设想一种可以多个单元个体随意组合的,通过程序控制仅只占用1~2个单片机引脚,即可实现多种状态显示的发光二级管灯珠。首先这种单片机程序控制的灯珠,包括:绝缘外壳、正反向双发光二级管电路及导线,绝缘外壳构成灯珠主体由透明材质构成,绝缘外壳上方设有等比例凸起,下方设有等比例凹槽,可以实现2只灯珠或多只灯珠或与其他零件的拼接。正反向双发光二级管电路为2只发光二极管正反向并联。导线为2芯导电电线,一端接正反向双发光二级管电路,另一端为与单片机连接的接头。
如上所述,这种由单片机控制可实现多种发光状态的发光二极管。利用发光二级管单项导电的特性,当2芯导线一芯获得正电压另一芯获得负电压时,电路中的一个正向发光二级管被点亮,当两芯导线互相调转正负极时,电路中的另一只反向发光二级管被点亮,此时发光颜色也随着不同的二极管被点亮也发生变化。当导线由单片机控制按照一定频率设定交替正负极,灯珠将按照这一固定频率交替变换颜色。当单片机发出的控制频率超过人眼所能辨别的频率时,此时灯珠将实现,2灯常亮的状态。
以arduino编程为例:
只要程序写入
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
运行结果为一只发光二级管被点了,而写入程序反向输出电流。
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
另一只发光二级管被点亮。如果2只发光二极管一只使用蓝色,而另一只采用红色发光二级管,就可以编写程序让红蓝灯交替点亮。
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
delay(500);
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
delay(500);
根据例程所示这种灯珠具有以下特点,第一两芯导线占用单片机2只或1只引脚的连接状态下通过程序控制,实现灯珠2种颜色的多种组合变换。如:单色灯亮、单色灯闪亮、单色灯渐亮或渐灭、双灯同亮、双灯交替亮、双灯渐亮或渐灭等多种状态。第二这种设计不仅会给单片机编程带来更多乐趣,而且使用中安全可靠,可在多种设计环境中使用。