极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13651|回复: 13

电机开动会影响 i2c 的运作吗?

[复制链接]
发表于 2014-5-7 02:32:55 | 显示全部楼层 |阅读模式
最近开始想做自己的自平衡车, 需要的东西都买回来了, 尝试一件件都加起来进行测试.

首先测试了 电机的模块及电机操作都正常, 之後测试了 mpu6050 (i2c 非串口版) 可作长时期操作.

但当我把 电机开动了, 并执行 mpu6050 的测试时, 走了不久就会当机.
测试了很多次, 用了不同的库, 结果都是一样.
加入不同的 debug code, 发觉当电机开动时, 有机会出现 i2c read timeout, 之後当进行 Wire.endTransmission 时, 就会当了.  Wire 的库看不懂, debug 亦停在这里了.

初时以为是在运作工改变速度由驱动模块引起, 所以把电机有关的程序全部移除, 只馀下在 setup() 中开动了电机.  进入 loop 之後就再没有电机相关的程序, 只番下电机在转动.  但结果都是一样, 只要电机在转, 读取 mpu6050 不久就会当机.

为了进一步测试是否程式出错, 我尝试把电机的电源拔掉, 用相同的程式执行, 电机当然不会转, 而程式亦可以一直执行而不会当机.

我不相信电机的转动会影响 mpu6050 运作, 否则大家的平衡车都会有相同问题, 但现在我的情形, 就是电机跟 mpu6050 不能共存.  

想请教一下大家, 电机的转动, 是否会影响 i2c 的运作?  如果在 Wire.endTransmission 时当机, 有什麽方法可解决?
回复

使用道具 举报

发表于 2014-5-7 03:04:12 来自手机 | 显示全部楼层
据说光耦隔离就是解决这种问题的
回复 支持 反对

使用道具 举报

发表于 2014-5-7 03:30:49 | 显示全部楼层
很可能是电机转动导致了电源噪声或波动,6050对电源不干净很敏感。首先需要把每个电机并联一个0.1uF电容,同时电机的每个引脚对地也连一个电容。另外,控制板和传感器与电机分开供电,控制信号通过光耦连接,楼上也提到这个办法。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-7 09:42:28 | 显示全部楼层
春泥蛋炒饭 发表于 2014-5-7 03:30
很可能是电机转动导致了电源噪声或波动,6050对电源不干净很敏感。首先需要把每个电机并联一个0.1uF电容,同 ...


先谢谢大家的帮忙.

我现在用的是 TB6612FNG 电机驱动模块, 而 12V 电池经电机驱动模块给电机供电, 同时会并联向 Arduino 板供电, 并由 Arduino 板引出 5v 电源给 其他模块供电, 所有设备均共地的.

由於我不想在小车上有太多电池, 所以只用一个 12V 电源.
如果要 "控制板和传感器与电机分开供电", 是否可以在电机上 再用并联方式引出一个电源, 用降压模块转换成 5V 为电机驱动板供电?

即在 12V 电池以并联方式引出三个电源:
1) 经电机驱动模块给电机供电
2) 经降压模块为电机驱动模块供电
3) 直接为 arduino 板供电, 并再由 arduino 板出 5v 为 i2c device (e.g mpu6050) 供电


另外, "同时电机的每个引脚对地也连一个电容。", 请问该电容应该是如何连接?

至於光耦, 真的不好意思, 我其实不清楚光耦是什麽, 我要再找找先了解一下.
回复 支持 反对

使用道具 举报

发表于 2014-5-7 14:35:21 | 显示全部楼层
应该是说电机的2个引脚之间并联一个电容,然后每个引脚再和地线之间并联一个电容。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-7 15:34:20 | 显示全部楼层
isilcala 发表于 2014-5-7 14:35
应该是说电机的2个引脚之间并联一个电容,然后每个引脚再和地线之间并联一个电容。

谢谢.  那我明白怎样接了.
真的不好意思, 我的电子知识太肤浅了, 要劳烦大家详情解释才明白.
回复 支持 反对

使用道具 举报

发表于 2014-5-7 20:21:00 | 显示全部楼层
另外你说的供电的连接方式应该仍然是不解决问题的。常见的两个电源来接是彻底独立的2个电源,之间甚至都不共地。光耦隔离的话论坛里有很多帖子搜索一下即可。

不过我个人做的避障小车,用的L298N的模块,也只是单电源,可以长时间运作并没有问题。我也没有增加额外的电容之类的。也许是那个模块本身做得不错?

个人觉得光耦隔离应该是个很理想的方式,但不一定是必须的。也许并联电容等方式也可以解决,不过这就需要多尝试了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-7 20:49:24 | 显示全部楼层
isilcala 发表于 2014-5-7 20:21
另外你说的供电的连接方式应该仍然是不解决问题的。常见的两个电源来接是彻底独立的2个电源,之间甚至都不共 ...

謝謝你的意見, 你的經驗很有意義的.
除了 TB6612FNG 外, 我還有 L298N 的, 有一個是帶光耦的, 但由於小車已安裝好, 而且 L298N 的比較大, 要轉換有點困難.  或者我嘗試轉換一個帶光耦的 L298N 試試, 看看是否可解決問題, 然後再想想如何改善 TB6612FNG.
回复 支持 反对

使用道具 举报

发表于 2014-5-7 21:30:22 | 显示全部楼层
我对TB6612FNG也感兴趣的,也是因为体积比较小。不过暂时还没入手。期待你的结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-7 22:05:45 | 显示全部楼层
isilcala 发表于 2014-5-7 21:30
我对TB6612FNG也感兴趣的,也是因为体积比较小。不过暂时还没入手。期待你的结果。

我就是因為它很細小, 放在車內很方便, 我的帶光耦 L298N, 體質是它的十倍有多.....
店家還說不用加 整流二極管也不會有問題, 只是我沒問他是否需要光耦.
今晚在努力研究風扇速度控制, 要明晚才可以研究它了.
回复 支持 反对

使用道具 举报

发表于 2014-5-7 22:13:29 | 显示全部楼层
整流二极管个人觉得加上应该还是有帮助的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 00:58:58 | 显示全部楼层
isilcala 发表于 2014-5-7 20:21
另外你说的供电的连接方式应该仍然是不解决问题的。常见的两个电源来接是彻底独立的2个电源,之间甚至都不共 ...

加入六隻 電容 (每個電機三隻, 把 兩只腳跟 GND 都接了), 再用獨立供電, 不共地 (原來真的可以, 我初時以為不共地的話, 訊號線可能會失效).
但很可惜, 結果還是一樣, 分別使用電機 或 mpu6050 均沒有問題, 但一開動電機, 數秒後, 就會出現 ic2 error.
看來真的要試試帶光耦的 L298N 了.
回复 支持 反对

使用道具 举报

发表于 2014-5-8 10:37:12 | 显示全部楼层
我最近也遇到了这个类似的问题。数传+姿态传感器一会就死机了,单独使用都没问题。可能我也得试一下光耦隔离。手上动了个手术,俩周没搞头追了
回复 支持 反对

使用道具 举报

发表于 2014-5-8 11:13:33 | 显示全部楼层
本帖最后由 pww999 于 2014-5-8 11:30 编辑

http://www.geek-workshop.com/thread-8972-1-1.html
可以参考下这个接发, 主电源12V 经7809(图纸画成了7805) 稳压 接 nano328   

以前也同样有这种现象,后来整理下就好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 19:13 , Processed in 0.058803 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表