• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

那位大神帮忙看看代码错在哪里了,一直找不到问题。

crustycrab 2017-05-29 浏览量:702
#include <Servo.h>
#define SERVO1_PIN  8u
Servo myServo1;
int incomingByte = 0; //输入串行数据 
char selectedMotor;
void setup(){ 
  Serial.begin(115200);
  myServo1.attach(SERVO1_PIN);
  delay(15);
  //myServo1.write(0);
  //delay(15); 
}
void loop(){ 
   if (Serial.available()> 0){ 
    //读取传入字节: 
    selectedMotor = Serial.read(); 
    incomingByte = Serial.read();
    
      if (selectedMotor == 'a'){ 
          myServo1.write(incomingByte);
          delay(15);// active first motor 
          } 
      else if (selectedMotor == 'b'){ 
          myServo1.write(incomingByte);
          delay(15);// active second motor 
          } 
      else {}  
        / *等等... * / 
   } 
  else  {}
}
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 正常按照你的程序来看应该没有问题,我也编译了一下,主要问题是()的问题,你的粘贴出来的代码是中文的()而不是英文的(),可能这就是报错的原因吧,至于逻辑有没有错误就不清楚了,也不知道你要做什么,只能看出你串口发送a使moter1工作,b使motor2工作但你的初始化只是写了一个servo那么只有一个sevor工作可以尝试这么改:

    #include <Servo.h>
    #define SERVO1_PIN  8u
    #define SERVO2_PIN  7u
    Servo myServo1;
    Servo myServo2;
    int incomingByte = 0; //输入串行数据
    char selectedMotor;
    void setup(){
      Serial.begin(115200);
      myServo1.attach(SERVO1_PIN);
      myServo2.attach(SERVO2_PIN);
      delay(15);
      //myServo1.write(0);
      //delay(15);
    }
    void loop(){
       if(Serial.available()> 0){
        //读取传入字节:
        selectedMotor = Serial.read();
        incomingByte = Serial.read();
       
          if(selectedMotor == 'a'){
              myServo1.write(incomingByte);
              delay(15);// active first motor
              }
          else if (selectedMotor == 'b'){
              myServo2.write(incomingByte);
              delay(15);// active second motor
              }
          else {} 
      }
      else  {}
    }

    • 发布于 2017-05-29
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:0

相关问题

问题达人换一批

那位大神帮忙看看代码错在哪里了,一直找不到问题。