打印

用51单片机驱动继电器怎样才能避免上电吸合?

[复制链接]
楼主: heyj
手机看帖
扫描二维码
随时随地手机跟帖
21

最好不用PNP

单片机一般用5V,继电器12V的居多,用PNP电路就难做了

使用特权

评论回复
22
hzcook| | 2007-3-12 12:12 | 只看该作者

楼猪多动手嘛

找个示波器,把几个地方(VCC,RESET,IO口,三极管脚,继电器)的状态监测一下,分析波形先.
都在这里,估计,也许,可能的,没用.
大家都是根据自己的经验告诉你,可能发生的情况.还是要你自己动手啊.

使用特权

评论回复
23
bcaiyo| | 2007-3-12 12:13 | 只看该作者

在继电器的驱动三极管的B脚接一个电容就没有问题了

使用特权

评论回复
24
独占一江秋| | 2007-3-12 12:16 | 只看该作者

能否解决问题楼主自己试。

使用特权

评论回复
25
郑成功了| | 2007-3-12 12:39 | 只看该作者

负逻辑

"现在只有考虑把继电器的正电源加一个延时上电电路,估计才能避免这种上电自己吸合的问题了。"
这样会头痛好了,脚会犯病的!
这个问题我们也遇到过,用负逻辑很好地解决了问题.
我当初做这个项目时,直接先接了个最小系统,上电试了试,发现了问题,直接修正,然后画板子,没浪费时间.
用PNP管应该是没问题的,关键看你是如何接的.

使用特权

评论回复
26
dan_dan| | 2007-3-12 15:42 | 只看该作者

楼主可以检查一下复位电路

根据楼主所描述的情况初步推测是复位电路异常,导致复位时间超过10ms了。测一下复位波形看看。

使用特权

评论回复
27
zhujing03| | 2007-3-12 16:24 | 只看该作者

用51单片机驱动继电器怎样才能避免上电吸合?

在MCU的I/O加反相器,用NPN管驱动,试一试看是什么情况。

使用特权

评论回复
28
soho| | 2007-3-12 20:40 | 只看该作者

我一般用反相器中转一下

CPU的IO用低电平有效,外加一个10K上拉,74HC14反相后,再去驱动NPN管。
一直这样用,没问题的。

使用特权

评论回复
29
AA_55| | 2007-3-12 20:59 | 只看该作者

我已经说过,要按照复位时候的状态去分析电路

一个cpu,在复位信号有效时候(上电时候电路正常都设计为先复位),IO状态肯定是确定的。因为复位的一个重要作用,就是置各个寄存器为初始状态,以便从已知状态开始执行代码。

51单片机复位时候,IO口都自动为输入状态。因为51机IO是准输入口,所以被设置成电平1。一般人习惯采用正逻辑,输出1时候就是置继电器为吸合,所以会有上电时候继电器吸合一下的动作。即使程序一开始就将输出口设置成0,但是在复位阶段,这时候程序还没有被执行,所以肯定还会有继电器吸合动作。

解决的办法就是用输出0来驱动继电器。这样即使在cpu复位阶段,IO=1,继电器驱动也是无效,就不会有误动作了。

这个问题其实很简单,但是回复的贴子大多莫名其妙,说明还是没有掌握要领。

使用特权

评论回复
30
heyj|  楼主 | 2007-3-12 22:08 | 只看该作者

楼上的兄弟

我已经在用负逻辑。如图,io脚为低电平是继电器吸合。
问题是存在的。

现在我打算试试将mcu的复位电阻减小为3k左右,使复位时间减少看能不能解决。

使用特权

评论回复
31
soho| | 2007-3-12 22:24 | 只看该作者

楼上的兄弟

象你这样**,就是复位时间为0也不能解问题!

使用特权

评论回复
32
heyj|  楼主 | 2007-3-12 22:37 | 只看该作者

我是想看看有没有不需要增加硬件的解决方法

因为PCB已经基本画好,位置也有限,增加一个74HC14不容易
所以想看看有没有更简单的解决方法。

使用特权

评论回复
33
AA_55| | 2007-3-12 22:41 | 只看该作者

你的图我终于看到了

你这个用法就错误。

你假定的情况是:P1口在复位时候,输出的是理想的接近5V的高电平"1"。所以这时候晶体管应该是截止的,继电器也就不会动作。

但是,P1口是一个准输入口。在复位为输入口时候,P0口有一个弱上拉电阻,令P1口表现为高电平"1",因为产生的电平只要高于2.4v,就算是高电平了,如果在空载时候,可能还表现为接近于VCC。但是,你接入这个电路负载相对于内部电路经很小,将这个上拉给破坏了,实际上已经不能被上拉到"1"了,能出现一个介于0和1电平中间的一个电平。复位的时候,这个电平施加给基极,产生了基极电流,这个电流就驱动了晶体管,继而驱动了继电器。

你在驱动P1口时候,它是输出口,这个问题还能就缓解。但是,也不够可靠,具体情况,可以看看51单片机关于端口结构的描述。

你将管子的基极合发射极间接入一个1k电阻,将电流分流,看是不是能消除误动作。

使用特权

评论回复
34
AA_55| | 2007-3-12 22:45 | 只看该作者

问题其实不是很复杂

在于楼主对于电子电路还不是很熟悉。正逻辑或者负逻辑、高电平或者低电平,在数字电路中是泾渭分明的,但是实际的数字电路要靠模拟器件来实现的,必须要有模拟器件实现的概念才能分析清楚电路现象,而不是靠理想思维,更不能靠想当然。

如果想不增加元器件而解决问题,有这么几个途径:1、选用放大倍数小的晶体管,只要能驱动就行了;2、增加极基电阻;3、换用驱动电流大的继电器。总之就是降低对P1口漏点流的敏感程度,但这都是治标不治本的办法。

使用特权

评论回复
35
TDL3721| | 2007-3-12 23:15 | 只看该作者

不要用51单片机

不要用51单片机,我现在是最怕使用51指令的单片机,准IO口最麻烦

使用特权

评论回复
36
heyj|  楼主 | 2007-3-12 23:18 | 只看该作者

现在我在三极管基极加1k上拉电阻试试

请教楼上的怎样才是治标又治本的方法呢?

使用特权

评论回复
37
郑成功了| | 2007-3-13 00:50 | 只看该作者

这么搞

用75451N, 这么搞包好, 我们都这么搞过了. 
无偿告你一个Knowhow了! 
https://bbs.21ic.com/upfiles/img/20073/200731482152653.jpg

使用特权

评论回复
38
xzl| | 2007-3-13 10:13 | 只看该作者

这样

使用特权

评论回复
39
AA_55| | 2007-3-13 10:33 | 只看该作者

这个图也不正确

它可能减轻或者消除上电误动作,但是可靠性不行。这是一个射极跟随器,继电器能得到的驱动电压是5-0.7V=4.3V,很可能造成继电器线圈驱动电压不足而不能按照预期的动作

使用特权

评论回复
40
wanhuikfb| | 2007-3-13 10:39 | 只看该作者

这样用

同上楼这样用,应该没问题,我经常这么用,没发现问题。

使用特权

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

本版积分规则