怎么写舵机正转时红灯亮,反转就绿灯亮,如果停止转就都不亮的命令啊
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 灯的开关状态。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
- ¥15 c语言数据结构高铁订票系统
- ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)
- ¥15 (标签-STM32|关键词-智能小车)
- ¥20 关于#stm32#的问题,请各位专家解答!
- ¥15 (标签-python)
- ¥20 搭建awx,试了很多版本都有错
- ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
- ¥15 activiti工作流问题,求解答
- ¥15 有人写过RPA后台管理系统么?