超声波控制舵机旋转45度循环3次后停止
时间: 2023-07-28 18:15:28 浏览: 104
首先需要连接超声波传感器和舵机,然后编写控制程序。以下是一个示例代码:
```
#include <Servo.h>
Servo myservo; // 定义舵机对象
int trigPin = 9; // 超声波传感器 trig 引脚连接到 Arduino 的 9 号引脚
int echoPin = 10; // 超声波传感器 echo 引脚连接到 Arduino 的 10 号引脚
void setup() {
myservo.attach(11); // 将舵机信号引脚连接到 Arduino 的 11 号引脚
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600); // 初始化串口
}
void loop() {
for (int i = 0; i < 3; i++) { // 循环3次
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
float duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2; // 计算距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 20) { // 如果距离小于20厘米,舵机旋转45度
myservo.write(45);
delay(500);
} else { // 否则舵机旋转0度
myservo.write(0);
}
}
myservo.write(0); // 停止舵机运动
delay(1000);
}
```
该代码使用超声波传感器测量距离,当距离小于20厘米时,舵机旋转45度,否则舵机旋转0度。
循环3次后,舵机会停止运动。建议在调试时先将舵机停止运动的代码注释掉,以便观察舵机的运动情况。
阅读全文