onbluesun 发表于 2012-6-8 11:33:26

使用ULN2003A驱动继电器

本帖最后由 onbluesun 于 2012-6-8 11:36 编辑



上图是我用ULN2003A驱动继电器的电路图,想问一下电路中有什么不妥的地方吗?然后网上说使用ULN2003A后,单片机IO口低电平时继电器闭合,但是现在我给它低电平后继电器却不工作,和原来用三极管驱动一样,高电平继电器才工作,想请教一下大家。

以上全部为PROTEUS仿真中调试结果。

my_avr 发表于 2012-6-8 11:35:34

看看ULN2003的手册吧,你问问题前,要找点资料看看的

onbluesun 发表于 2012-6-8 11:39:14

my_avr 发表于 2012-6-8 11:35 static/image/common/back.gif
看看ULN2003的手册吧,你问问题前,要找点资料看看的

也看了,就是给uln2003低电平,uln2003输出高电平,给uln2003高电平,uln2003输出低电平,所以当单片机输出低电平时,uln2003应该是高电平,由于我将uln2003接入了12V电源,那么uln2003应该输出12V,所以继电器两端都是12V,不会闭合,但是网上都说的是单片机输出低电平,继电器闭合,就是不太明白。

bg6ixm 发表于 2012-6-8 12:01:10

2003地线你不接,继电器回路还串个电阻。

hailing 发表于 2012-6-8 12:06:37

2003好像内部就是达林顿结构的,另外还有下拉电阻。另外网上很多东西都不靠谱。

zb05022005 发表于 2012-6-8 12:15:54

以datasheet为准,网上的仅供参考

rp_sunday 发表于 2012-6-8 12:17:55

datasheet 还是datasheet

gongnn 发表于 2012-6-8 12:19:15

2003还是用它的低电平输出比较好,因为它是反相的,所以加低电平才行

qingniao 发表于 2012-6-8 12:24:23

D1就不要了吧,2003里面有,电阻也没必要用

onbluesun 发表于 2012-6-8 12:37:52

bg6ixm 发表于 2012-6-8 12:01 static/image/common/back.gif
2003地线你不接,继电器回路还串个电阻。

地线在PROTEUS中不用接,内部接好的,那个电阻听说是起保护作用。

onbluesun 发表于 2012-6-8 12:38:51

hailing 发表于 2012-6-8 12:06 static/image/common/back.gif
2003好像内部就是达林顿结构的,另外还有下拉电阻。另外网上很多东西都不靠谱。 ...

同感。。。都不靠谱。。。

onbluesun 发表于 2012-6-8 12:39:30

qingniao 发表于 2012-6-8 12:24 static/image/common/back.gif
D1就不要了吧,2003里面有,电阻也没必要用

3Q,受教了

onbluesun 发表于 2012-6-8 12:39:57

好吧,我再把DATASHEET倒背一遍

ayumi8 发表于 2012-6-8 13:18:21

本帖最后由 ayumi8 于 2012-6-8 13:21 编辑

2003输入端送高电平    输出短才会拉低继电器一端挂电源这时候继电器吸合,继电器别串电阻二极管D1必须要有。

zt2012 发表于 2012-6-8 13:50:45

我想可能是电阻的原因。可能是电阻分压了,实际上到继电器的电压没有12V。

jj123paopao 发表于 2012-7-19 13:01:41

我也是用STM32通过ULN2003驱动几个LED灯,也是无论拉高拉低对应的IO口,都是无法点亮LED,请问哪位大侠有ULN2003驱动LED的代码,给我参考下,谢谢!

heiyuu1 发表于 2012-7-19 13:16:45

那个100欧姆是叫做阻抗匹配,台湾仪器上匹配时20-50欧,西门子没有这个电阻;另外模拟可能不正确,需要搭电路;D1换成稳压二极管,4148无效

Yawn_viagra 发表于 2012-7-19 13:45:40

2003前段时间刚用过,也是用来驱动继电器,当时也是继电器一端接地,另一端接2003,然后接片子,想用2003的电压驱动继电器,但是没有成功,相反的,一端接5V,另一端还是一样,用低电平驱动,最后成功了,方法楼主可以借鉴,具体为什么我也不太明白

