八八七 2023-04-06 11:19 采纳率: 71.4%
浏览 47
已结题

arduino显示舵机正反转

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

  • 写回答

2条回答 默认 最新

  • 鬼马ops 2023-04-06 11:33
    关注

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

    #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 灯的开关状态。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 4月6日

悬赏问题

  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统
  • ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)
  • ¥15 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?