求救!!小弟做了个PMW无极调光,发现无法驱动1W LED,求解
本帖最后由 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,功能正常,能够无极调光
图2:
加上7135,单片机的PMW输出口接到ACM7135的VDD端,发现1W LED不亮或者最亮,不能调光,但草帽LED能正常调光
图三:
加了个8050三极管驱动,要不不亮,要不最亮,不能进行调光,但是草帽LED可以。
后来我寻思着是不是上拉电阻没接,于是在PMW输出端加了个10K的上拉电阻,连接到电源正,发现1W LED 一直是亮的
求高人指导一下,是什么情况?
程序如下:网上的
# include<reg51.h>
sbitK1 =P1^0; //增加键
sbitK2 =P1^1 ; //减少键
sbitBEEP =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++) ;
}
}
LZ确定的输出是脉冲?
频率,占空比是多少? 本帖最后由 一棒槌 于 2012-1-21 15:33 编辑
高级啊···我小的时候直接用电位器来调光··哈哈 本帖最后由 GREE 于 2012-1-23 19:28 编辑
频率应该不是问题。
39脚电平多少?图1中接LED高位,后面的却接LED低位。7135正常工作要Vdd大于2.6V,39脚电平不够吧。 7135的频率和PWM要设置正确要不就会像楼主一样要不不亮要不高亮 电位器来调光简单可靠,台灯又不用考虑电池续航问题,PMW总归是闪烁的,对眼睛不好。 lyticast 发表于 2012-1-25 22:16 static/image/common/back.gif
你的调光MOSFET的G级对地无电阻,也就是Ciss无放电通道。应该接个100~470欧的电阻对地,或者干脆跳开NPN管 ...
我用的是ACM7135,不是MOS管,呵呵 lyticast 发表于 2012-1-30 09:06 static/image/common/back.gif
看图标ACM7135是MOS控制逻辑,那和MOS管是同样的道理啊。
DXP里面没有ACM7135的IC,我就随便用了个场效应管的代替了 用场效应管取代7135就行。 7135VDD端输入电阻和单片机上拉电阻在一个数量级,直接导致单片机加在VDD的电压不够。 第三图,这结构你要8050怎么去导通?不信就去算算静态工作点。 换个能推挽输出的单片机就可以。或者把8050换成8550,有效电平就会反过来,这不是什么问题,但是能调光。 ACM7135的驱动脚加个下拉电阻 p0开漏的啊!
加了上拉也不一定能驱动7135
页:
[1]