jayfath 发表于 2012-7-19 15:44:51

不用电阻和二极管,2003内部自带

interxiaodao 发表于 2012-7-19 15:52:27

2003只会输出低电平

sanda 发表于 2012-7-19 16:13:49

2003只会吸输出引脚的电流

dz20062008 发表于 2012-7-20 14:08:11

本帖最后由 dz20062008 于 2012-7-20 14:22 编辑

没记错只能灌电流输出吧~ULN2003A名字叫达林顿反相驱动管。达林顿啊,这货不用电源工作的。

就是八组三极管组成的达林顿复合结构驱动电路,这也是没有叫VCC叫COM的原因。

为了起到驱动感性负载时里面的吸收二极管能起作用,在COM到负载电源间串联入一个100的电阻是为了保护里面的吸收二极管的,避免瞬态电流过大。

楼主那样接电阻可以起到降低功耗,减少继电器线圈发热。当然继电器的抗震能力就值得思考了。

如果外接保护二极管的话,COM就空着呗。还有就是一定要让2003的地与负载地还有MCU的低接在一起。

还有就是ULN2003A是达林顿反相驱动器,输入与输出是反相逻辑,有非门的作用

2003的输出高电平是负载传输过来的,这货没有输出高电平的说法。因该是高阻态

xiaojiong886 发表于 2012-7-20 14:13:52

用了UL2003,貌似那个电阻就不要了吧

lyg407 发表于 2012-7-27 10:47:37

不错。 说的很好。。

奮闘ing 发表于 2014-9-29 22:18:28

本帖最后由 奮闘ing 于 2014-9-29 22:31 编辑

dz20062008 发表于 2012-7-20 14:08
没记错只能灌电流输出吧~ULN2003A名字叫达林顿反相驱动管。达林顿啊,这货不用电源工作的。

就是八组三极 ...

你好,如果加上二极管且com空着,那驱动继电器的电源正在哪里呢?,不懂,请指点一下,谢谢了...想了一会,好像明白了。就如下图一样,解决了我的疑惑!

lichaoming520 发表于 2014-9-29 23:10:48

C:\Users\Administrator\Desktop

lxa0 发表于 2014-9-30 14:10:40

bg6ixm 发表于 2012-6-8 12:01
2003地线你不接,继电器回路还串个电阻。

硬件接线都错了
还谈什么单片机的高低电平啊

yangyou88 发表于 2014-10-11 00:18:13

可能是你串接的电阻阻值太大了.还是去掉吧.

xinmulan 发表于 2014-10-11 09:24:05

这个是我用的图

无衣师伊 发表于 2014-10-11 14:31:09

R2---去掉. IO口高电平才能驱动继电器

linandchen 发表于 2014-11-27 17:19:27

{:handshake:}正需要 {:handshake:}

jackee 发表于 2014-11-28 10:49:24

反相输出,去掉电阻,输入高电平继电器才闭合

hzh 发表于 2014-12-2 16:17:31

单片机io口能直接驱动继电器我用的stc89c52rc

xts 发表于 2015-6-9 15:19:27

MCU输出是几V,继电器动作的电压是几V,如果前一个是3.3V,后一个是5V,可以用ULN2003A吗?

chen849928055 发表于 2015-6-9 19:22:27

xts 发表于 2015-6-9 15:19
MCU输出是几V,继电器动作的电压是几V,如果前一个是3.3V,后一个是5V,可以用ULN2003A吗? ...

可以,继电器的动作与mcu的电平没有关系。

ren0214 发表于 2015-6-10 19:20:56

2003,2803叫三极管阵列。看看图,DATASHEET,输入输出原理图。

chuxue 发表于 2015-6-11 08:11:51

这个帖子······
简单的东东动手搭个电路出来,试试就知道了。把别人说的办法都去试试。
2003带继电器,外部尽量放一只二极管。如果2003输出有多余,可以二路或是三路并联驱动继电器。主回路串电路会分掉压一部分电压,不利于继电器吸合。
页: [1]
查看完整版本: 使用ULN2003A驱动继电器