将电机伺服的角度发送到同一程序中的另一个电机伺服

问题描述

我们项目的目标是跟踪一个带有发射器 IR 的人,我们还有一个接收器和 2 个电机伺服器。第一个用于保存人的角度,第二个用于跟随人。 有必要知道我们有一个其他的发射器程序。 然而,角度的保存仍然是错误的,我们的第二个电机伺服不起作用。 当我们的接收器有结果时,我们希望第二个电机转到保存的最后一个角度。

#include <Servo.h> 
#include <IRLibRecvPCI.h>
IRrecvPCI myReceiver(2);//pin number for the receiver
Servo monServo;
Servo monServo1;

void setup() {
  Serial.begin(9600);
  delay(2000); while (!Serial); 
    myReceiver.enableIRIn(); // Start the receiver
  Serial.println(F("Ready to receive IR signals"));
    monServo.attach(9);
    monServo1.attach(7);// relier le servomoteur au port 9 
  monServo.write(0);  // positionner le servomoteur à l'angle absolu 0°
}
int angle = 0;
int increment = 1;
 
void loop() {
 
       monServo.write(angle);
   angle = angle + increment;
   if (angle == 0); increment = 1;
   if (angle == 180); increment = -1;

   if (myReceiver.getResults()) {
   monServo1.write(angle);

   Serial.print("detection");
   myReceiver.enableIRIn();
   Serial.println(monServo.read());
;

   
      }
   
     } 

解决方法

 if (angle == 0); increment = 1;
   if (angle == 180); increment = -1;

相当于increment = -1;

这里有两个空的 if 语句。如果要有条件地更改增量值,请删除每行中的第一个分号。

您还应该添加一些延迟,因为您的伺服器将无法在几毫秒内移动 1°。

代码末尾还有一个多余的分号