Arduino 舵机和超声波避障代码:实现简单避障功能
Arduino 舵机和超声波避障代码:实现简单避障功能
本代码使用 Arduino 控制舵机和超声波传感器,实现简单避障功能。当超声波传感器检测到前方物体距离小于 30 厘米时,舵机向左转;否则向右转。代码附带详细注释,方便学习和理解。
#include <Servo.h>
Servo myservo; // 创建一个舵机对象
int trigPin = 7; // 定义超声波探头的引脚
int echoPin = 8;
long duration, distance; // 定义超声波探头测量的距离和时间变量
void setup() {
myservo.attach(9); // 将舵机连接到 9 号引脚
pinMode(trigPin, OUTPUT); // 将 trigPin 定义为输出
pinMode(echoPin, INPUT); // 将 echoPin 定义为输入
Serial.begin(9600); // 启动串口通信
}
void loop() {
// 发送一个 10 微秒的高电平脉冲到 trigPin
digitalWrite(trigPin, HIGH);
d delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 计算超声波探头测量的距离
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
// 如果距离小于 30 厘米,则舵机向左转
if (distance < 30) {
myservo.write(0); // 将舵机旋转到 0 度
}
// 如果距离大于 30 厘米,则舵机向右转
else {
myservo.write(90); // 将舵机旋转到 90 度
}
// 输出距离到串口监视器
Serial.print('Distance: ');
Serial.print(distance);
Serial.println(' cm');
delay(100); // 延迟 100 毫秒
}
代码的原理是,超声波探头发出一定频率的超声波,并在接收到反射回来的超声波后计算出物体与探头之间的距离。如果距离小于 30 厘米,舵机向左转,否则舵机向右转。同时,距离也会输出到串口监视器。
使用说明:
- 将超声波传感器连接到 Arduino 的数字引脚 7 和 8,舵机连接到数字引脚 9。
- 将代码上传到 Arduino 板。
- 打开串口监视器,观察距离值。
注意事项:
- 超声波传感器需要在空旷的环境下使用,避免周围有其他物体干扰。
- 舵机旋转角度需要根据实际情况进行调整。
更多信息:
- Arduino 舵机库:https://www.arduino.cc/en/Reference/Servo
- 超声波传感器原理:https://www.electronicshub.org/ultrasonic-sensor-working-principle-and-applications/
扩展应用:
- 可以使用多个超声波传感器,实现更复杂的避障功能。
- 可以将代码与其他传感器结合,实现更多功能,例如自动驾驶、智能家居等。
原文地址: https://www.cveoy.top/t/topic/nWcR 著作权归作者所有。请勿转载和采集!