UVLamp





工具和电子元件








电子元件 :
- 1 个 Microchip PIC 16F628A
- 2 个瞬时开关按钮
- 2 个晶体管 BS170
- 1 个晶体管 2N2222
- 2 个位数数字显示
- 1 个红色 LED 5mm
- 17 紫外线 LED 5 毫米
- 8 个 150 欧姆电阻
- 17 个电阻 68 欧姆
- 2 个电阻器 10 Kohm
- 1 个 220 欧姆电阻器
- 1 个蜂鸣器
- 2 块 PCB 板
- 缠绕线(例如:30 AWG)
其他组件 :
- 8 个垫片
- 一些螺丝
- 1 个 PVC 管帽 (100 mm)
- 1 个 PVC 管套 (100mm)
- Heath 收缩管
工具:
- 钻头
-烙铁 -焊丝
- 将代码注入微芯片 16F628(例如 PICkit 2)的程序员
如果您想修改代码,我建议您使用 Microchip MPLAB IDE (免费软件),但您还需要 CCS 编译器 (共享软件)。您也可以使用其他编译器,但您需要对程序进行许多更改。但我会给你提供。HEX 文件,以便您可以将其直接注入微控制器。
原理图

这是使用 CADENCE Capture CIS Lite 创建的原理图。 组件的作用说明:
- 16F628A : 管理输入/输出和倒计时时间的微控制器
- SW1:设置定时器设置按钮 - SW2:启动按钮
- FND1 和 FND2 : 数字显示以指示倒计时时间
- U1 和 U2 : 用于数字显示(多路复用)的功率晶体管
- Q1 : 为 UV LED 供电的功率晶体管
- D2 至 D18:UV LED
- D1:状态 LED,当 UV LED 通电时亮起
- LS1 : 倒计时结束时发出声音的蜂鸣器
在试验板上进行计算和原型设计





让我们根据上面的原理图在面包板上组装组件,并对微控制器进行编程!
在组装整体之前,我将系统分为几个部分: - 用于 UV LED 的部件
- 用于显示管理的部件
- 用于管理按钮和灯光/声音指示器的部件
对于每个零件,我计算了不同组件的值,然后在面包板上检查它们的正确作。
UV LED 部分: LED 通过电阻器连接到阳极上的 Vcc (+5V),并通过晶体管 Q1 (2N2222) 连接到阴极上的 GND。
对于这部分,只需计算晶体管具有足够电流以使其正确饱和所需的基极电阻器。我选择为每个 UV LED 提供 20mA 的电流。有 17 个 LED,因此将有 17*20mA=340mA 的总电流从集电极穿过晶体管到发射极。
以下是技术文档中用于进行计算的不同有用值:Betamin=30 Vcesat= 1V(大约...)Vbesat=0.6V
知道晶体管集电极和 Betamin 集电极上的电流值,我们可以从中推断出晶体管基极上的最小电流,使其饱和:Ibmin=Ic/Betamin Ibmin=340mA/30 Ibmin=11.33mA
我们采用系数 K=2 来确保晶体管饱和:
Ibsat=Ibmin * 2
Ibsat= 22.33mA
现在让我们计算晶体管的基极电阻值:
Rb=(VCC-VBESAT)/IBSAT 卫星
Rb=(5-0.6)/22.33mA
Rb=200 欧姆
我从 E12 系列中选择一个标准值:Rb=220 欧姆 原则上,我应该选择标准化值等于或低于 200 欧姆的电阻器,但我在电阻器的值上没有太多选择,所以我选择了最接近的值。
显示管理部分:
显示段限流电阻的计算 :
以下是技术文档(数字显示和 BS170 晶体管)中用于计算的不同有用值:
Vf=2V
如果=20mA
电流限制值的计算 :
r=Vcc-Vf/如果
R=5-2/20mA
R=150 欧姆
我从 E12 系列中选择一个标准值:R=150 欧姆
多路复用管理:
我选择使用多路复用显示技术来限制控制显示器上的字符所需的电线数量。 有一个显示对应于十位数字,另一个显示对应于个位数。这种技术很容易实现,以下是它的工作原理(例如:显示数字 27)
1 - 微控制器在 7 个输出上发送信号,该输出对应于要显示的 10 位数字(数字 2)的字符 2 - 微控制器激活提供对应于 10 位的显示的晶体管 3 - 延迟 2ms 4 - 微控制器停用提供对应于 10 位的显示的晶体管 5 - 微控制器在 7 个输出上发送信号,这些信号对应于要为数字显示的字符单位(数字 7) 6 - 微控制器激活晶体管,该晶体管提供与单位 7 相对应的显示 - 延迟 2ms 过去 8 - 微控制器禁用提供与单位相对应的显示的晶体管
并且这个序列非常快速地循环重复,因此人眼无法感知其中一个显示器关闭的时刻。
按钮和灯光/声音指示器部分:
这部分的硬件测试非常少,计算就更少了。
计算出状态 LED 的限流电阻: R=Vcc-Vf/If R=5-2/20mA R=Vcc-Vf/如果 R=5-2/20mA R= 150 欧姆
我从 E12 系列中选择一个标准值:R=150 欧姆
对于按钮,我只需检查一下,由于微控制器,我是否能够检测到按下作,并增加显示屏上的按下次数。我还测试了蜂鸣器的激活,看看它是否正常工作。
让我们看看该程序如何处理这一切......
程序

该程序使用 MPLAB IDE 以 C 语言编写,代码使用 CCS C 编译器进行编译。
代码有完整的注释并且很容易理解,如果您想了解它的工作原理或想要修改它,我让您下载源代码。
唯一有点复杂的可能是用微控制器的定时器来管理倒计时,我将尝试足够快地解释原理:
微控制器每 2ms 调用一个特殊函数,这就是程序中名为 RTCC_isr() 的函数。 此功能管理显示器的多路复用以及倒计时的管理。如上所述,每 2 毫秒更新一次显示,同时每 2 毫秒调用一次 TimeManagment 函数并管理倒计时值。
在程序的主循环中,只需管理按钮,正是在此功能中,设置了倒计时值和开始点亮 UV LED 和倒计时的按钮。
焊接和组装


















我将整个系统分布在 2 块板上:一块板支持 UV LED 的电阻,另一块板支持所有其他组件。然后,我添加了垫片来叠加卡片。 最复杂的事情是焊接上板的所有连接,特别是因为显示器需要大量的电线,即使有多路复用系统......
我用热熔胶和热缩护套加固了连接和电线,以获得最干净的结果。
然后,我在 PVC 帽上做了标记,以便尽可能地分布 LED,以获得最均匀的光线。然后我用 LED 的直径钻孔,在图片上你可以看到中心有更多的 LED,这是正常的,因为灯主要用于在小物体上发光。
最后,我焊接了一个母 USB 连接器,以便能够使用手机充电器或外部电池为灯供电(例如,通过我家里的公对公电缆......
系统作图

这是系统如何工作的图表,而不是程序。这是某种迷你用户手册。我已将图表的 PDF 文件作为附件。











