新月 发表于 2013-12-23 05:35:18

399元的小车

本帖最后由 新月 于 2013-12-24 15:51 编辑


按避障程序写入在手中一切正常,放在地上就不走了,明显是电机没力带不动,怎么办?
说来说去,还是代码的事,初学就是一头雾水啊!

新月 发表于 2013-12-23 05:36:43

int SNUM ;//定义3个传感器,从SNUM-SNUM为从左到右3个红外避障传感器
int INA = 4; //电机A正反转控制端
int PWMA = 5; //电机A调速端
int INB = 7; //电机B正反转控制端
int PWMB = 6; //电机B调速端

void motospd(int sp1,int sp2) //电机速度控制函数。括号内分别为左右电机速度值,
{                        //范围-255~+255,正值为正转,负值为反转。
if(sp1>0)
    digitalWrite(INA, HIGH);   
else
    digitalWrite(INA, LOW);
if(sp2>0)
    digitalWrite(INB, HIGH);
else
    digitalWrite(INB, LOW);
analogWrite(PWMA,abs (sp1));
analogWrite(PWMB,abs (sp2));
}
void setup(){

pinMode(11, INPUT); //配置左传感器IO口为输入
pinMode(12, INPUT); //配置中传感器IO口为输入
pinMode(13, INPUT); //配置右传感器IO口为输入
Serial.begin(9600); //打开串口,初始化
pinMode(INA,OUTPUT);
pinMode(INB,OUTPUT);   //配置电机驱动IO口为输出

}
void loop(){

SNUM = digitalRead(11);//左传感器赋值
SNUM = digitalRead(12); //中传感器赋值
SNUM = digitalRead(13); //右传感器赋值
for (int i=0;i<3;i++)
{
    Serial.print(SNUM);//串口输出每个传感器的值,打开串口可显示传感器检测结果
}                  
Serial.println(SNUM);
if ((SNUM==1)&&(SNUM==1)&&(SNUM==1))//所有传感器都没有检测到障碍
    motospd(100,100);                        //直行
if ((SNUM==0)&&(SNUM==1)&&(SNUM==1)) //左传感器检测到障碍物
    motospd(100,50);                           //右转
if ((SNUM==1)&&(SNUM==1)&&(SNUM==0)) //右传感器检测到障碍物
    motospd(50,100);                           //左转
if ((SNUM==1)&&(SNUM==0)&&(SNUM==1)) //中传感器检测到障碍物
    motospd(-100,-100);                           //后退
delay(50);
}

i7456 发表于 2013-12-23 07:57:40

怎么供电的?

弘毅 发表于 2013-12-23 09:44:33

感觉电池供电不足

新月 发表于 2013-12-23 10:08:38

298板单独供电,电池是新充的,准备再加一节3.7V的锂电试一下。

i7456 发表于 2013-12-23 12:17:57

新月 发表于 2013-12-23 10:08 static/image/common/back.gif
298板单独供电,电池是新充的,准备再加一节3.7V的锂电试一下。

电压多少?什么类型的电池?
建议直接3.7V×3的锂电供电

新月 发表于 2013-12-23 16:01:02

i7456 发表于 2013-12-23 12:17 static/image/common/back.gif
电压多少?什么类型的电池?
建议直接3.7V×3的锂电供电

谢谢!
是的,现在用三节3.7V/3000mAH锂电池,可以跑了,
但速度太快,
准备换 双轴 6V1:288 扭力2kg的电机再试。

沧海笑1122 发表于 2013-12-23 17:08:22

本帖最后由 沧海笑1122 于 2013-12-23 17:09 编辑

速度快可以软件调速啊,不过我觉得你的电压有点高了,3×3.7V,你可以查查电机的电压范围。我也曾遇到这种问题,我更换了电机,只换电机(TB 5元左右的电机),减速齿轮部分不用换。另外就是轮胎的问题,有的轮胎是比较硬的,抓地不好。

