lxp5521 发表于 2013-3-22 14:40:00

arduino新手,一些关于舵机很简单的问题求助各位大神

#include<Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;

void setup()
{
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
Serial.begin(9600);
}
void loop()
{
static int angle=0;
if(Serial.available())
{char ch=Serial.read();
switch(ch)
{
    case'0'...'9':
   angle =angle*10+ch-'0';
    break;
    case'a':
    servo1.write(angle);

angle=0
    break;
    case'b':
    servo2.write(angle);
    angle=0;
    break;
    case'c':
    servo3.write(angle);
    angle=0;
    break;
}

}
}




这段程序里面的


{

static int xp=0;

if(Serial.available())

{char ch=Serial.read();

switch(ch)

{

    case'0'...'9':

    xp=xp*10+ch-'0';

    break;

是什么意思?

比如我输入90a,它就会把那个舵机转到90度,怎么做到的?

怎么把90和a分离开来的

还有,如果我要编一段程序电脑输入(90,80,70)它就会同时把第一个转到90,第二80第三70,要怎么修改?


{:soso_e163:} 万分感谢

openmmoo 发表于 2013-3-22 19:09:48

这个简单我来回答吧!{:soso_e100:}
这段程序只能控制3个舵机,即a,b,c
这一段
case'0'...'9':
   angle =angle*10+ch-'0';
是将接收到的数字字符转为数字
这一行
case'a':
    servo1.write(angle);
angle=0
是在接收到a时,控制a舵机。

电脑输入(90,80,70)是执行不了的,应该转入90a80b70c,意思是控制a舵机到90度,b到80度。

lxp5521 发表于 2013-3-22 21:50:03

openmmoo 发表于 2013-3-22 19:09 static/image/common/back.gif
这个简单我来回答吧!
这段程序只能控制3个舵机,即a,b,c
这一段


:kiss:太感谢你了大神

openmmoo 发表于 2013-3-23 10:49:45

感谢写这个程序的人吧,这个思路来控制舵机结构简单,思路清晰,真的很方便,
感谢别人拿出来分享,我们才如此方便
页: [1]
查看完整版本: arduino新手,一些关于舵机很简单的问题求助各位大神