极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: ladywent

求助:用MPU6050,L298N控制的平衡小车,运行1分钟就死机,(含详细代码注释!已上...

[复制链接]
发表于 2012-8-2 12:29:19 | 显示全部楼层
本帖最后由 pww999 于 2012-8-3 22:06 编辑

之前用香蕉电机,与328 naon 连接,经常电机加速就卡机,(加了光藕也不行)
后来换了电机用2560直接l298 都没事了


01.if (angleG >0.5)
02.  {
03.    digitalWrite(3, LOW);
04.    digitalWrite(4, HIGH);
05.    digitalWrite(8,LOW);
06.    digitalWrite(7, HIGH);
07.  }
08.  else if (angleG < -0.5)
09.  {
10.    digitalWrite(3, HIGH);
11.    digitalWrite(4, LOW);
12.    digitalWrite(8,HIGH);
13.    digitalWrite(7, LOW);
14.  }
  else      //因为0度为理论值,往往前后晃,所以0.5至-0.5度时为刹车,使其保持在坚直时不动(这个度数取值可自行测试效果)
{
10.    digitalWrite(3, HIGH);
11.    digitalWrite(4, HIGH);
12.    digitalWrite(8, HIGH);
13.    digitalWrite(7, HIGH);   
}

回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-2 16:16:46 | 显示全部楼层
L.anrist 发表于 2012-8-1 21:01
arduino与L298N的连接使用光耦隔离  一般都会产生反冲的脉冲什么的  单片机理所当然的会死机 不过如果准时的 ...

你好,现在情况如下:电机不转动没事,只要一转动,就死机,我也怀疑是反冲的事 ,可这L298N就这么脆弱?我买它就是要驱动电机的啊,可电机一转动就产生反冲,那请问我还有什么其它的办法么?谢!!!
回复 支持 反对

使用道具 举报

发表于 2012-8-3 09:25:40 | 显示全部楼层
你试试在和L298N连接的6根线上全部接上二极管,每根线都串上两个二极管,如果没有光耦电路那说不定这个可以。。。唉,L298N效能低,浪费大,体积大,种种原因无奈啊,似乎我以前玩的时候同样的车轮,同样的PWM,插在左右两边转速还相差很大。。。咋舌
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-3 09:37:25 | 显示全部楼层
L.anrist 发表于 2012-8-3 09:25
你试试在和L298N连接的6根线上全部接上二极管,每根线都串上两个二极管,如果没有光耦电路那说不定这个可以 ...

嗯嗯,现在我用一个JoyStick控制L298N,用MPU6050单独采集角度,电机不转动,一切正常;只要电机一转动,立即卡机!
请问有什么好些的电机驱动么?
回复 支持 反对

使用道具 举报

发表于 2012-8-3 09:48:01 | 显示全部楼层
ladywent 发表于 2012-8-3 09:37
嗯嗯,现在我用一个JoyStick控制L298N,用MPU6050单独采集角度,电机不转动,一切正常;只要电机一转动, ...

http://search8.taobao.com/search ... d=staobaoz_20120803

这个是在淘宝上搜了一下的   有些L298N是不带光耦的  其他的电机驱动板好像还真的不多 主流的就是L298n吧
找找你买的L298n的商家 问他这个的电路图 说不准会看出什么
或者不要用驱动板  以前电子制作杂志上有一期专门讲小车的 里面有很多驱动方法  大部分是用大功率三极管搭建双H桥来控制 主要是效率高 不过如果你没有这些材料  可能短期内想要解决还是最好从你的L298n上找原因   
回复 支持 反对

使用道具 举报

发表于 2012-8-3 10:36:54 | 显示全部楼层
淘宝上卖的l298板子多数不带 1000uf 滤波电解及0.1uf电容,所以最好还是在电源的正负极接上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-3 11:07:30 | 显示全部楼层
pww999 发表于 2012-8-3 10:36
淘宝上卖的l298板子多数不带 1000uf 滤波电解及0.1uf电容,所以最好还是在电源的正负极接上

有四个电容,逻辑电源和电机电源各2个,电机两端没有并电容。
回复 支持 反对

使用道具 举报

发表于 2012-9-1 10:51:02 | 显示全部楼层
请问当前时间millis()是什么? 急!!!!
回复 支持 反对

使用道具 举报

发表于 2012-9-29 15:25:37 | 显示全部楼层
我也正在经历同样的问题,香蕉电机, MPU6050和一堆淘宝来的模块攒的。拿在手里左右晃动大了就死机,后来让电机脱离控制,以“锯齿波”的方式让电机逐渐加速,速度大了也死机。后来确认是电机干扰了I2C,使I2C等不到该有的状态。难道是香蕉电机干扰大? 想着抑制电机的干扰不容易,就提高受体的免疫力吧,然后就将I2C从AVR的TWI的中断方式改成查询方式,还不行,再改成IO模拟的I2C,本着就算I2C被干扰读数有误,也不要被挂死的原则,呵呵.... 现在看至少不死机了,还不知道对数据有多大程度上的干扰.....
回复 支持 反对

使用道具 举报

发表于 2012-10-8 12:57:37 | 显示全部楼层
问题依旧,虽然改了程序不在死机,但是偶尔还是出现“电机保持在最后的转速,不再受控”,此时串口还在打印 I2C 的数据,但好像有一轴数据不变了。
不知楼主解决没有,还是只有更换电机?
回复 支持 反对

使用道具 举报

发表于 2012-10-8 13:09:06 | 显示全部楼层
本帖最后由 pww999 于 2012-10-8 13:11 编辑

觉得电压\滤波电路 和 电机匹配好重要?
接线.代码等...
回复 支持 反对

使用道具 举报

发表于 2012-10-9 12:50:02 | 显示全部楼层
我看“香蕉电机”标称3V-12V,我用了8V左右。买的模块都是用杜邦线连的.
我用AVR mega16+MPU6050,没找到比较直接的代码,都是从各位网友不同配置里面抠出来攒的,代码的确需要再核实....
回复 支持 反对

使用道具 举报

发表于 2012-12-21 12:29:54 | 显示全部楼层
你换L9110试试,是H桥驱动芯片~
回复 支持 反对

使用道具 举报

发表于 2012-12-21 13:10:47 | 显示全部楼层
本帖最后由 pww999 于 2012-12-21 13:21 编辑

  int output = min(200,abs(40*angleG));

主要为这里PWM  40*  的幅度太大了 , angleG=5时, PWM就直接输出200了,所以你这车舵螺仪偏一小点pWM就从0直接到了200 ,    一下就卡S了,(电压过大或过低和滤波电路没有做好,   电机就象直接短路,)  

将40* 去掉,把前面的代码最优化一下?


我的车是,舵螺仪倾斜越大加速越快的,很顺畅.....
回复 支持 反对

使用道具 举报

发表于 2013-3-20 22:01:34 | 显示全部楼层
楼主,我也同样遇到了像你一样的问题,程序跑一下就死机了,去掉电机就可以。请问你的问题解决了没。我以前做的时候没遇到过,这次就不知道为什么了。
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 05:35 , Processed in 0.046722 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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