找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10180|回复: 6
收起左侧

基于单片机的LED日光灯管PWM调光智能控制程序方案

[复制链接]
ID:76127 发表于 2015-4-5 01:00 | 显示全部楼层 |阅读模式
LED照明的应用推广今年在国内已全面展开,我认为LED相对于传统照明(白炽灯和荧光灯)最大的优势就是“可塑性”非常强。主要表现在:
   LED是相当环保的,也是大家公认的;
   LED不存在什么荧光灯管打光圈这些东东现象;
   LED还具有信息化的功能,可以让LED点亮照明,同时还可以让LED发射数码信息光线,让灯光成为信息的载体;
   LED的可调光性非常有用,对于高级写字楼要求的节能、低碳、恒定光照度,LED配合单片机就可轻易的实现,生产难度和可操作性是荧光灯管无法比拟的;
   LED可以实现心情调色变化,当心情差的时候按一下“智能心情键”,选择想要的空间色彩,散发压抑的心情;
   LED还可以实现家庭小Party场合,如动感K歌模式、生日模式、情人模式等照明模式,让生活变得多恣多彩;
   LED是低电压器件,当然用于太阳能是最理想的了;传统的照明需要升压器然后再供电给照明电器使用,这个过程无疑大大增大了线路中的损耗,真正供到照明系统的效率可能也仅有60%而已;但LED就不同了,可以直按用电池供电,不需要升压器了,效率提高到了90%以上,自然就更环保,更节能了!
当然,还会更多的创意产品出现,加快LED智能设计是LED以后设计的重点,也是工程师提升身价的必要条件。
本人基于对产品的好奇,在本人的WiCN开发板上设计了一款LED用PWM程序,可以实现100级调光,当配合RS485接口技术后,就可实现上位机控制下位机的群体节能照明控制!
试验程序如下(以下只是针对调光设计,当然可视化控制程序还要进一步写功能程序进去)!

  1. /////////////////////////LED调光用PWM程序(STC89C52RC/晶振11.0592M)

  2. #include <reg52.h>

  3. #define uchar unsigned char

  4. #define uint unsigned int

  5. #define V_TH0 0XFF

  6. #define V_TL0 0XF6

  7. #define V_TMOD 0X01

  8. sbit p11=P1^1;

  9. sbit p12=P1^2;

  10. sbit PWM2=P3^6;

  11. sbit PWM=P3^7;

  12. uchar a=30;

  13. uchar b=30;

  14. ////////////////////

  15. void delayms(uint i)

  16. {

  17.       uint nem;

  18.       for(nem=0;nem<i;nem++);

  19. }

  20. ///////////////////

  21. void main()

  22. {

  23. TMOD=0x01;

  24. TH0=(65536-10)/256;

  25. TL0=(65536-10)%256;

  26. EA=1;

  27. ET0=1;

  28. TR0=1;

  29. ////////

  30. while(1)

  31.       {

  32.        if(!p11)

  33.           {

  34.                delayms(700);

  35.                if(!p11)

  36.                {

  37.                     a++;

  38.                     b=100-a;

  39.                }

  40.           }

  41. ////////////

  42.           if(!p12)

  43.         {

  44.                  delayms(700);

  45.                     if(!p12)

  46.            {

  47.                              a--;

  48.                              b=100-a;

  49.                      }

  50.                }

  51. ///////////////////////////

  52.                if(a>99)a=1;

  53.                if(a<1)a=99;

  54.       }

  55. }

  56. /****************************************/

  57. void timer0() interrupt 1

  58. {

  59. static uchar c=0;

  60. TR0=0;

  61. TH0=(65536-10)/256;

  62. TL0=(65536-10)%256;

  63. ++c;

  64. if(c>=100)c=0;

  65. if(c<=b)

  66. PWM=0;

  67. else

  68. PWM=1;

  69. /////////////

  70. if(c<=a)

  71.   PWM2=0;

  72. else

  73. PWM2=1;

  74. TR0=1;

  75. }

  76. //////////////////////////////////////////
复制代码


试验图片如下;



图一:我的LED日光灯驱动器

图二:最大300mA电流

图三:最大250mA电流   


图四:最大180mA电流

图五:最大90mA电流


  图六:最大10mA电流


最大0mA电流


回复

使用道具 举报

ID:76892 发表于 2015-4-14 08:09 来自手机 | 显示全部楼层
这个不错
回复

使用道具 举报

ID:74143 发表于 2015-4-15 11:10 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:184049 发表于 2017-4-3 07:37 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:230894 发表于 2017-9-4 15:37 | 显示全部楼层
这个调节恒流电流值的方案,不节电、缩短led使用寿命。进而不环保。
回复

使用道具 举报

ID:232619 发表于 2017-9-16 01:06 | 显示全部楼层

很精致楼主很细心,谢谢分享。下载一个做一个玩一下
回复

使用道具 举报

ID:112693 发表于 2017-9-16 09:09 | 显示全部楼层
谢谢分享! 学习一下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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