用arduino写一个超声波避障小车代码
时间: 2024-01-26 20:02:17 浏览: 809
好的,以下是一个简单的超声波避障小车的 Arduino 代码:
```c++
// 定义引脚
#define TrigPin 9
#define EchoPin 10
#define LeftMotorForward 5
#define LeftMotorBackward 6
#define RightMotorForward 10
#define RightMotorBackward 11
void setup() {
// 初始化串口
Serial.begin(9600);
// 设置引脚模式
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(LeftMotorForward, OUTPUT);
pinMode(LeftMotorBackward, OUTPUT);
pinMode(RightMotorForward, OUTPUT);
pinMode(RightMotorBackward, OUTPUT);
}
void loop() {
// 发送超声波信号
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 接收超声波信号并计算距离
long duration = pulseIn(EchoPin, HIGH);
int distance = duration * 0.034 / 2;
// 输出距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// 判断是否需要避障
if (distance < 20) {
// 后退
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, HIGH);
digitalWrite(RightMotorForward, LOW);
digitalWrite(RightMotorBackward, HIGH);
delay(500);
// 左转
digitalWrite(LeftMotorForward, LOW);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(RightMotorBackward, LOW);
delay(500);
} else {
// 前进
digitalWrite(LeftMotorForward, HIGH);
digitalWrite(LeftMotorBackward, LOW);
digitalWrite(RightMotorForward, HIGH);
digitalWrite(RightMotorBackward, LOW);
}
}
```
这个代码使用一个超声波模块来检测前方障碍物的距离,如果距离小于 20 厘米就会后退然后左转避障,否则就会前进。你需要将代码上传到你的 Arduino 板子上并将超声波模块连接到正确的引脚上才能运行它。
阅读全文