arduino点按一次开关舵机转动到90度再点按以此转动到180度再点按以此转动到0度
时间: 2023-06-17 07:06:27 浏览: 107
可以使用以下代码实现:
```
#include <Servo.h>
Servo myservo;
int pos = 0;
int buttonState = 0;
int lastButtonState = 0;
void setup() {
myservo.attach(9); // 将舵机连接到数字引脚9
pinMode(2, INPUT); // 将开关连接到数字引脚2
}
void loop() {
buttonState = digitalRead(2); // 读取开关状态
if (buttonState != lastButtonState) { // 如果检测到开关状态改变
if (buttonState == HIGH) { // 如果检测到开关被按下
pos += 90; // 舵机转动90度
if (pos > 180) { // 如果舵机角度大于180度,将角度重置为0度
pos = 0;
}
myservo.write(pos); // 将舵机转动到指定角度
delay(15); // 等待舵机到达指定角度
}
}
lastButtonState = buttonState; // 记录上一次开关状态
}
```
在上述代码中,我们首先将舵机连接到数字引脚9,并将开关连接到数字引脚2。然后,我们在 `loop()` 函数中检测开关状态的改变。如果检测到开关被按下,我们将舵机角度加上90度,并将其转动到指定角度。如果舵机角度大于180度,我们将角度重置为0度。最后,我们使用 `delay()` 函数等待舵机到达指定角度。
阅读全文