arduino超声波控制舵机感应一次旋转45度循环3次
时间: 2023-09-19 22:13:27 浏览: 77
可以使用以下代码实现:
```C++
#include <Servo.h>
const int trigPin = 9;
const int echoPin = 10;
Servo myservo;
int pos = 0;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
myservo.attach(11);
}
void loop() {
for (int i = 0; i < 3; i++) { // 循环3次
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
if (distance > 0 && distance < 30) { // 超声波探测到障碍物
for (pos = 0; pos <= 180; pos += 45) { // 旋转45度
myservo.write(pos);
delay(500);
}
} else { // 没有探测到障碍物
myservo.write(0); // 将舵机回归初始位置
}
}
}
```
这段代码实现了使用超声波控制舵机,当超声波探测到障碍物时,舵机会感应一次旋转45度,循环3次。需要注意的是,这里使用的舵机库是 `Servo.h`。同时,舵机连接的引脚为11,可以根据实际情况进行调整。
阅读全文