arduino超声波控制两个舵机,一个逆时针旋转180度,一个顺时针旋转180度
时间: 2023-08-20 18:07:16 浏览: 180
LabVIEW控制Arduino实现舵机联控(单机+多机控制)
5星 · 资源好评率100%
以下是一个简单的Arduino代码,通过超声波模块控制两个舵机的旋转:
```C++
#include <Servo.h>
#define trigPin 11
#define echoPin 12
Servo servo1;
Servo servo2;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo1.attach(9); // 舵机1连接到引脚9
servo2.attach(10); // 舵机2连接到引脚10
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW); // 发送低电平信号
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // 发送高电平信号
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // 发送低电平信号
duration = pulseIn(echoPin, HIGH); // 读取高电平信号持续时间,单位为微秒
distance = duration / 29 / 2; // 计算距离,单位为厘米
if (distance < 10) { // 如果距离小于10厘米
servo1.write(0); // 舵机1逆时针旋转180度
servo2.write(180); // 舵机2顺时针旋转180度
} else { // 否则
servo1.write(90); // 舵机1停止
servo2.write(90); // 舵机2停止
}
delay(100); // 等待100毫秒,避免频繁测量距离
}
```
在上述代码中,我们首先定义了超声波模块的 trigPin 和 echoPin 引脚,以及两个舵机的 Servo 对象 servo1 和 servo2。在 setup() 函数中,我们将舵机1连接到引脚9,将舵机2连接到引脚10。
在 loop() 函数中,我们首先使用超声波模块测量距离,并根据距离控制两个舵机的旋转。如果距离小于10厘米,我们就将舵机1逆时针旋转180度,将舵机2顺时针旋转180度;否则,我们就将两个舵机停止运动。
最后,我们使用 delay(100) 函数等待100毫秒,以避免频繁测量距离。
阅读全文