单片机学习小组
直播中

任凭风吹

9年用户 1009经验值
擅长:可编程逻辑 电源/新能源 MEMS/传感技术 制造/封装 模拟技术
私信 关注

为什么精英板不能用推挽输出模式驱动5V继电器模块?

为什么精英板不能用推挽输出模式驱动5V继电器模块?

回帖(1)

王玉梅

2022-1-17 14:04:57
  前言:
  继电器模块工作电压5V,吸合电流约70mA每路,带继电器状态指示灯;I/O信号输入直接与单片机IO口或数字电路连接,输入高电平继电器吸合,输入低电平继电器释放; 全贴片元件,最合理驱动电路设计,采用8050三极管驱动继电器动作。
  背景:
  鉴于项目的需求,用正点原子-精英板(STM32F103)去驱动一个5v的继电器模块控制USB加湿器。本以为就是单片机直接I/O口直接输出高低电平就能实现开关切换了(控制原理跟点LED灯差不多,而且通常就是这么控制的),可实际情况我实验失败了。。。
  我买的继电器模块是5V工作电压、低电平触发的,而且是支持单片机I/O直接驱动控制,然而我发现控制不了。用开漏输出才能正常控制继电器的工作状态,而使用通用推挽输出模式继电器都是不工作没反应的(正常来说继电器都是用推挽输出驱动I/O的),想问一下,为什么精英板不能用推挽输出模式驱动5V继电器模块?
  百度了下什么都没有,说什么单片机I/O驱动能力不够,需要做个三极管放大驱动,都TM子虚乌有,其实现在淘宝的继电器模块都是考虑这些的都做好了的,单刀直入就行的。度娘救不了,这可咋办?
  解决方法:
  更改I/O口(GPIO)的输出模式。一般我们常用的都是推挽输出模式(GPIO_Mode_Out_PP ),我们就改为开漏输出模式(GPIO_Mode_Out_OD ),改完重新编译烧录,即可解决这个问题。
  原GPIO初始化配置(推挽输出):
  
  改成开漏输出模式之后:
  
  (1)推挽输出
  推挽输出(push-pull out),就是有推push有拉pull,任何时候I/O口的电平都是确定的,而且不需要我们外接上拉或者下拉电阻。
  (2)开漏输出
  开漏输出,就等于输出口接了个NPN三极管,且只接了e,b。 c极是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了。但是不接电阻上拉的时候,这个输出高就不能实现了。只可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分