数码之家

 找回密码
 立即注册
搜索
查看: 3991|回复: 16

[另类] 10年前的作品 利用单片机控制紫外线灯消毒

[复制链接]
发表于 2020-2-19 16:02:08 来自手机浏览器 | 显示全部楼层 |阅读模式
这个玩意在家里用了快10年了 居然还没有坏。
在数码之家老站 应该还有这个帖子  现在转来看看。

基于STC单片机的紫外线消毒灯
一直想弄个紫外线消毒灯 ,放在家里用了,  淘宝弄了一套 灯管加灯座  有臭氧的
因为紫外线太强 对人体不好, 加上臭氧味道难闻   所以消毒的时候房间里面不要有人
于是就利用了手中的闲置设备 51单片机+继电器 弄了个定时器
主要工作为通电后 1分钟后开启紫外线灯 24分钟后关闭 程序很简单 就不上代码了
有点大材小用 , 不过反正手头上片子也多  闲置不如利用了
后来又做了个15F04的 体积就更小了一点。

准备材料如下:
1:紫外线灯和灯座一套
2:51最小系统一套 这次懒得焊接了, 直接用成品
3:STC 89C51RC一片
4:以前留下的继电器模块一个
5:闲置手机充电器一个(5V)
6:盒子一个 也算以前留下的
7:杜邦线 电烙铁 热胶枪等等

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

打赏

参与人数 2家元 +20 收起 理由
小鼯 + 10 謝謝分享
风间尘 + 10

查看全部打赏

发表于 2020-2-19 16:36:11 | 显示全部楼层
加个显示屏。定义下按钮。可以量产的高级时间定时器。:lol:
回复 支持 反对

使用道具 举报

发表于 2020-2-19 17:15:00 | 显示全部楼层
这灯管 是2脚的? 怎么驱动, 应该 不是直接220V 点亮的吧。。。
回复 支持 反对

使用道具 举报

发表于 2020-2-19 19:45:23 来自手机浏览器 | 显示全部楼层
两个延时触发器应该就可以实现吧,用双555,通电后一个延时开启,一个延时关闭。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 10:13:57 来自手机浏览器 | 显示全部楼层
snk_kyo 发表于 2020-2-19 16:36
加个显示屏。定义下按钮。可以量产的高级时间定时器。

现在有很多成品的 WIFI插座什么的可以直接用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 10:14:48 来自手机浏览器 | 显示全部楼层
风铃夜思雨 发表于 2020-2-19 17:15
这灯管 是2脚的? 怎么驱动, 应该 不是直接220V 点亮的吧。。。

没错 直接220V驱动,所以我用了继电器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 10:15:28 来自手机浏览器 | 显示全部楼层
njchg567 发表于 2020-2-19 19:45
两个延时触发器应该就可以实现吧,用双555,通电后一个延时开启,一个延时关闭。 ...

应该可以  不过对我来说 写程序更方便一点。
回复 支持 反对

使用道具 举报

发表于 2020-2-20 14:59:28 | 显示全部楼层
本帖最后由 风铃夜思雨 于 2020-2-20 15:07 编辑

你看看我这灯管插头和你的是否一样,  不敢直接220V啊。。。一直认为要驱动板的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-20 17:19:04 来自手机浏览器 | 显示全部楼层
风铃夜思雨 发表于 2020-2-20 14:59
你看看我这灯管插头和你的是否一样,  不敢直接220V啊。。。一直认为要驱动板的



其实都是一样的灯 就是表面是透明的石英玻璃 紫外线可以穿透  不用再通过荧光粉转换成可见光了
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-20 17:48:12 来自手机浏览器 | 显示全部楼层
紫外线 254nm才能照射杀菌,紫外线灯有臭氧的波长又不同了
回复 支持 反对

使用道具 举报

发表于 2020-2-20 20:35:15 | 显示全部楼层
jinesc 发表于 2020-2-20 17:19
其实都是一样的灯 就是表面是透明的石英玻璃 紫外线可以穿透  不用再通过荧光粉转换成可见光了 ...

晕,  我就是想问问你   我这灯管插头和你的是否一样,  不敢直接220V啊

你说这些没用的干嘛哦 :dizzy::dizzy:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-21 23:06:26 来自手机浏览器 | 显示全部楼层
本帖最后由 jinesc 于 2020-2-21 23:07 编辑
风铃夜思雨 发表于 2020-2-20 20:35
晕,  我就是想问问你   我这灯管插头和你的是否一样,  不敢直接220V啊

