罹凝寒冰 发表于 2013-8-6 17:26:47

Arduino调用自身串口监视器可以控制舵机转,用串口调试助手给舵机发送指令舵机不动

求解决方法#include <Servo.h>
Servo myservox;//创建一个水平舵机控制对象
Servo myservoy;   //竖直舵机
int posx=0;
int posy=0;
char c;

void setup()
{
myservox.attach(7); //   shuiping 9jiao
myservoy.attach(8); // 该舵机由arduino第10脚控制
Serial.begin(9600);
myservox.write(0);
myservoy.write(0);
}

void loop()

{
if(Serial.available())
   c=Serial.read();
   switch(c)
{
      case 'L':   //left
      while(posx>0&&posx<=180)
         {
          posx=posx-1;
          myservox.write(posx);
          delay(500);
         break ;
          }
   case 'R':   //right
       while(posx>=0&&posx<180)
       {
         posx=posx+1;
         myservoy.write(posx);
         delay(500);
         break;
   }
    case 'U': //up
   // while(posy>=0&&posy<90)
   // {
       posy=posy+1;
       myservoy.write(posy);
       delay(500);
       break;
   // }
    case 'D':   //down
    // while(posy>0&&posy<=90)
   //{
      posy=posy-1;
      myservoy.write(posy);
      delay(500);
       break;
   // }
    Serial.print(c);
}
delay(100);
   

}

   调用自身的串口监视器可以发送 L RD U等可以控制两个舵机转动 ,但是调用串口调试助手则不动 求大神解决方法

隨風大俠 发表于 2013-8-6 18:04:29

myservoy.attach(8); // 该舵机由arduino第10脚控制

明明是第8腳啊~~!!

茕兔 发表于 2013-8-6 21:00:54

串口助手用十六进制发送LRDU的ASCII码试试呢

罹凝寒冰 发表于 2013-8-6 21:12:50

TTTTTTT33 发表于 2013-8-6 18:04 static/image/common/back.gif
myservoy.attach(8); // 该舵机由arduino第10脚控制

明明是第8腳啊~~!!

注释无所谓的关键是程序

拾瑞 发表于 2013-8-7 08:35:22

int posx=0;
int posy=0;
while(posx>0&&posx<=180)
          posx=posx-1;
          myservox.write(posx);
          delay(500);
         break ;

你觉得进得了循环吗?

罹凝寒冰 发表于 2013-8-7 09:47:55

拾瑞 发表于 2013-8-7 08:35 static/image/common/back.gif
int posx=0;
int posy=0;
while(posx>0&&posx

肯定是没进去 要不肯定舵机会动的 不过问题已经解决了    把while这个判断删掉就可以了

victory_6226 发表于 2013-8-7 11:57:16

罹凝寒冰 发表于 2013-8-7 09:47 static/image/common/back.gif
肯定是没进去 要不肯定舵机会动的 不过问题已经解决了    把while这个判断删掉就可以了

仅仅是删掉这个While就可以了吗?楼主能贴最终的代码上来吗?
另外proteus可以仿真舵机吗?

罹凝寒冰 发表于 2013-8-7 16:00:07

victory_6226 发表于 2013-8-7 11:57 static/image/common/back.gif
仅仅是删掉这个While就可以了吗?楼主能贴最终的代码上来吗?
另外proteus可以仿真舵机吗?

#include <Servo.h>
Servo myservox;//创建一个水平舵机控制对象
Servo myservoy;   //竖直舵机
int posx=10;
int posy=10;
char c;

void setup()
{
myservox.attach(7); //   shuiping 9jiao
myservoy.attach(10); // 该舵机由arduino第10脚控制
Serial.begin(9600);
myservox.write(10);
myservoy.write(10);
}

void loop()

{
if(Serial.available())
   c=Serial.read();
   switch(c)
{
      case 'L':   //left
       // while(posx>0&&posx<=180)
         //{
          posx=posx-1;
          myservox.write(posx);
          delay(10);
         break ;
          //}
      case 'R':   //right
       //while(posx>=0&&posx<180)
       //{
         posx=posx+1;
         myservox.write(posx);
         delay(10);
         break;
       //}
      case 'D': //up
      //while(posy>=0&&posy<90)
         //{
          posy=posy+1;
          myservoy.write(posy);
          delay(10);
          break;
         //}
      case 'U':   //down
      //while(posy>0&&posy<=90)
      //{
          posy=posy-1;
          myservoy.write(posy);
          delay(10);
          break;
      //}
      
}
    delay(100);
    Serial.print(c);

}

   就是这个   我不是用的仿真我用C#编写的界面 通过按钮控制arduino上的舵机
页: [1]
查看完整版本: Arduino调用自身串口监视器可以控制舵机转,用串口调试助手给舵机发送指令舵机不动