本帖最后由 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);
}
L.anrist 发表于 2012-8-1 21:01 static/image/common/back.gif
arduino与L298N的连接使用光耦隔离一般都会产生反冲的脉冲什么的单片机理所当然的会死机 不过如果准时的 ...
你好,现在情况如下:电机不转动没事,只要一转动,就死机,我也怀疑是反冲的事 ,可这L298N就这么脆弱?我买它就是要驱动电机的啊,可电机一转动就产生反冲,那请问我还有什么其它的办法么?谢!!!
你试试在和L298N连接的6根线上全部接上二极管,每根线都串上两个二极管,如果没有光耦电路那说不定这个可以。。。唉,L298N效能低,浪费大,体积大,种种原因无奈啊,似乎我以前玩的时候同样的车轮,同样的PWM,插在左右两边转速还相差很大。。。咋舌
L.anrist 发表于 2012-8-3 09:25 static/image/common/back.gif
你试试在和L298N连接的6根线上全部接上二极管,每根线都串上两个二极管,如果没有光耦电路那说不定这个可以 ...
嗯嗯,现在我用一个JoyStick控制L298N,用MPU6050单独采集角度,电机不转动,一切正常;只要电机一转动,立即卡机!
请问有什么好些的电机驱动么?
ladywent 发表于 2012-8-3 09:37 static/image/common/back.gif
嗯嗯,现在我用一个JoyStick控制L298N,用MPU6050单独采集角度,电机不转动,一切正常;只要电机一转动, ...
http://search8.taobao.com/search?q=%B5%E7%BB%FA%C7%FD%B6%AF%B0%E5+%B8%F4%C0%EB&pid=mm_14626936_2361222_9150583&unid=0&mode=63&from_bt=1&initiative_id=staobaoz_20120803
这个是在淘宝上搜了一下的 有些L298N是不带光耦的其他的电机驱动板好像还真的不多 主流的就是L298n吧
找找你买的L298n的商家 问他这个的电路图 说不准会看出什么
或者不要用驱动板以前电子制作杂志上有一期专门讲小车的 里面有很多驱动方法大部分是用大功率三极管搭建双H桥来控制 主要是效率高 不过如果你没有这些材料可能短期内想要解决还是最好从你的L298n上找原因
淘宝上卖的l298板子多数不带 1000uf 滤波电解及0.1uf电容,所以最好还是在电源的正负极接上
pww999 发表于 2012-8-3 10:36 static/image/common/back.gif
淘宝上卖的l298板子多数不带 1000uf 滤波电解及0.1uf电容,所以最好还是在电源的正负极接上
有四个电容,逻辑电源和电机电源各2个,电机两端没有并电容。
请问当前时间millis()是什么? 急!!!!
我也正在经历同样的问题,香蕉电机, MPU6050和一堆淘宝来的模块攒的。拿在手里左右晃动大了就死机,后来让电机脱离控制,以“锯齿波”的方式让电机逐渐加速,速度大了也死机。后来确认是电机干扰了I2C,使I2C等不到该有的状态。难道是香蕉电机干扰大? 想着抑制电机的干扰不容易,就提高受体的免疫力吧,然后就将I2C从AVR的TWI的中断方式改成查询方式,还不行,再改成IO模拟的I2C,本着就算I2C被干扰读数有误,也不要被挂死的原则,呵呵.... 现在看至少不死机了,还不知道对数据有多大程度上的干扰.....
问题依旧,虽然改了程序不在死机,但是偶尔还是出现“电机保持在最后的转速,不再受控”,此时串口还在打印 I2C 的数据,但好像有一轴数据不变了。
不知楼主解决没有,还是只有更换电机?
本帖最后由 pww999 于 2012-10-8 13:11 编辑
觉得电压\滤波电路 和 电机匹配好重要?
接线.代码等...
我看“香蕉电机”标称3V-12V,我用了8V左右。买的模块都是用杜邦线连的.
我用AVR mega16+MPU6050,没找到比较直接的代码,都是从各位网友不同配置里面抠出来攒的,代码的确需要再核实....
你换L9110试试,是H桥驱动芯片~
本帖最后由 pww999 于 2012-12-21 13:21 编辑
int output = min(200,abs(40*angleG));
主要为这里PWM40*的幅度太大了 , angleG=5时, PWM就直接输出200了,所以你这车舵螺仪偏一小点pWM就从0直接到了200 , 一下就卡S了,(电压过大或过低和滤波电路没有做好, 电机就象直接短路,)
将40* 去掉,把前面的代码最优化一下?
我的车是,舵螺仪倾斜越大加速越快的,很顺畅.....
楼主,我也同样遇到了像你一样的问题,程序跑一下就死机了,去掉电机就可以。请问你的问题解决了没。我以前做的时候没遇到过,这次就不知道为什么了。