你说这些没用的干嘛哦 : ...


一样的  灯座 里面有整流器  不能直接用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-21 23:12:50 来自手机浏览器 | 显示全部楼层
623109779 发表于 2020-2-20 17:48
紫外线 254nm才能照射杀菌,紫外线灯有臭氧的波长又不同了

紫外线杀菌灯的发光谱线主要有254nm和185nm两条。其中254nm的是无臭氧波段紫外线,185nm是有臭氧波段紫外线。

无臭氧的紫外线灯是隔绝了185nm的紫外线。
臭氧也是一种不错的消毒剂。缺点就是要通风 。
回复 支持 反对

使用道具 举报

发表于 2020-2-22 00:07:25 | 显示全部楼层
jinesc 发表于 2020-2-21 23:06
一样的  灯座 里面有整流器  不能直接用。

噢,有整流器,  那是什么样的,能晒图出来么, 我一直不知道这种灯管用什么去点亮, 找不到相关资 料
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-22 07:53:31 来自手机浏览器 | 显示全部楼层
风铃夜思雨 发表于 2020-2-22 00:07
噢,有整流器,  那是什么样的,能晒图出来么, 我一直不知道这种灯管用什么去点亮, 找不到相关资 料 ...

我不高兴拆了 你找个H型灯管的台灯看看吧。或者上淘宝看看。
回复 支持 反对

使用道具 举报

发表于 2020-2-22 11:02:43 | 显示全部楼层
jinesc 发表于 2020-2-22 07:53
我不高兴拆了 你找个H型灯管的台灯看看吧。或者上淘宝看看。

好吧。。。。。。。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-27 11:09:55 | 显示全部楼层
发一段 那时候用15F104 写的代码  分享一下

  1. #include "STC15F104E.H"
  2. #define On  0
  3. #define Off 1
  4. sbit Led   = P3^3 ;
  5. sbit Relay = P3^4 ;
  6. unsigned char Led_TimeCount ;
  7. unsigned char Timer0_5Ms ;
  8. bit Timer0_1S_Flag ;
  9. /*******************************************************************/
  10. void Timer0_Init(void)        //5毫秒@12.000MHz
  11. {
  12.     AUXR |= 0x80;        //定时器时钟1T模式
  13.     TMOD &= 0xF0;        //设置定时器模式( 16位自动重装 )
  14.     TL0 = 0xA0;        //设置定时初值
  15.     TH0 = 0x15;        //设置定时初值
  16.     TF0 = 0;        //清除TF0标志
  17.     TR0 = 1;        //定时器0开始计时
  18.   ET0 = 1;
  19.     EA  = 1;
  20. }

  21. void Timer0_Isr(void) interrupt 1 using 0
  22. {
  23. if ( ++Timer0_5Ms>= 200 )
  24.           {
  25.            Timer0_5Ms = 0 ;
  26.             Timer0_1S_Flag  = 1 ;
  27.             Led =  On;
  28.           }
  29. if (  Led==On) {
  30.                Led_TimeCount++ ;
  31.                if ( Led_TimeCount >=10 )  
  32.                {
  33.                 Led_TimeCount = 0 ;
  34.                               Led = Off ;
  35.                }
  36.             }
  37. }

  38. void main (void)
  39. {
  40. unsigned int Second ;
  41. unsigned char Hour ;
  42. unsigned char Relay_TimeCount ;
  43. Relay = Led = Off ;
  44. Timer0_Init();
  45. while(1)
  46.          {
  47.           if ( Timer0_1S_Flag )
  48.                           {
  49.                   Timer0_1S_Flag = 0 ;
  50.                                     if ( Relay == On ) {
  51.                                                     Relay_TimeCount++ ;
  52.                                                                 if ( Relay_TimeCount >= 5 )
  53.                                                                          {  
  54.                                                                             Relay_TimeCount = 0 ;
  55.                                                                             Relay = Off ;
  56.                                                                          }         
  57.                                                              }                                    
  58.                                  if ( ++Second>=3600 )  //这里原来为3600秒
  59.                                       {
  60.                        Second = 0 ;
  61.                        if ( ++Hour >= 12)
  62.                                                   {
  63.                              Hour = 0  ;
  64.                              Relay = On ;                                                            
  65.                             }
  66.                       }
  67.                 }
  68.          
  69.           }
  70. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-6 23:56 , Processed in 0.093600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表