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

[复制链接]
19087|100
独占一江秋 发表于 2007-3-12 12:08 | 显示全部楼层

最好不用PNP

单片机一般用5V,继电器12V的居多,用PNP电路就难做了
hzcook 发表于 2007-3-12 12:12 | 显示全部楼层

楼猪多动手嘛

找个示波器,把几个地方(VCC,RESET,IO口,三极管脚,继电器)的状态监测一下,分析波形先.<br />都在这里,估计,也许,可能的,没用.<br />大家都是根据自己的经验告诉你,可能发生的情况.还是要你自己动手啊.
bcaiyo 发表于 2007-3-12 12:13 | 显示全部楼层

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

  
独占一江秋 发表于 2007-3-12 12:16 | 显示全部楼层

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

  
郑成功了 发表于 2007-3-12 12:39 | 显示全部楼层

负逻辑

&quot;现在只有考虑把继电器的正电源加一个延时上电电路,估计才能避免这种上电自己吸合的问题了。&quot;<br />这样会头痛好了,脚会犯病的!<br />这个问题我们也遇到过,用负逻辑很好地解决了问题.<br />我当初做这个项目时,直接先接了个最小系统,上电试了试,发现了问题,直接修正,然后画板子,没浪费时间.<br />用PNP管应该是没问题的,关键看你是如何接的.
dan_dan 发表于 2007-3-12 15:42 | 显示全部楼层

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

根据楼主所描述的情况初步推测是复位电路异常,导致复位时间超过10ms了。测一下复位波形看看。
zhujing03 发表于 2007-3-12 16:24 | 显示全部楼层

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

在MCU的I/O加反相器,用NPN管驱动,试一试看是什么情况。
soho 发表于 2007-3-12 20:40 | 显示全部楼层

我一般用反相器中转一下

CPU的IO用低电平有效,外加一个10K上拉,74HC14反相后,再去驱动NPN管。<br />一直这样用,没问题的。
AA_55 发表于 2007-3-12 20:59 | 显示全部楼层

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

一个cpu,在复位信号有效时候(上电时候电路正常都设计为先复位),IO状态肯定是确定的。因为复位的一个重要作用,就是置各个寄存器为初始状态,以便从已知状态开始执行代码。<br /><br />51单片机复位时候,IO口都自动为输入状态。因为51机IO是准输入口,所以被设置成电平1。一般人习惯采用正逻辑,输出1时候就是置继电器为吸合,所以会有上电时候继电器吸合一下的动作。即使程序一开始就将输出口设置成0,但是在复位阶段,这时候程序还没有被执行,所以肯定还会有继电器吸合动作。<br /><br />解决的办法就是用输出0来驱动继电器。这样即使在cpu复位阶段,IO=1,继电器驱动也是无效,就不会有误动作了。<br /><br />这个问题其实很简单,但是回复的贴子大多莫名其妙,说明还是没有掌握要领。
 楼主| heyj 发表于 2007-3-12 22:08 | 显示全部楼层

楼上的兄弟

我已经在用负逻辑。如图,io脚为低电平是继电器吸合。<br />问题是存在的。<br /><br />现在我打算试试将mcu的复位电阻减小为3k左右,使复位时间减少看能不能解决。
soho 发表于 2007-3-12 22:24 | 显示全部楼层

楼上的兄弟

象你这样**,就是复位时间为0也不能解问题!
 楼主| heyj 发表于 2007-3-12 22:37 | 显示全部楼层

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

因为PCB已经基本画好,位置也有限,增加一个74HC14不容易<br />所以想看看有没有更简单的解决方法。
AA_55 发表于 2007-3-12 22:41 | 显示全部楼层

你的图我终于看到了

你这个用法就错误。<br /><br />你假定的情况是:P1口在复位时候,输出的是理想的接近5V的高电平&quot;1&quot;。所以这时候晶体管应该是截止的,继电器也就不会动作。<br /><br />但是,P1口是一个准输入口。在复位为输入口时候,P0口有一个弱上拉电阻,令P1口表现为高电平&quot;1&quot;,因为产生的电平只要高于2.4v,就算是高电平了,如果在空载时候,可能还表现为接近于VCC。但是,你接入这个电路负载相对于内部电路经很小,将这个上拉给破坏了,实际上已经不能被上拉到&quot;1&quot;了,能出现一个介于0和1电平中间的一个电平。复位的时候,这个电平施加给基极,产生了基极电流,这个电流就驱动了晶体管,继而驱动了继电器。<br /><br />你在驱动P1口时候,它是输出口,这个问题还能就缓解。但是,也不够可靠,具体情况,可以看看51单片机关于端口结构的描述。<br /><br />你将管子的基极合发射极间接入一个1k电阻,将电流分流,看是不是能消除误动作。
AA_55 发表于 2007-3-12 22:45 | 显示全部楼层

问题其实不是很复杂

在于楼主对于电子电路还不是很熟悉。正逻辑或者负逻辑、高电平或者低电平,在数字电路中是泾渭分明的,但是实际的数字电路要靠模拟器件来实现的,必须要有模拟器件实现的概念才能分析清楚电路现象,而不是靠理想思维,更不能靠想当然。<br /><br />如果想不增加元器件而解决问题,有这么几个途径:1、选用放大倍数小的晶体管,只要能驱动就行了;2、增加极基电阻;3、换用驱动电流大的继电器。总之就是降低对P1口漏点流的敏感程度,但这都是治标不治本的办法。
TDL3721 发表于 2007-3-12 23:15 | 显示全部楼层

不要用51单片机

不要用51单片机,我现在是最怕使用51指令的单片机,准IO口最麻烦
 楼主| heyj 发表于 2007-3-12 23:18 | 显示全部楼层

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

请教楼上的怎样才是治标又治本的方法呢?
郑成功了 发表于 2007-3-13 00:50 | 显示全部楼层

这么搞

用75451N,&nbsp;这么搞包好,&nbsp;我们都这么搞过了.&nbsp;<br />无偿告你一个Knowhow了!&nbsp;<br />https://bbs.21ic.com/upfiles/img/20073/200731482152653.jpg
xzl 发表于 2007-3-13 10:13 | 显示全部楼层
AA_55 发表于 2007-3-13 10:33 | 显示全部楼层

这个图也不正确

它可能减轻或者消除上电误动作,但是可靠性不行。这是一个射极跟随器,继电器能得到的驱动电压是5-0.7V=4.3V,很可能造成继电器线圈驱动电压不足而不能按照预期的动作
wanhuikfb 发表于 2007-3-13 10:39 | 显示全部楼层

这样用

同上楼这样用,应该没问题,我经常这么用,没发现问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部