arduino超声波控制舵机转45度循环三次
时间: 2023-07-30 16:10:11 浏览: 71
可以使用以下代码实现:
```C++
#include <Servo.h>
const int trigPin = 9; // 超声波Trig引脚
const int echoPin = 10; // 超声波Echo引脚
Servo myservo; // 创建舵机对象
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach(11); // 将舵机连接到数字引脚11
}
void loop() {
for (int i = 0; i < 3; i++) { // 循环三次
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2;
if (distance > 0 && distance < 10) { // 超声波测距小于10cm时
myservo.write(45); // 舵机转动45度
delay(1000); // 延时1秒
myservo.write(0); // 舵机归位
}
}
}
```
这段代码中,使用了超声波模块测量距离,当距离小于10cm时,舵机会转动45度,延时1秒后再归位。整个过程会循环三次。需要注意的是,舵机需要先通过 `myservo.attach()` 方法连接到相应的数字引脚。