450073622 发表于 2015-3-10 15:34:48

单片机继电器输出抖动问题

小弟最近在初学单片机,有用到单片机通过光耦-ULN2003驱动继电器。测试中发现几个问题,请教下大家。1、我控制一个继电器动作时,有的时候另一个继电器也会动作,排查焊接应该没问题。2、有的继电器动作很轻,有的就很重,是功率问题吗?
请多指教!{:lol:}

SCREA 发表于 2015-3-10 15:44:37

为什么要加ULN2003,直接单片机控制不行吗

boyiee 发表于 2015-3-10 15:51:35

汗,去网上看看别人的图吧你这光耦用的, 不要那么省电阻好吗。。。。

dyjhy 发表于 2015-3-10 15:53:32

Q20 Q21 Q22 Q23 Q44都应加一下接电阻,取10K就行。光耦漏电流会使继电器动作

zb05022005 发表于 2015-3-10 15:58:48

2003的输入端口得加限流电阻和下拉电阻

450073622 发表于 2015-3-10 15:59:48

dyjhy 发表于 2015-3-10 15:53
Q20 Q21 Q22 Q23 Q44都应加一下接电阻,取10K就行。光耦漏电流会使继电器动作

是在光耦3脚和ULN2003之间串个电阻?我吧这个电阻加载光耦的4脚有用吗?

450073622 发表于 2015-3-10 16:00:56

zb05022005 发表于 2015-3-10 15:58
2003的输入端口得加限流电阻和下拉电阻

加电阻时为了解决光耦的漏电流?下拉电阻时为了让他处于确定的状态吗?

dyjhy 发表于 2015-3-10 16:03:40

450073622 发表于 2015-3-10 15:59
是在光耦3脚和ULN2003之间串个电阻?我吧这个电阻加载光耦的4脚有用吗?

是下拉电阻,不是限流电阻,

zb05022005 发表于 2015-3-10 16:09:52

450073622 发表于 2015-3-10 16:00
加电阻时为了解决光耦的漏电流?下拉电阻时为了让他处于确定的状态吗? ...

1、下拉电阻是给个确定电位,消除光耦漏电流的影响
2、光耦和2003之间要加限流电阻,不然按你图里,这是会烧坏的节奏哦。除非你的2003里面已经集成限流电阻了

shell.albert 发表于 2015-3-10 16:16:30

输出端加电阻,三极管不是这么用的。

takashiki 发表于 2015-3-10 16:16:44

LZ,我问您两个问题:

1、光耦在这里有什么作用?大家都是+5V供电,又没有隔离
2、D12~D20有什么作用?是因为ULN2003内部的不管用吗

干掉这些杂七杂八的东西,效果可能会更好一些。

450073622 发表于 2015-3-10 16:24:00

takashiki 发表于 2015-3-10 16:16
LZ,我问您两个问题:

1、光耦在这里有什么作用?大家都是+5V供电,又没有隔离


你说的对,原先是想用隔离电源供电的,但是考虑十路输出那样隔离电源功率比较大,价格比较贵,所以就做了个假的隔离。ULN2003内部有二极管这个我知道,所以这几个二极管我是预留在这里的,看实际效果,如果有问题再加上去的

dzrs0620 发表于 2015-3-10 16:38:35

本帖最后由 dzrs0620 于 2015-3-10 16:44 编辑

zb05022005 发表于 2015-3-10 15:58
2003的输入端口得加限流电阻和下拉电阻

dzrs0620 发表于 2015-3-10 16:39:32

本帖最后由 dzrs0620 于 2015-3-10 16:44 编辑

shell.albert 发表于 2015-3-10 16:16
输出端加电阻,三极管不是这么用的。

dzrs0620 发表于 2015-3-10 16:42:15

zb05022005 发表于 2015-3-10 16:09
1、下拉电阻是给个确定电位,消除光耦漏电流的影响
2、光耦和2003之间要加限流电阻,不然按你图里,这是 ...

ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

dzrs0620 发表于 2015-3-10 16:45:18

dyjhy 发表于 2015-3-10 16:03
是下拉电阻,不是限流电阻,

ULN2003内部已经集成了下拉电阻

dzrs0620 发表于 2015-3-10 16:50:31

楼主的问题解决没有?按楼上各位大侠的指导加了外部的下拉电阻或限流电阻是否解决问题?其实看你的电路图除了光耦多余之外,其实没有什么大问题,如果继电器输出端有接大功率感性负载,要考虑是否干扰导致单片机的误动作,如果继电器输出端没有接负载,那还要考虑一下你的程序是否有问题,比如IO的配置是否正确……期待你的回复。

tam2907 发表于 2015-3-10 16:58:57

程序有问题

zb05022005 发表于 2015-3-10 17:02:34

dzrs0620 发表于 2015-3-10 16:42
ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连, ...

刚又去看了下2003的文档,果然是温故而知新啊,哈哈哈哈

luld 发表于 2015-3-10 19:02:54

用毛光耦啊

jiaxianglhh 发表于 2015-3-10 20:37:41


按照这个原理图改进

450073622 发表于 2015-3-11 08:34:38

jiaxianglhh 发表于 2015-3-10 20:37
按照这个原理图改进

我原有的LED灯也去掉吗?加这个RC时消除干扰抖动?

chuxue 发表于 2015-3-11 09:00:42

你这图哦,首先单片机输出要加上拉电阻,其次2003能不能拖动继电器,你要确定一下,几个继电器同时工作时继电器电源电压有没有降。你说控制一个继电器时另的个继电器动作,如果线路没焊错那就肯定是程序出错了
检查线路,先取下单片机,你 这图,直接把单片机输出那几个脚分别用导线对地短接,看看相应的继电器工作正常不。你这图单片机输出上拉电阻不可少。

