打印
[电路/定理]

单片机上电后。默认高电平 PWM控制导致LED会出现闪烁求解!

[复制链接]
10194|62
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
we167527|  楼主 | 2016-10-27 11:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我用的是STM8的单片机。只要一上电就触发了上电复位!GPIO就输出高电平,然后我程序在初始化GPIO为低电平。这样就有了一个小脉冲。不过足以使LED闪烁一下

PIN口输出的PWM波形,以此控制LED的亮度。所以在Pin输出那里加个电容不可以。会导致PWM输出不对。

Pin口输出的高电压是3V。而电源电压是12V。请问该怎么改电路才不会使LED出现闪烁???


电路图如下图所示:


相关帖子

沙发
Lgz2006| | 2016-10-27 12:07 | 只看该作者
Pin不可以,Rb右边总该可以吧!

使用特权

评论回复
板凳
we167527|  楼主 | 2016-10-27 12:31 | 只看该作者
Lgz2006 发表于 2016-10-27 12:07
Pin不可以,Rb右边总该可以吧!

一样的效果。Pin输出的PWM。如果加了电容。PWM就很差了

使用特权

评论回复
地板
eyuge2| | 2016-10-27 12:45 | 只看该作者
一般情况下,单片机复位之后都是默认做输入的,有点会有弱上拉。
你这个单片机上拉是不是太强悍了?
建议:
1.检查你的程序,你是不是将IO口设置为输出了,然后输出1,再输出0.看是否有调整的可能
2.接一个下拉电阻。
3.实在不行,改为PNP管

使用特权

评论回复
5
we167527|  楼主 | 2016-10-27 12:48 | 只看该作者
eyuge2 发表于 2016-10-27 12:45
一般情况下,单片机复位之后都是默认做输入的,有点会有弱上拉。
你这个单片机上拉是不是太强悍了?
建议: ...

PNP怎么接才好呢?电源电压达到12V。而输出的高电平才3V。有点难

使用特权

评论回复
评论
eyuge2 2016-10-27 14:49 回复TA
不好意思,没有考虑到12V。 
6
a6105410| | 2016-10-27 14:05 | 只看该作者
1、干脆再用一个三极管,使输出1时灯不亮,0时灯亮。这样系统复位时,引脚为1灯也不会亮了,然后要不要其亮就取决于你的软件配置。
2、用一个2.7K左右的下拉电阻,系统上电时默认为1,应该是其内部弱上拉引起的,用一个2.7K的下拉电阻能把上电时电压拉下来(此电阻分压能不能使三极管导通要看内部弱上拉大小和三极管型号,可查资料和实际调试),然后系统运行时软件将引脚配置为推挽输出,推挽输出时驱动电流较大,这样可以拉高2.7K电阻,让三极管识别高电平。
当然,第二种方法要根据芯片资料的具体情况来定,我不知道你这款芯片情况如何,可以好好看看datasheet资料

使用特权

评论回复
7
we167527|  楼主 | 2016-10-27 14:17 | 只看该作者
a6105410 发表于 2016-10-27 14:05
1、干脆再用一个三极管,使输出1时灯不亮,0时灯亮。这样系统复位时,引脚为1灯也不会亮了,然后要不要其亮 ...

接下拉电阻还是会有微微导通的。LED还是会闪烁下。

使用特权

评论回复
8
we167527|  楼主 | 2016-10-27 14:18 | 只看该作者
a6105410 发表于 2016-10-27 14:05
1、干脆再用一个三极管,使输出1时灯不亮,0时灯亮。这样系统复位时,引脚为1灯也不会亮了,然后要不要其亮 ...

接下拉电阻还是会有微微导通的。LED还是会闪烁下。

使用特权

评论回复
9
a6105410| | 2016-10-27 14:50 | 只看该作者
应该不至于吧?三极管硅管压降有0.6~0.7V,锗管0.3V,下拉电阻分压低于其正向导通偏置电压,PN结截止,应该三极管就导通不了啊

使用特权

评论回复
10
瞎折腾| | 2016-10-27 14:56 | 只看该作者
这个电路不知道你用的是什么单片机,如果是stc的,他上边有介绍的,想复位后输出低电平可以接下拉电阻

STC15.part1.rar (4 MB)
STC15.part2.rar (4 MB)
STC15.part3.rar (4 MB)
STC15.part4.rar (4 MB)
STC15.part5.rar (4 MB)
STC15.part6.rar (4 MB)
STC15.part7.rar (293.64 KB)
查看文档的422页上边的截图就是这个资料的截图,stc的文档。

使用特权

评论回复
11
cov0xt| | 2016-10-27 16:36 | 只看该作者
我想顺便问一下,用PWM做LED的呼吸灯,其本质就是LED频繁的闪若干毫秒,

相比平常IO口控制LED的方法,低电平0不亮,高电平1亮,


PWM呼吸灯的话,LED会不会坏的特别快啊?

使用特权

评论回复
12
we167527|  楼主 | 2016-10-27 16:55 | 只看该作者
cov0xt 发表于 2016-10-27 16:36
我想顺便问一下,用PWM做LED的呼吸灯,其本质就是LED频繁的闪若干毫秒,

相比平常IO口控制LED的方法,低电 ...

。。。我不在乎这个!这是LED材料学的事

使用特权

评论回复
13
Ricky110| | 2016-10-27 17:49 | 只看该作者
这个应该是可以导通的吧

使用特权

评论回复
14
ecoren| | 2016-10-27 18:26 | 只看该作者
两种方法:
1. 换IO,换成默认是输入的pin或默认是高阻态的或默认输出低的;
2. IO不换,管子换成PNP三极管;

使用特权

评论回复
15
QuakeGod| | 2016-10-27 20:06 | 只看该作者
IO和三极管之间加一个反相器,然后逻辑改成输出1不亮,输出0亮。

使用特权

评论回复
16
QuakeGod| | 2016-10-27 20:08 | 只看该作者
其实绝大多数IO输出,都以低电平代表有效。
比如,我们很多外扩芯片的CS管脚,WR,RD管教,都是低电平有效的。
另外向74HC138,3-8译码器,也是以低电平有效作为输出。
所以单片机复位时,才会默认让所有管脚都是高电平。

使用特权

评论回复
17
lihui567| | 2016-10-27 20:53 | 只看该作者
上电闪烁我也遇到过,都是接个10K的下拉电阻解决的

使用特权

评论回复
18
皈依| | 2016-10-28 08:10 | 只看该作者
这就是硬件设计逻辑方面的问题~
得改。要么换PNP 改PWM
要么加PNP做反向

使用特权

评论回复
19
we167527|  楼主 | 2016-10-28 08:26 | 只看该作者
本帖最后由 we167527 于 2016-10-28 08:36 编辑
瞎折腾 发表于 2016-10-27 14:56
这个电路不知道你用的是什么单片机,如果是stc的,他上边有介绍的,想复位后输出低电平可以接下拉电阻


我的Rb需要自定义来控制LED的亮度。然后即使加到10K也会有闪烁一下

使用特权

评论回复
20
we167527|  楼主 | 2016-10-28 08:38 | 只看该作者
ecoren 发表于 2016-10-27 18:26
两种方法:
1. 换IO,换成默认是输入的pin或默认是高阻态的或默认输出低的;
2. IO不换,管子换成PNP三极管 ...

请问PNP架设的电路怎么才能匹配我的电路呢?我现在在架设PNP时主要考虑到了电源电压12V,而输入电压才3V的情况

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:联系方式: QQ:864095840 邮箱:86095840@qq.com

54

主题

294

帖子

6

粉丝