极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8784|回复: 3

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

[复制链接]
发表于 2013-3-22 14:40:00 | 显示全部楼层 |阅读模式
#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:} 万分感谢
回复

使用道具 举报

发表于 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度。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-22 21:50:03 | 显示全部楼层
openmmoo 发表于 2013-3-22 19:09
这个简单我来回答吧!
这段程序只能控制3个舵机,即a,b,c
这一段

太感谢你了大神
回复 支持 反对

使用道具 举报

发表于 2013-3-23 10:49:45 | 显示全部楼层
感谢写这个程序的人吧,这个思路来控制舵机结构简单,思路清晰,真的很方便,
感谢别人拿出来分享,我们才如此方便
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-4 22:12 , Processed in 0.038066 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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