涂鸦arduino中文社区活动
查看: 651|回复: 9

arduino的io口损坏,被烧了,如何保护io口?

[复制链接]

该用户从未签到

发表于 2021-1-22 18:46 | 显示全部楼层 |阅读模式
先感谢各位大大进来解惑。我用的是WIFIduino,它和arduino是相通的。

因为我自学的各类硬件知识,实际中难免出现导线连接错误,或者三极管、mos管被击穿造成arduino的io损坏。

目前arduino的一个io口一直为高电平、三个io口一直为低电平,完全不受控制,可以认为io口已经被烧、损坏。毕竟arduino不便宜,如果一直这样下去的话,实在是让人没有前进下去的动力。所以如何保护io口呢?我突发奇想,有几个方案,请各位有真才实学的大大解惑。

方案一:光耦隔离。但是用arduino驱动5v步进电机需要4个io口,难道每个io都接一个光耦隔离?太费钱、太占地方(大约4个2.54mm针脚)。

方案二:io再加一个二极管。以arduino、三极管驱动直流电机为例(下图,我已实验成功),图中三极管型号s9013,二极管1N4001。一旦三极管短路,或者导线连接错误,直流电机外接电源直接灌入io,造成io损坏。在基极和arduino之间加一个1N4001二极管,防止高电压灌入io。一个1N4001二极管占地方要比一个光耦隔离少(大约2个2.54mm针脚)。
15155269437_a790478220_o.png
方案三:我想到了MCP23017扩展模块,我买了一块8元的模块,实验完成后,买直插式封装。此模块网上资料很少,某宝卖家不提供技术支持。因为WIFIduino的5号io口(SCL口)损坏,没有办法试验。但是原理我弄懂了的,就差试验了。按照理论,MCP23017扩展模块与arduino只需要连接GND、SCL、SDA三根线,如果在SCL、SDA中增加光耦隔离或者二极管,只需要两个就行。一旦MCP23017扩展模块的io口被烧了,大不了换一个8元,还可以接受。我准备在把MCP23017研究出来后,再写教程。

1dd.jpg


各位大大有没有好的思路,或者觉得我的方案如何?谢谢各位。

该用户从未签到

发表于 2021-1-22 18:59 | 显示全部楼层
如果烧 328p 那么久直接换芯片好了啊

该用户从未签到

 楼主| 发表于 2021-1-22 20:33 | 显示全部楼层
Zoologist 发表于 2021-1-22 18:59
如果烧 328p 那么久直接换芯片好了啊

这位大哥你好,那么小的芯片328p,全靠我的手电焊,如何拆?如何焊?我哪有那个手艺。

该用户从未签到

发表于 2021-1-22 20:43 | 显示全部楼层
可以用74系列芯片做I/O直通   例如573  244这类,更便宜

该用户从未签到

发表于 2021-1-22 23:24 | 显示全部楼层
练习拆装芯片吧。340版的、16U2 版的 UNO 我都手焊过:

https://www.arduino.cn/thread-83022-1-1.html

https://www.arduino.cn/thread-91828-1-1.html

你要是搞过 16U2 就知道了焊接 m328 都算简单的了

该用户从未签到

发表于 2021-1-23 13:02 | 显示全部楼层
方案2    用二极管1N4001保护无效。
二极管1N4001额定电流1A,电压50V。IO口的额定电流好像是50ma,电压12V。怎么可能保护IO口?

该用户从未签到

发表于 2021-1-23 13:07 | 显示全部楼层
方案3   也没意义吧
MCP23017扩展模块8元,   340版的、 UNO板也就10-14元,多买几片8元没问题。单独只换328就更便宜了。   有多大意义?

该用户从未签到

发表于 2021-1-23 16:42 | 显示全部楼层
我只能告诉你,在烧了esp8266后,我一口气买了10个8266 的开发板!!!

该用户从未签到

 楼主| 发表于 2021-1-23 18:19 | 显示全部楼层
keliyuan 发表于 2021-1-23 13:07
方案3   也没意义吧
MCP23017扩展模块8元,   340版的、 UNO板也就10-14元,多买几片8元没问题。单独只换32 ...

我用的是WIFIduino,实在没精力弄arduino和esp8266,还要自己搭建网络平台。
45元一个,被烧了太可惜。

该用户从未签到

 楼主| 发表于 2021-1-23 18:22 | 显示全部楼层
keliyuan 发表于 2021-1-23 13:02
方案2    用二极管1N4001保护无效。
二极管1N4001额定电流1A,电压50V。IO口的额定电流好像是50ma,电压12V ...

不对吧,1n4001的电压50v,代表反向电压50v被击穿,所以io正向串接一个二极管,防止反向高电压、高电流。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

字符串是否对比该使用哪个函数?
字符串是否对比该使用哪个
现有问题是, 串口接收到的数据是正常的,(通过print函数打印串口收
VSCode+PIO开发环境中添加Blinker.h的问题
VSCode+PIO开发环境中添加
我在main.c中添加就没问题,但是添加在.h文件中就会出现编译错误,在其他.c文件添加此
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
这样写不对吗,为啥老是报错
这样写不对吗,为啥老是报
Python上位机控制WS2812B
Python上位机控制WS2812B
说在前面: 设计师对颜色有着天生的敏锐性,而工程师眼中这些都会幻化成数值。。
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表