极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8835|回复: 2

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

[复制链接]
发表于 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[3],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[i]==',')
    {
      j++;
    }
    else
    {numdata[j]=numdata[j]*10+(comdata[i]-'0');
    }

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



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

使用道具 举报

发表于 2013-3-30 21:16:36 | 显示全部楼层
#include<Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
String comdata="";
int numdata[3],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[i]==',')
    {
      j++;
    }
    else
    {numdata[j]=numdata[j]*10+(comdata[i]-'0');
    }

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



试一下这个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-7 22:53:55 | 显示全部楼层
349516385 发表于 2013-3-30 21:16
#include
Servo servo1;
Servo servo2;

{:3_62:}太感谢你了,我明天试试
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-9 06:34 , Processed in 0.043050 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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