极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10855|回复: 7

自己做的小车转弯有点问题

[复制链接]
发表于 2014-3-13 21:11:26 | 显示全部楼层 |阅读模式
自己做了个蓝牙小车,小车前进后退都没有问题,但是转弯转不动,是电力问题,还是后面万向轮的问题,一直没想明白,请各位帮帮忙。

小车用的是网上购买的底盘,加了一个L298驱动模块,一个蓝牙模块,一个超声波模块。
连接方法:
arduino uno板子
1、L298:该模块的IN1、IN2、IN3、IN4分别连接arduino的12、11、10、9接口,电源12V口接arduino的5V,GND接地。
2、蓝牙模块:RXD接TX,TXD接RX,GND接地,VCC接5V。
3、超声波模块:VCC接5V,GND接地,trig接5口,Echo接6口。
代码:
  1. char getstr;
  2. int in1=12;
  3. int in2=11;
  4. int in3=10;
  5. int in4=9;
  6. //上面定义了板上的4个控制端,12一组,34一组
  7. int TrigPin = 5;
  8. int EchoPin = 6;
  9. float cm;
  10. int i=0;//记录测量次数,每5次取一下平均值
  11. float cmsum;//计算5次总值
  12. float cmeve;//计算5次平均值

  13. void _mRun(int pin1,int pin2)//电机右转,电机到底是右转还是左转取决于电机端的接线和控制脚的顺序
  14. {
  15.   digitalWrite(pin1,HIGH);
  16.   digitalWrite(pin2,LOW);
  17. }
  18. void _mBack(int pin1,int pin2)//同上
  19. {
  20.   digitalWrite(pin1,LOW);
  21.   digitalWrite(pin2,HIGH);
  22. }
  23. void _mStop(int pin1,int pin2)//紧急制动,实际就是将电机两个端短接了
  24. {
  25.   digitalWrite(pin1,HIGH);
  26.   digitalWrite(pin2,HIGH);
  27. }

  28. void setup()
  29. {
  30.   Serial.begin(9600);
  31.   pinMode(in1,OUTPUT);
  32.   pinMode(in2,OUTPUT);
  33.   pinMode(in3,OUTPUT);
  34.   pinMode(in4,OUTPUT);
  35.   pinMode(TrigPin, OUTPUT);
  36.   pinMode(EchoPin, INPUT);
  37.   //下面程序开始时让控制端都为高电平,电机保持不动。
  38.   digitalWrite(in1,HIGH);
  39.   digitalWrite(in2,HIGH);
  40.   digitalWrite(in3,HIGH);
  41.   digitalWrite(in4,HIGH);
  42. }

  43. void loop()
  44. {
  45.   getstr=Serial.read();
  46.   delayMicroseconds(60);
  47.   digitalWrite(TrigPin, HIGH);
  48.   delayMicroseconds(60);
  49.   digitalWrite(TrigPin, LOW);
  50.   
  51.   cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
  52.   cm = (int(cm * 100.0)) / 100.0; //保留两位小数
  53.   
  54.   if (i==5){//连接测5次,计算平均值,如果小于10厘米则紧急停车
  55.     i=0;
  56.     cmeve=cmsum/5;
  57.     cmsum=0;
  58.    
  59.     if (cmeve<10 and cmeve>0) {
  60.       Serial.println(cmeve);
  61.       _mStop(in1,in2);
  62.       _mStop(in3,in4);
  63.     }
  64.   }
  65.   else {
  66.     i=i+1;
  67.     cmsum=cmsum+cm;
  68.   }


  69.   if(getstr=='f')
  70.   {
  71.     Serial.println("go forward!");
  72.     _mStop(in1,in2);
  73.     _mStop(in3,in4);   
  74.     _mRun(in1,in2);
  75.     _mRun(in3,in4);
  76.   }
  77.   else if(getstr=='b'){
  78.     Serial.println("go back!");
  79.     _mStop(in1,in2);
  80.     _mStop(in3,in4);
  81.    
  82.     _mBack(in1,in2);
  83.     _mBack(in3,in4);
  84.   }
  85.   else if(getstr=='l'){
  86.     Serial.println("go left!");
  87.     _mStop(in1,in2);
  88.     _mStop(in3,in4);
  89.    
  90.     _mRun(in1,in2);
  91.     _mBack(in3,in4);
  92.   }
  93.   else if(getstr=='r'){
  94.     Serial.println("go left!");
  95.     _mStop(in1,in2);
  96.     _mStop(in3,in4);
  97.    
  98.     _mRun(in3,in4);
  99.     _mBack(in1,in2);
  100.   }
  101.   else if(getstr=='s'){
  102.     Serial.println("Stop!");
  103.     _mStop(in1,in2);
  104.     _mStop(in3,in4);   
  105.   }
  106. }
复制代码


电源这里开始用了四节5号电池,小车跑不动,又换了一个5V,500ma电池,也不行,后来直接换上5V,1A电池,小车可以前后正常移动,但是转弯还是转不动,这是什么原因?
回复

使用道具 举报

发表于 2014-3-13 21:47:48 | 显示全部楼层
本帖最后由 fish6823 于 2014-3-13 21:51 编辑

我的L298模块控制一个电机要用三个数字口的,两个脚控制电机正反转,一个脚控制电机速度,你的怎么只用两个脚?
还有你说的转不动是电机不动还是电机动了没转弯?
回复 支持 反对

使用道具 举报

发表于 2014-3-14 23:17:36 | 显示全部楼层
增大电机的供电电压试试
回复 支持 反对

使用道具 举报

发表于 2014-3-15 10:29:42 | 显示全部楼层
有没有给占空比啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-17 20:05:10 | 显示全部楼层
fish6823 发表于 2014-3-13 21:47
我的L298模块控制一个电机要用三个数字口的,两个脚控制电机正反转,一个脚控制电机速度,你的怎么只用两个 ...

是电机动一下,然后就动不了了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-17 20:05:36 | 显示全部楼层
swfzz 发表于 2014-3-15 10:29
有没有给占空比啊?

占空比应该怎么给啊?
回复 支持 反对

使用道具 举报

发表于 2014-3-17 23:33:21 | 显示全部楼层
我给你个说明书吧,上面讲得很清楚,我也是按这个来接线的。
占空比就是PWM输出,你要接到有PWM输出的口上,用analogWrite函数设置,一般要设在100以上电机才会动。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-23 20:34:04 | 显示全部楼层
fish6823 发表于 2014-3-17 23:33
我给你个说明书吧,上面讲得很清楚,我也是按这个来接线的。
占空比就是PWM输出,你要接到有PWM输出的口上 ...

下载下来试试,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 05:25 , Processed in 0.062517 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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