手电大家谈-手电筒爱好者之家

 找回密码
 注册成为会员,享受更多功能。

QQ登录

只需一步,快速开始

只需一步,快速开始

搜索
查看: 5905|回复: 18

求救!!小弟做了个PMW无极调光,发现无法驱动1W LED,求解

[复制链接]

该用户从未签到

发表于 2012-1-21 13:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册成为会员,享受更多功能。

x
本帖最后由 satelives 于 2012-1-21 17:42 编辑

    是这样的,我打算做个小台灯送给好朋友,方便晚上宿舍关灯后看书。之前做了一个1W小台灯,帖子发在了数码之家:http://www.mydigit.cn/read.php?tid=346436  ,我朋友反映晚上看书太亮了,很刺眼,所以寻思着弄个PMW无极调光,让他自己调节亮度。

    现在问题出来了,我用STC89C52单片机实验的时候,先用小草帽LED接上去,发现可以调光,当我加上ACM7135的时候发现不能调光了,要不最亮,要不不亮。。。。求高人指导
PMW输出口为  P0^0        两个按键为  P1^0  和  P1^1

图1:

   接上普通草帽LED,功能正常,能够无极调光

1.jpg

图2:
      加上7135,单片机的PMW输出口接到ACM7135的VDD端,发现1W LED不亮或者最亮,不能调光,但草帽LED能正常调光
2.jpg

图三:
        加了个8050三极管驱动,要不不亮,要不最亮,不能进行调光,但是草帽LED可以。

3.jpg


后来我寻思着是不是上拉电阻没接,于是在PMW输出端加了个10K的上拉电阻,连接到电源正,发现1W LED 一直是亮的


求高人指导一下,是什么情况?

程序如下:网上的

# include<reg51.h>
sbit  K1 =P1^0;                    //增加键
sbit  K2 =P1^1 ;                    //减少键
sbit  BEEP =P1^2 ;                //蜂鸣器
unsigned char PWM=0x12 ;   //赋初值
void Beep();
void delay_ms(unsigned char ms);
void delay(unsigned char t);
void main()
{  
     P1=0xff;
    TMOD=0x21 ;
    TH0=0xfc ;             //1ms延时常数,晶振为11.0592M
    TL0=0x66 ;            //频率调节
    TH1=PWM ;            //脉宽调节
    TL1=0 ;
     EA=1;
     ET0=1;
     ET1=1;
   
     TR0=1 ;
   while(1)
   {
     do{
            if(PWM!=0xff)
           {PWM++ ;delay_ms(10);}
           else Beep() ; // 当PWM值增加到最大值,蜂鸣器将报警。
         }
     while(K1==0); // 按K1,PWM值增加,则占空比减小,LED 灯渐暗。
     do{
           if(PWM!=0x01)
          {PWM-- ;delay_ms(10);}
           else Beep() ;// 当PWM值减小到最小值时,蜂鸣器将报警。
          }
     while(K2==0); // 按K2,PWM值减小,则占空比增加,LED 灯渐亮。
   }
}
// 定时器0中断服务程序.
//利用定时器控制产生占空比可变的PWM,晶振为11.0592M
void timer0() interrupt 1
{
    TR1=0 ;
    TH0=0xfc ;
    TL0=0x66 ;
    TH1=PWM ;
    TR1=1 ;
    P0=0x00 ;      //启动输出
}
// 定时器1中断服务程序
void timer1() interrupt 3
{
    TR1=0 ;
    P0=0xff ;     //结束输出
}
//蜂鸣器子程序
void Beep()   
  {
      unsigned char i  ;
      for (i=0  ;i<100  ;i++)
        {
          delay(100)  ;
          BEEP=!BEEP  ;                //Beep取反
        }
     BEEP=1  ;                            //关闭蜂鸣器
     delay_ms(100);
  }
