arduino显示舵机正反转

怎么写舵机正转时红灯亮,反转就绿灯亮,如果停止转就都不亮的命令啊

以下是示例代码,可以实现您所描述的功能:

#include <Servo.h>

Servo myservo;

int pos = 90;    // 初始舵机位置为 90 度

int redLED = 2;  // 红灯接在 2 号引脚
int greenLED = 3;  // 绿灯接在 3 号引脚

void setup() {
  myservo.attach(9);  // 舵机接在 9 号引脚
  pinMode(redLED, OUTPUT);  // 设置红灯为输出引脚
  pinMode(greenLED, OUTPUT);  // 设置绿灯为输出引脚
}

void loop() {
  // 让舵机正转
  for (pos = 90; pos <= 180; pos += 1) {
    myservo.write(pos);    // 移动舵机
    digitalWrite(redLED, HIGH);  // 打开红灯
    digitalWrite(greenLED, LOW);  // 关闭绿灯
    delay(15);             // 等待舵机到达目标位置
  }

  // 让舵机反转
  for (pos = 180; pos >= 0; pos -= 1) {
    myservo.write(pos);    // 移动舵机
    digitalWrite(redLED, LOW);   // 关闭红灯
    digitalWrite(greenLED, HIGH);  // 打开绿灯
    delay(15);             // 等待舵机到达目标位置
  }

  // 让舵机停止运动
  myservo.write(90);      // 将舵机位置设置为初始位置
  digitalWrite(redLED, LOW);   // 关闭红灯
  digitalWrite(greenLED, LOW);  // 关闭绿灯
  delay(1000);             // 等待 1 秒钟
}

注释:以上代码中,舵机接在数字引脚 9 上,红灯接在数字引脚 2 上,绿灯接在数字引脚 3 上。在 loop() 函数中,首先让舵机正转,同时打开红灯;然后让舵机反转,同时打开绿灯;最后让舵机停止运动,同时关闭红灯和绿灯,延时 1 秒钟后再开始下一轮循环。通过 digitalWrite() 函数可以控制 LED 灯的开关状态。