事情的经过:今天买了一个5V继电器,商家说可以用STM32驱动,所以准备用STM32引脚直接驱动,后来,上午试了2小时,引脚一直有电平变化(配置为推挽输出),但是继电器就是没有反应,直接接上5V的电源正负才会有反应,之后,询问了群友和上网查找,是控制器的引脚带负载能力不行,输出的电流太小,带不动这种大功率器件。这时,有网友建议我选择带上拉电阻的引脚,因此,探索者上的PB8,因为PB8外接了4.7K的上拉电阻,并且配置引脚为,开漏输出模式,后来经过尝试,成功驱动继电器。
文章图片
总结:之前网上看很多资料,对单片机引脚的模式略有耳闻,很少留意,今日的实验,收货颇丰。
一、上拉电阻与下拉电阻
有些引脚默认输出只有是低电平和高组态,当引脚外部设置上拉电阻的时候,可以把引脚电平拉高到外接VCC的数值,上拉电阻的选择一般是1-10k,电阻越小,功耗越大。
用处:1、上拉电阻串联一个电阻接到一个电压,增加IO的驱动能力。下拉是一个电阻接到地,保证IO电平为低电平。
2、上拉电阻是用来解决总线驱动能力不足时,提供电流的,称之为拉电流;下拉电阻是用来吸收电流的称之为灌电流。比如I2C总有一个10K的电阻。
3、上拉电阻是用来检测低电平的,下拉电阻是用来检测高电平的。
二、解决方案
因为需要控制多路继电器导通和关断,不能配置每个引脚都外接上拉电阻,因此选择功率放大驱动器件。因此选择了多路的ULN2003和ULN2803。二者都是七重达林顿阵列,输入电压范围一样,输出电压范围一样,电流一样,后者多了一路,多用于控制电机和继电器方面。等之后IC到货测试一波。
【STM32|STM32之继电器驱动(上下拉电阻)】更新:测试结果。早上使用ULN2003AN在面包板上测试了一下,效果良好。ULN2003AN的GND引脚接电源负极,COM端口接上电源正极,这里使用探索者5V电压芯片供电,可以正常使用。控制引脚,PE1接LN1,OUT1接继电器的控制引脚。继电器输出端口接上一个小灯测试开闭状态。结果显示,使用普通引脚在ULN2003的放大作用下可以驱动继电器等大功率器件。
效果图如下:
推荐阅读
- 嵌入式知识|SPI协议详解(图文并茂+超详细)
- 单片机|自学单片机难吗(单片机编程教学怎么选?)
- 单片机|学好单片机好找工作吗(单片机学到什么程度可以找工作?)
- 单片机|单片机学多久能工作,单片机学好了能应聘什么工作()
- 单片机|单片机值得学吗(会单片机能找什么工作?)
- Liteos|LiteOS移植到STM32F103系列单片机,非常简单
- #|一个辅助 VSCode 下开发 STM32 的脚本
- harmony|手把手教你移植openharmony3.0到stm32(liteos_m)
- OpenHarmony|【OpenHarmony】VSCode下移植 LiteOS-M 到STM32