// 延时子程序
void delay(unsigned char t)
{
    while(t--)   ;
}
// 延时子程序
void delay_ms(unsigned char ms)
{
    unsigned char i ;
    while(ms--)
     {
        for(i = 0 ; i < 120 ; i++) ;
     }
}

回复 dsu_marcocopyright:copyright

使用道具 举报

该用户从未签到

发表于 2012-1-21 15:08 | 显示全部楼层
LZ确定的输出是脉冲?
频率,占空比是多少?
回复

使用道具 举报

  • TA的每日心情
    开心
    2015-10-16 20:23
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    发表于 2012-1-21 15:27 | 显示全部楼层
    本帖最后由 一棒槌 于 2012-1-21 15:33 编辑

    高级啊···我小的时候直接用电位器来调光··哈哈
    回复

    使用道具 举报

    头像被屏蔽
  • TA的每日心情
    开心
    2015-11-25 09:28
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2012-1-23 15:35 来自手机 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-1-23 17:18 | 显示全部楼层
    本帖最后由 GREE 于 2012-1-23 19:28 编辑

    频率应该不是问题。

    39脚电平多少?图1中接LED高位,后面的却接LED低位。7135正常工作要Vdd大于2.6V,39脚电平不够吧。
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-1-25 10:48 | 显示全部楼层
    7135的频率和PWM要设置正确要不就会像楼主一样要不不亮要不高亮
    回复

    使用道具 举报

    头像被屏蔽

    该用户从未签到

    发表于 2012-1-25 22:16 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-6 22:06
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2012-1-25 22:38 | 显示全部楼层
    电位器来调光简单可靠,台灯又不用考虑电池续航问题,PMW总归是闪烁的,对眼睛不好。
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2012-1-30 02:02 | 显示全部楼层

    我用的是ACM7135,不是MOS管,呵呵
    回复

    使用道具 举报

    头像被屏蔽

    该用户从未签到

    发表于 2012-1-30 09:06 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2012-2-5 14:16 | 显示全部楼层
    lyticast 发表于 2012-1-30 09:06
    看图标ACM7135是MOS控制逻辑,那和MOS管是同样的道理啊。

    DXP里面没有ACM7135的IC,我就随便用了个场效应管的代替了
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-2-11 13:59 | 显示全部楼层
    用场效应管取代7135就行。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-18 10:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-2-14 18:41 | 显示全部楼层
    7135VDD端输入电阻和单片机上拉电阻在一个数量级,直接导致单片机加在VDD的电压不够。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-18 10:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-2-14 18:44 | 显示全部楼层
    第三图,这结构你要8050怎么去导通?不信就去算算静态工作点。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-18 10:05
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2012-2-14 18:45 | 显示全部楼层
    换个能推挽输出的单片机就可以。或者把8050换成8550,有效电平就会反过来,这不是什么问题,但是能调光。
    回复

    使用道具 举报

    该用户从未签到

    发表于 2012-2-16 09:18 | 显示全部楼层
    ACM7135的驱动脚加个下拉电阻
    回复

    使用道具 举报

    头像被屏蔽

    该用户从未签到

    发表于 2012-6-25 17:32 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

    头像被屏蔽
  • TA的每日心情
    开心
    2024-2-2 08:06
  • 签到天数: 95 天

    [LV.6]常住居民II

    发表于 2012-6-27 16:09 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-9 20:06
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2012-7-14 12:50 来自手机 | 显示全部楼层
    p0开漏的啊!
    加了上拉也不一定能驱动7135
    回复

    使用道具 举报

    本版积分规则

    小黑屋|手机版|Archiver|论坛自带搜索|下载论坛app|手电大家谈-手电筒爱好者之家 ( 备案序号:鲁ICP备05002565号 )
    以上言论纯属个人观点,与手电大家谈立场无关。
    最佳浏览模式:1920*1080


    GMT+8, 2024-9-24 20:32 , Processed in 0.211926 second(s), 64 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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