极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12539|回复: 7

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

[复制链接]
发表于 2013-8-6 17:26:47 | 显示全部楼层 |阅读模式
求解决方法#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
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
int posx=0;
int posy=0;  
while(posx>0&&posx

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

使用道具 举报

发表于 2013-8-7 11:57:16 | 显示全部楼层
罹凝寒冰 发表于 2013-8-7 09:47
肯定是没进去 要不肯定舵机会动的 不过问题已经解决了    把while  这个判断删掉就可以了

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

使用道具 举报

 楼主| 发表于 2013-8-7 16:00:07 | 显示全部楼层
victory_6226 发表于 2013-8-7 11:57
仅仅是删掉这个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上的舵机
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-6 21:21 , Processed in 0.107753 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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