-1
#include <Servo.h>
Servo servo1;
Servo servo2;


void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
servo1.attach(6);
servo1.write(0);
servo2.attach(7);
servo2.write(0);
}

void loop() {
  // put your main code here, to run repeatedly:
String readString;
String Q;
String V1Val;
int v1;

//-------------------------------Check Serial Port---------------------------------------
 while (Serial.available()) {
    delay(1);  //delay to allow buffer to fill 
    if (Serial.available() >0) {
      char c = Serial.read();  //gets one byte from serial buffer
    if (isControl(c)) {
      //'Serial.println("it's a control character");
      break;
    }
      readString += c; //makes the string readString    
    }
 }   

 Q = readString;
//--------Checking Serial Read----------
      

        if(Q.substring(0,1)=="S"){
        V1Val = Q.substring(1);
        v1 = V1Val.toInt();

        delay(100);     
        servo1.write(v1);   
        servo2.write(v1);             
      }

    
}

我希望此代码与 2 个伺服器一起使用,但在串行监视器中单独使用 示例:S100 将 1 个伺服器移动到 100 度和 Q50 将伺服器号 2 移动到 50 度 我从其他人那里得到了这个代码,所以我不知道如何制作它分别为 2 个舵机工作

4

1 回答 1

0

您可以将相同的想法从伺服 1 复制到伺服 2:

  if (Q.substring(0, 1) == "S") {
    V1Val = Q.substring(1);
    v1 = V1Val.toInt();

    delay(100);
    servo1.write(v1);
  }

  if (Q.substring(0, 1) == "Q") {
    V1Val = Q.substring(1);
    v1 = V1Val.toInt();

    delay(100);
    servo2.write(v1);
  }
于 2021-09-08T15:02:28.923 回答