lxp5521 发表于 2013-3-30 13:14:12

多个字符串控制舵机时遇到的问题

{:soso_e154:}请问一下各位大神,为什么我的程序控制舵机只能动一次,下一次输入就没反应了


{:soso_e154:}
参考:Arduino学习笔记A6(补充) - 在串口读取多个字符串,并且转换为数字数组
#include<Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
String comdata="";
int numdata,mark=0;
void setup()
{
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
Serial.begin(9600);
}
void loop()
{
int j=0;
while(Serial.available()>0)
{comdata+=char(Serial.read());
delay(2);
   mark=1;
}
if(mark==1)
{
Serial.println(comdata.length());
    for(int i=0;i<comdata.length()-1;i++)
{
    if(comdata==',')
    {
      j++;
    }
    else
    {numdata=numdata*10+(comdata-'0');
    }

}
comdata=String("");
for(int i = 0; i <3; i++)
{   
    servo1.write(numdata);
    servo2.write(numdata);
    servo3.write(numdata);
    numdata=0;
}
mark=0;
}
}



本人大一0基础自学,遇到问题真不知道从哪里下手,只能来论坛里问各位大哥。。。谢谢了
{:soso_e154:}

349516385 发表于 2013-3-30 21:16:36

#include<Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
String comdata="";
int numdata,mark=0;
void setup()
{
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
Serial.begin(9600);
}
void loop()
{
int j=0;
while(Serial.available()>0)
{comdata+=char(Serial.read());
delay(2);
   mark=1;
}
if(mark==1)
{
Serial.println(comdata.length());
    for(int i=0;i<comdata.length()-1;i++)
{
    if(comdata==',')
    {
      j++;
    }
    else
    {numdata=numdata*10+(comdata-'0');
    }

}
comdata=String("");
for(int i = 0; i <3; i++)
{   
    servo1.write(numdata);
    servo2.write(numdata);
    servo3.write(numdata);
    numdata=0;
}
mark=0;j=0;//这里改了!!!!!!!!!!!1
}
}



试一下这个

lxp5521 发表于 2013-4-7 22:53:55

349516385 发表于 2013-3-30 21:16 static/image/common/back.gif
#include
Servo servo1;
Servo servo2;


{:3_62:}太感谢你了,我明天试试
页: [1]
查看完整版本: 多个字符串控制舵机时遇到的问题