三水 发表于 2013-12-23 23:05:53

http://x.openjumper.com/l298motorshield/
先试一试这个就知道是不是电机问题了

你贴那个代码直接用肯定是力量不足的

新月 发表于 2013-12-24 05:39:15

三水 发表于 2013-12-23 23:05 static/image/common/back.gif
http://x.openjumper.com/l298motorshield/
先试一试这个就知道是不是电机问题了



超版你好!
/*OPEN JUMPER L298 Shield
20131224 试了这个程序小车可以运行但速度太快*/
int INA = 4; //电机A正反转控制端
int PWMA = 5; //电机A调速端
int INB = 7; //电机B正反转控制端
int PWMB = 6; //电机B调速端

void setup(){
   pinMode(INA,OUTPUT);
   pinMode(INB,OUTPUT);
}
void loop(){
int value;
for(value = 0 ; value <= 255; value+=5){
   digitalWrite(INA,HIGH);
   digitalWrite(INB,HIGH);
   analogWrite(PWMA,value);
   analogWrite(PWMB,value);
   delay(50);
   }
}
--------------------------------------------------
才试了这个程序:
用三节3.7V锂电串的电源,放在地上小车跑的很有劲,速度快;
换二节3.7V锂电串的电源,放有地上小车就跑不动了。

三水 发表于 2013-12-24 12:05:29

本帖最后由 三水 于 2013-12-24 12:10 编辑

新月 发表于 2013-12-24 05:39 static/image/common/back.gif
超版你好!
/*OPEN JUMPER L298 Shield
20131224 试了这个程序小车可以运行但速度太快*/


是的 这个程序是监测电机和电机驱动板是否正常的

void setup(){

pinMode(11, INPUT); //配置左传感器IO口为输入
pinMode(12, INPUT); //配置中传感器IO口为输入
pinMode(13, INPUT); //配置右传感器IO口为输入
Serial.begin(9600); //打开串口,初始化
pinMode(INA,OUTPUT);
pinMode(INB,OUTPUT);   //配置电机驱动IO口为输出

}
这段代码里没有初始化PWM端口 所以你直接使用的时候会发现力矩不够

if ((SNUM==1)&&(SNUM==1)&&(SNUM==1))//所有传感器都没有检测到障碍
    motospd(100,100);                        //直行
if ((SNUM==0)&&(SNUM==1)&&(SNUM==1)) //左传感器检测到障碍物
    motospd(100,50);                           //右转
if ((SNUM==1)&&(SNUM==1)&&(SNUM==0)) //右传感器检测到障碍物
    motospd(50,100);                           //左转
if ((SNUM==1)&&(SNUM==0)&&(SNUM==1)) //中传感器检测到障碍物
    motospd(-100,-100);                           //后退
其次这里的PWM值过小 建议改大

新月 发表于 2013-12-24 15:50:04

其次这里的PWM值过小 建议改大
是的改大后两节3.7V锂电可以运行了,谢了!

沧海笑1122 发表于 2013-12-27 15:25:50

建议上航模电池吧,你是不是两节18650?持续放电能力不足,我换了7.4V 5200MAH车模电池 30C。
我的蓝牙小车,703N视频,几乎都走不动,18650用不了多久就没电了。

新月 发表于 2013-12-27 21:22:33

沧海笑1122 发表于 2013-12-27 15:25 static/image/common/back.gif
建议上航模电池吧,你是不是两节18650?持续放电能力不足,我换了7.4V 5200MAH车模电池 30C。
我的蓝牙小车 ...

我买了两节26650 6800mAH准备试一下。

沧海笑1122 发表于 2013-12-27 23:32:24

锂电池有一个重要的参数,叫做最大可持续放电倍数,代表提供大电流的能力,也就是说,同样的容量,航模电池可以在一定时间内提供更大的电流。
页: [1] 2
查看完整版本: 399元的小车