步骤1:注意事项
- 灯发出的光应尽可能均匀,灯应照亮整个下方的物体。
- 灯泡的倒计时时间必须至少为1分30秒
- 灯泡应足够大,以覆盖长达6厘米的物体直径但不应太大。
- 灯泡必须易于移动。
第2步:工具和电子元件
电子元件:
- 2个瞬时开关按钮
- 2个晶体管BS170
- 1个晶体管2N2222
- 2个单位数字显示器
- 1个红色LED 5mm
- 17个UV LED 5mm
- 8个电阻150欧姆
- 17个电阻68欧姆
- 2个电阻器10Kohm
- 1个电阻器220欧姆
- 1个蜂鸣器
- 2个PCB板
- 包裹线(例如:30 AWG)
其他组件:
- 8个垫片
- 一些螺钉
- 1 pvc管帽(100mm)
- 1 pvc管套(100mm)
- 健康收缩管
工具:
- 钻头
- 烙铁
- 焊丝
- 将代码注入Microchip 16F628的编程器(例如PICkit 2)
如果您想修改代码,我建议您使用Microchip MPLAB IDE(免费软件),但您还需要CCS编译器(共享软件)。您也可以使用其他编译器,但程序中需要进行许多更改。但我会为你提供。 HEX文件,以便您可以将其直接注入微控制器。
步骤3:原理图
这是使用的原理图CADENCE Capture CIS Lite。
组件作用说明:
- 16F628A:管理输入/输出和倒计时时间的微控制器
- SW1:设置定时器设置按钮
- SW2:启动按钮
- FND1和FND2:数字显示以显示倒计时时间
- U1和U2:用于数字数字显示的功率晶体管(多路复用)
- Q1:功率晶体管为UV LED上电
- D2至D18:UV LED
- D1:状态LED,当UV LED为电源时亮起on
- LS1:倒计时结束时发出声音的蜂鸣器
步骤4:面包板上的计算和原型设计
让我们按照上面的原理图在面包板上组装组件并对微控制器进行编程!
我把系统分成了sev组装整体前的零件:
- 紫外线LED的一部分
- 显示管理的一部分
- 用于管理按钮和灯光/声音指示器的部件
对于每个部分,我计算了不同组件的值,然后在面包板上检查了它们的正确操作。
UV LED部分:
LED通过电阻连接到阳极上的Vcc(+ 5V),并通过晶体管Q1(2N2222)连接到阴极上的GND。
对于这部分,只需要计算晶体管需要一个基极电阻才能有足够的电流使其正确饱和。我选择为每个紫外LED提供20mA的电流。共有17个LED,因此总电流为17 * 20mA = 340mA,将从晶体管的集电极到发射极穿过晶体管。
以下是技术文档中用于计算的不同有用值: Betamin = 30 Vcesat = 1V(约。。.)Vbesat = 0.6V
了解晶体管和Betamin的集电极上的电流值我们可以从中推导出晶体管基极上的最小电流,使其饱和:Ibmin = Ic/Betamin Ibmin = 340mA/30 Ibmin我们采用系数K = 2来确保晶体管饱和:
Ibsat = Ibmin * 2
Ibsat = 22.33mA
现在让我们计算一下晶体管的基极电阻值:
Rb =(Vcc-Vbesat)/Ibsat
Rb =(5-0.6)/22.33mA
Rb = 200 ohm
我选择了E12系列的标准值: Rb = 220欧姆
原则上我应该选择一个标准值等于或小于200欧姆的电阻器,但我对电阻器的值没有多少选择,所以我采用了最接近的值。
显示管理部分:
计算显示段的限流电阻:
以下是来自技术文档(数字显示和BS170晶体管)的不同有用值进行计算:
Vf = 2V
If = 20mA
计算电流限值:
R = Vcc-Vf/If
R = 5-2/20mA
R = 150 ohm
我选择E12系列的标准值: R = 150 ohm
多路复用管理:
我选择使用多路复用显示技术来限制控制显示器上字符所需的线路数量。
有一个对应的显示器到十位数和另一个对应于单位数字的显示。这种技术实现起来非常简单,这里是它的工作原理(例如:显示数字27)
1 - 微控制器在7个输出上发送信号,对应于要显示的十位数字符(数字2)2 - 微控制器激活提供对应于数字3的显示器的晶体管 - 延迟2ms经过4 - 微控制器停用提供对应于数字5的显示器的晶体管 - 微控制器发送信号7对应于要为单元的数字显示的字符的输出(数字7)6 - 微控制器激活晶体管,该晶体管提供对应于单元7的显示 - 经过2ms的延迟8 - 微控制器禁用提供给晶体管的晶体管与单位对应的显示
此序列在循环中非常快速地重复,以便人眼不会察觉其中一个显示器关闭的时刻。
推动纽扣 和灯光/声音指示器部分:
这部分的硬件测试非常少,计算量也更少。
计算出状态导通的限流电阻:
R = Vcc-Vf/如果R = 5-2/20mA R = 150欧姆
我从E12系列中选择一个标准值: R = 150 ohm
对于按钮,我只是检查了我能够检测到感谢微控制器并增加显示器上的按压次数。我还测试了蜂鸣器激活以查看它是否正常工作。
让我们看看如何通过程序处理所有这些。。.。。.
步骤5:程序
该程序使用MPLAB IDE以C语言编写,代码使用CCS C编译器编译。
代码已完全注释,很容易理解我让你下载源代码,如果你想知道它是如何工作的,或者你想要修改它。
唯一有点复杂的可能是微控制器定时器的倒计时管理,我会尽快解释原理:
每个调用一个特殊的函数通过微控制器2ms,这是程序中称为RTCC_isr()的函数。
此功能管理显示的多路复用以及倒计时的管理。如上所述,每2ms更新一次显示,同时每2ms调用一次TimeManagment函数并管理倒计时值。
在程序的主循环中,只需管理按钮,在此功能中,有倒计时值的设置和开始点亮UV LED和倒计时的按钮。
参见下面的MPLAB项目的zip文件:
第6步:焊接和装配
我已将整个系统分布在2块板上:一块板支持UV LED的电阻,另一块板支持所有其他组件。然后我添加了垫片来叠加卡片。
最复杂的是焊接上板的所有连接,特别是因为显示器需要大量的电线,即使使用多路复用系统。。.。。.
我巩固了连接和带有热熔胶和热缩护套的电线,以获得最清洁的结果。
然后我在PVC盖上做了标记,以便尽可能地分配LED,以获得最均匀的光线可能。然后我钻了直径为LED的孔,在图片上可以看到中心有更多的LED是正常的,因为灯主要用于在小物体上发光。
(您可以在项目开头的演示图片上看到PVC管没有涂上盖子,我的妻子想要自己装饰它是正常的。。.。。.如果有一天我有照片我会添加它们!)
最后我焊接了一个母USB连接器,以便能够用手机充电器或外接电池为灯泡供电
我在实现过程中拍了很多照片,他们很“说话”。
第7步:系统操作图
-
led
+关注
关注
242文章
23146浏览量
658562 -
紫外线
+关注
关注
1文章
364浏览量
21219
发布评论请先 登录
相关推荐
评论