找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3871|回复: 0
打印 上一主题 下一主题
收起左侧

[创意改造]让LED灯拥有第二次"生命"!--多图杀猫

[复制链接]
跳转到指定楼层
楼主
ID:255732 发表于 2018-4-14 18:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
开头篇----------
在一个寒冷的夜晚,楼梯口的LED照明灯就下岗了。
下班回家发现楼道口一片漆黑。


就是这种垃圾灯,还用不到半个月。拆开后发现驱动整个烧坏了。(忘拍照了)


可是灯的外壳是完好的啊。改造~~坚决改造。
想你想你想我。。。
可以改造个床头灯, 应急灯, 充电宝,跳蛋....污污~(开玩笑)
应急灯这个可以有,还可以带10级调光,晚上开灯不刺眼。可以带无线集群遥控,长按集群键5秒,所有同接收版都亮灯,停电非常好用。也可以做充电宝。
那么问题来了,我不会写程序啊。


叮~百度去。。。
制作篇---------------------
-切割底部-


-钻孔-用洞洞板焊开关-

-焊单片机-


-放进壳体看看效果,还行-


-忽然想起没装充电板-装上-还有电量显示-


-翻箱倒柜找来以前买的18500锂电池1800mAh-


-组装-


-还行。就是暴力了些没办法,空间有限。
-装灯-


-整体-







-最后没图片了只能发些制作中试验图-



后来发展无线程序失灵了。导致第一次可以控制灯亮灭,第二次失灵。算了反正目前用不到。
我这个失败的程序就不发了,发些百度到的。
调光

单片机源程序如下:
  1. /***************************************************
  2. ****************************************************
  3.         名称:台灯
  4.         MCU:STC15F104W
  5.         日期:2014 /9/1
  6. *****************************************************
  7. ****************************************************/
  8. #include <REG52.H>
  9. #include "intrins.h"
  10. #define Uint unsigned int                            //宏定义
  11. #define Uchar unsigned char

  12. sfr INT_CLKO = 0x8f;                                //外部中断与时钟输出控制寄存器
  13. sfr AUXR = 0x8e;

  14. sbit KEY1=P3^0;                                        //亮度减
  15. sbit KEY2=P3^1;                                        //开机/关机/待机
  16. sbit KEY3=P3^2;                                        //亮度加
  17. sbit NPN=P3^3;                                        //控制端
  18. sbit IR=P3^5;                                        //红外线
  19. sbit LED=P3^4;                                        //指示灯


  20. Uchar Gears;                                    //20级档位
  21. Uchar PWM;

  22. void KEY();
  23. void Delay(Uchar a);
  24. /****************************************************
  25. ********主函数:调用子函数**************************/
  26. void main()
  27. {
  28.     Gears=0;
  29.     AUXR &= 0x7f;                                    //定时器0为12T模式
  30. //    AUXR |= 0x80;                                      //定时器0为1T模式
  31.     TMOD=0x02;                                        //定时器0 模式2
  32.     TH0=TL0=131;                                    //定时器0赋初值
  33.     ET0=1;                                            //打开定时器0中断
  34.     EA=1;                                            //打开总中断
  35.     TR0=1;                                            //定时器0启动


  36.     while(1)
  37.     {
  38.         KEY();

  39.     }

  40. }
  41. /*****************************************************
  42. ********子函数:按键函数****************************/
  43. void KEY()
  44. {


  45. //======================
  46.     if(KEY1==0)
  47.     {
  48.         Delay(19);
  49.         if(KEY1==0)
  50.         {

  51.             if(Gears==0)
  52.             {
  53.                 Gears=0;   
  54.             }
  55.             else
  56.             {
  57.                 Gears--;   
  58.             }
  59.             while(!KEY1);
  60.         }
  61.     }
  62.     else
  63.     if(KEY2==0)
  64.     {
  65.         Delay();
  66.         if(KEY2==0)
  67.         {


  68.         }
  69.     }
  70.     else
  71.     if(KEY3==0)
  72.     {
  73.         Delay(19);
  74.         if(KEY3==0)
  75.         {
  76.             Gears++;
  77.             if(Gears>20)
  78.             {
  79.                 Gears=20;
  80.             }
  81.             while(!KEY3);
  82.         }
  83.     }


  84. }
  85. /****************************************************
  86. ********子函数:延时函数***************************/
  87. void Delay(Uchar a)
  88. {
  89.     Uint b,c;
  90.     for(b=a;b>0;b--)
  91.     for(c=1000;c>0;c--);   

  92. }
  93. /****************************************************
  94. ********子函数:定时器中断函数*********************/
  95. void T0_time() interrupt 1
  96. {


  97.     PWM++;
  98.     if(PWM>Gears)
  99.         {
  100.             NPN=0;
  101.         }
  102.         else
  103.         {
  104.             NPN=1;
  105.         }
  106.         if(PWM>20)
  107.         {
  108.             PWM=0;
  109.         }
  110. }
复制代码


评分

参与人数 1黑币 +10 收起 理由
深蓝远景 + 10 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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