ESP8266 控制继电器上电抖动

买了几个ESP-01s, 和一个继电器模块来接入Home Assistant做WiFi开关,长这样:

 

这个小板子用的是GPIO 0 来控制继电器,但是发现ESP8266 有个bug,上电的时候他的GPIO 0会抖动一下,导致接到这个口的继电器会跳一下。翻了一下网上的解决方案,大概有几种:

1. 额外增加启动电路,前500ms禁止光耦输出。Esp8266上电时IO抖动解决方案_sxyandapp的博客-CSDN博客_esp01s上电抖动,这种方法要重新自己做PCB,懒,放弃。

2. 在GPIO口接电解电容来消除上电抖动,这种方法可能需要比较大的电容才能奏效。比方说这篇文章他推荐了220uf消除esp8266上电时继电器抖动的几种方法-Arduino爱好者 - Powered by Discuz!。这么干会弄一个巨大的电容塞进这个板子上,难看而且占地方。

3. 使用安全IO,github上也有讨论 GPIO Pins goes "HIGH" a short pulse on boot · Issue #421 · nodemcu/nodemcu-firmware · GitHub,他们称之为safe io, 大概意思可能就是有一些io上电的时候不会跳,比方说串口RX口,硬件学习_ESP8266_IOT_ESP-01(S)继电器模块_简单解决ESP8266上电IO抖动_YelloooBlue的博客-CSDN博客_esp01s继电器引脚,这篇文章就把继电器板子上原来的GPIO 0割断了,把RX飞线过去了。但我想保留这个串口后面可能飞线接其他传感器,就算了。

4. 在2那个链接里面,有一个评论说可以把消抖电容接到光耦输出上,因为光耦输出电流比较小,电容也可以不大,于是这个方法是我的首选。

如下图,R2电阻两端并联电容就行了,由于R2被PC817光耦挡住,不太好焊接,我就直接焊到三极管的那两个引脚上了,他们是等效的。

 我就直接上100uf了,最后效果图如下:

 测试了一下,上电抖动现象消失。开启继电器的延迟几乎感觉不到,关闭继电器的延迟大概有0.5秒的样子。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值