ULN2003驱动继电器,不能同时驱动多路的问题
本帖最后由 feiante116 于 2016-10-1 17:47 编辑今天用stm32输出管脚通过ULN2003来驱动5个继电器,继电器的触点接220AC电压驱动220V的感应电机(通过电容启动)。
接线方式如下:
由于继电器的线包是12VDC的,所以ULN2003的COM端接12V,ULN2003的输入端(1B、2B。。。。。)接STM32的gpio,同时接一个下拉电阻到地。ULN2003的输出端(1C、2C。。。。)接继电器的线包负端。线包正端接12VDC。
工作时,发现如果只让ULN2003的一路动作,即STM32该路输出高电平,继电器可以动作,但是如果同时让ULN2003两路动作,即STM32使两路输出高电平,此时继电器就不动作了。
开始考虑可能是ULN2003是TTL,stm32输出的电压是3V,可能不能驱动,所以将ULN2003的2个输入端都接入5V,还是不能同时工作。(一路可以工作)
然后考虑是不是12VDC供电不稳定造成的,由于我使用的12VDC是有一个变压器通过整流滤波得到的,当一路工作时,测试ULN2003的COM端电压是12V左右,当2路工作时,测试ULN2003的COM端电压就高于12V,大概14V左右,后来用一个稳压芯片来提供12V电压,(实测大概13V),可以同时让2路正常工作,就是2个继电器可以同时吸和。
不知道问题点是不是这里?就是ULN2003的COM端电压一定要稳定?
如下图所示,VCC为12V,1B,2B...为STM32的GPIO
>>继电器的线包是12VDC的
大多数固态继电器并不是用线包驱动来输出的,所以对ULN2003来说并不是电感负载,ULN2003的COM端可以不连接。 接线错误,上图给你看下。 2003的输入电流已经不小了,你还加了下拉,有没有考虑到是因为32的引脚驱动电流不够?用飞思卡尔测试可以同时驱动 固态继电器哪儿来的线包啊?!
说错了,就是一般的继电器,5V,12V,24V的线圈 我也遇到过这种情况,最后换成了二极管驱动的 1检查电源负载能力够不够。2继电器顺序动作,加入延时间隔 数字电路的地,还有12 数字电路的地线,还有12V的地线都要接到2003的地端子。 原理图没毛病好像, uln2003好像自带下拉的,你还外挂下拉,MCU输出3.3V 可能驱动能力不够
MCU直连ULN2003试试,muc端口设置成Push Pull 模式,不行的话可以加上拉加强输出 我用2803八路没问题 电阻全部去掉 没必要。
然后就是要共地 单片机和12v要共地
不能共地的情况的话 就不能用 2003了 ,可以用光耦 驱动7路的信号继电器 驱动7路信号继电器,单片机IO直连. 工业控制器输出不用光藕隔离 直接2003或2803驱动可以吗 我看有些用单电源的 光藕在这里用处不大吧 不用隔离的话,stm32 直连达林顿管,com端接地,达林顿管的每个端口电流输入,通过继电器上拉至12V。com端直接VCC的做法感觉不对。 COM端怎么接vcc了,这个是集电极开路门输出,没有地了 我是这么搞的 接线接错了吧 提议把 ULN2003 COM端 接地的,为什么不先看看元件文档,了解 COM 端的作用? 实际做电路时,PNP最好。 顺便请问有没有 PNP版本的 ULN2003 ?? 12v电源要滤波电容大些,试试,看com端电压就不正常,正常应该变低才对啊,好好查查吧。 maqian 发表于 2016-10-2 09:22
COM端怎么接vcc了,这个是集电极开路门输出,没有地了
(引用自18楼)
这个芯片的8脚-E,是用来接GND的吧? 下拉电阻4.7K有点偏大,改到10K或者47K就行,其它的问题不大。
页:
[1]