切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 17346阅读
  • 94回复

[家电]单片机紫外线LED呼吸夜光荧光钟(开源) [复制链接]

上一主题 下一主题
离线kindzhon
 

发帖
165
M币
3382
专家
9
粉丝
19113
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-04-13
— 本帖被 青柠 设置为精华,作者+3000M币+5专家(2018-04-17) —
夜里醒了不想动手,想知道几点怎么办?LED钟当然好,但要接220V才行,而且要做个很大的才行。普通的钟表,一节1.5V电池能走一年,省电,也比较准,但晚上看不见,整个LED照着表盘一直亮着同样费电,而且对睡眠不好。



整个呼吸灯一直照着,稍微舒服点,但还是费电。后来想给时针分针各装个led,就行了,发现得无线供电,复杂,成本高,效率低。
后来想给表针刷点荧光粉,发现很贵很麻烦,还得配,最后干脆买夜光表针好了,几毛钱一套三个,要邮费,干脆买了10套。后来发现依旧坑爹,这东东照一天也就亮一分钟,晚上关了灯不是不亮。



查了所有夜光技术,只有氚管技术靠谱,号称亮25年,但太贵了,1.5mmX6mm最少30大洋,时针分针最少60-100mm,买不起。。。
突然想到干脆用紫外线每分钟照几秒荧光表针,让它储存能量,然后发荧光,能亮一分钟就好,这样既省电,还不影响睡眠,还能看清时间。对,就这么干吧。从老爸的验钞小手电筒上拆了个紫外光的LED,接在8脚的STC15单片机的正极和第七脚(P3^2)上,再给单片机正负极接上手机锂电电路就完成了。

程序很简单,设置最大掉电时间,约14.7秒,计数每5次即72秒呼吸灯方式照亮9秒,每天晚上亮8小时,每天23点上电亮到第二天7点,掉电电流约2ua,呼吸灯0-20ma,就算平均10ma,亮9秒,一天亮1745/5*9/3600=0.87小时,一天只用8.7mah,一块普通的手机2000mah锂电池用半年应该不成问题了。




动态效果图:




程序直接贴在下面了,有兴趣的看看。
另外请教大神们,这种用法时钟还用分频么?能更省电么?


//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//若无特别说明,工作频率一般为11.0592MHz
//紫外led每天晚上照亮8小时钟表夜光指针,每72秒呼吸灯方式照亮9秒。

#include "reg52.h"
#include "intrins.h"

//-----------------------------------------------

sfr WKTCL = 0xaa;                   //掉电唤醒定时器计时低字节
sfr WKTCH = 0xab;                   //掉电唤醒定时器计时高字节

sbit RED = P3^2;     //接LED,正极接正极,负极接P32

//sfr CLK_DIV     = 0x97;         //时钟分频寄存器
//-----------------------------------------------
void Delay(unsigned int t)
{
while(--t);
}
//渐亮再渐灭全程9秒
void huxi(void)
{
    unsigned int pwm , set = 2000 ;        
    for(pwm=1;pwm<set;pwm++)
    {
            RED    = 1;        //熄灭LED

             Delay(set-pwm);//延时长度,500次循环中从599减至1
             RED    = 0;

             Delay(pwm);//延时长度,500次循环中从1加至599
    }
      for(pwm=set-1;pwm>1;pwm--)
    {
             RED    = 1;        //熄灭LED

             Delay(set-pwm);//延时长度,500次循环中从599减至1
             RED    = 0;        

             Delay(pwm);//延时长度,500次循环中从1加至599
    }
}
void main()
{   int i=0;
    WKTCL = 255;                     //设置唤醒周期为
    WKTCH = 0xEF;                   //使能掉电唤醒定时器 大概14.7秒
  // CLK_DIV = 0x06;             //系统时钟为内部R/C振荡时钟/8
  huxi();
  RED=1;

    while (1)
    {

        PCON = 0x02;                //进入掉电模式
        _nop_();                    //掉电模式被唤醒后,直接从此语句开始向下执行,不进入中断服务程序
        _nop_();

     i++;
     if ((i%5==0)&&(i<1745))     //14.7秒一次i++ 每5次72.5秒 亮一次 1745是8小时
     {
         huxi();      //呼吸灯亮一次9秒
          RED=1;

      }
      if (i>=5663)i=0;     //24小时清零,后16小时每次14.7秒
    }
}




电路图:

本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共14条打赏M币+140
毒领疯骚 M币 +2 謝謝分享 2018-05-27
qingf2008 M币 +13 謝謝分享 2018-04-26
readonly M币 +15 创意真不错 2018-04-23
kinneng M币 +20 謝謝分享 2018-04-19
2005qq8 M币 +15 厉害啊,真是单片机学好走到哪里都不怕啊 2018-04-19
pcs3801634 M币 +1 原創內容 2018-04-19
girlstorm M币 +13 謝謝分享 2018-04-18
eros8269 M币 +13 謝謝分享 2018-04-18
q版虎斑猫 M币 +20 应该减少紫外线摄入 对皮肤不好 2018-04-17
吴鹏930 M币 +3 原創內容 2018-04-17
12

发帖
16077
M币
7554
专家
263
粉丝
240
只看该作者 1楼 发表于: 2018-04-13
请登录后查看
离线toppers

发帖
1765
M币
24
专家
3
粉丝
26
只看该作者 2楼 发表于: 2018-04-13
请登录后查看
离线维民所止

发帖
1351
M币
763
专家
2
粉丝
5
只看该作者 3楼 发表于: 2018-04-14
请登录后查看

发帖
1085
M币
2911
专家
0
粉丝
8
只看该作者 4楼 发表于: 2018-04-16
请登录后查看
离线ztrdiy

发帖
3687
M币
417
专家
3
粉丝
64
只看该作者 5楼 发表于: 2018-04-16
请登录后查看
离线飞向狙沙

发帖
13086
M币
7080
专家
48
粉丝
10374
只看该作者 6楼 发表于: 2018-04-16
请登录后查看
本帖最近打赏记录:共1条打赏M币+8
yanzl_ch M币 +8 精彩回帖 2018-04-17
离线kindzhon

发帖
165
M币
3382
专家
9
粉丝
19113
只看该作者 7楼 发表于: 2018-04-16
请登录后查看
离线触景情伤

发帖
3862
M币
28
专家
4
粉丝
70
只看该作者 8楼 发表于: 2018-04-16
离线ahyu99

发帖
2650
M币
5861
专家
5
粉丝
41
只看该作者 9楼 发表于: 2018-04-16
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个