315936392 发表于 2015-3-11 09:01:53

原理图没发现问题 除了没了彻底隔离 是其他问题的原因居多 比如程序问题 因为没彻底隔离干扰导致的问题。。。。。。。。。。。。。

kickdown 发表于 2015-3-11 09:16:36

dzrs0620 发表于 2015-3-10 16:50
楼主的问题解决没有?按楼上各位大侠的指导加了外部的下拉电阻或限流电阻是否解决问题?其实看你的电路图除 ...

同意您的看法,除了光耦多余,没什么大毛病。
会不会可能是他的继电器线圈电流太大,ULN2003没有那么大同时输出能力呢?

450073622 发表于 2015-3-11 10:45:16

dzrs0620 发表于 2015-3-10 16:50
楼主的问题解决没有?按楼上各位大侠的指导加了外部的下拉电阻或限流电阻是否解决问题?其实看你的电路图除 ...

下拉和限流电阻其他板子上都有预留。今天早上把IO输出引脚电压量了下,发现有的是4.95V,有的是2.5V左右,单片机配置的是准双向口,写程序的时候想只要拉高就行,没过多考虑。后来所有的IO输出配置为推挽输出,目前暂时没有。用的事STC15W4K系列的,文档中写过准双向口是弱上拉,但是,有这么弱嘛。

450073622 发表于 2015-3-11 10:47:10

chuxue 发表于 2015-3-11 09:00
你这图哦,首先单片机输出要加上拉电阻,其次2003能不能拖动继电器,你要确定一下,几个继电器同时工作时继 ...

单片机直接驱动2003的时候要用上拉吧,加了个光耦只要在光耦后面、2003前面下拉就可以了,2003能输出500mA,么的问题~~

450073622 发表于 2015-3-11 10:48:58

kickdown 发表于 2015-3-11 09:16
同意您的看法,除了光耦多余,没什么大毛病。
会不会可能是他的继电器线圈电流太大,ULN2003没有那么大同 ...

用光耦其实是想倒个逻辑,不然平常的灌电流方式上电会误动作。

zjk 发表于 2015-3-11 11:25:35

没必要加uln2003吧

lxa0 发表于 2015-3-11 11:34:19

我用2003带继电器时没有碰到楼主说的问题

xiaobendan 发表于 2015-3-11 11:36:40

zb05022005 发表于 2015-3-10 16:09
1、下拉电阻是给个确定电位,消除光耦漏电流的影响
2、光耦和2003之间要加限流电阻,不然按你图里,这是 ...

2003的里面是有这两个电阻的啊,难道不是吗?

xiaobendan 发表于 2015-3-11 11:40:47

没有必要用光耦,直接驱动就行了,逻辑反一下。
那些二极管也没有必要,2003里面有了。
这个应该还是在光耦初级的前边的部分的问题,2003很多人在用,我用的时候就是啥也不加,没有光耦,没有电阻,没有二极管。CPU的IO直接接输入脚,输出脚直接接继电器线圈。当然是高电平驱动了,即使51的IO在复位时的拉电流,也不会有问题。

WOSDAIZ 发表于 2015-3-11 11:59:29

我一次用1盘的2003,淘宝买,非原厂很便宜,2500个里面,第一次上电就是坏的故障率有1%,其余的出货使用半年内会坏的也大约有1%,各种坏的情况都有,你这种也有,1年约使用4盘,对我来说还是划的来,原厂的真是贵啊.

kickdown 发表于 2015-3-11 12:25:21

450073622 发表于 2015-3-11 10:45
下拉和限流电阻其他板子上都有预留。今天早上把IO输出引脚电压量了下,发现有的是4.95V,有的是2.5V左右, ...

STC15W4的弱上拉电阻大概多少欧,还有就是输出高电平时电流最大多少?
可否考虑IO口加1.5k电阻强制下拉,与内置弱上拉抗衡,将上电时IO端口控制在ULN2003A输入低电平范围内?

Eric_Xue 发表于 2015-3-11 13:39:15

电源和地都没隔离,为啥要用光耦?

450073622 发表于 2015-3-12 08:39:50

lxa0 发表于 2015-3-11 11:34
我用2003带继电器时没有碰到楼主说的问题

我用的事STC的单片机,你用的时候IO口输出有配置吗?我一开始就是默认的准双向口,后来换成推挽就好了

lxa0 发表于 2015-3-12 10:55:41

我用的是at产品
另 继电器与单片机要分开供电

mon51 发表于 2015-3-13 17:36:58

容差处理

xiaobendan 发表于 2015-3-18 20:03:35

xiaobendan 发表于 2015-3-11 11:40
没有必要用光耦,直接驱动就行了,逻辑反一下。
那些二极管也没有必要,2003里面有了。
这个应该还是在光耦 ...

抱歉,要纠正一下。
2003的内部下拉电阻阻值比较大,当CPU的拉电流较大时,无法避免开机复位时的动作。之前用的直插的,就可以,CPU是STC15W408AS-DIP28

刚才实验了CPU是12C5A60S2-QFP44的,同时2003是贴片的,结果不行,开机复位过程中,相关继电器全部吸合一次。

幸好只打样了5块板子,看来要改一下了,测量了一下拉电流居然有0.16MA这么大。之前的板子的STC15W408AS没有测量拉电流有多大。
页: [1]
查看完整版本: 单片机继电器输出抖动问题