arduino超声波避障小车 要求根据hc-sr04超声波测距模块的代码
时间: 2023-09-24 18:12:33 浏览: 178
以下是基于HC-SR04超声波测距模块的Arduino避障小车代码:
```
//定义超声波测距模块接口
#define echoPin 2
#define trigPin 3
//定义电机驱动模块接口
#define in1 5
#define in2 6
#define in3 9
#define in4 10
//定义小车参数
#define carSpeed 100
#define safeDistance 20
void setup() {
//初始化串口通信
Serial.begin(9600);
//设置IO口模式
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop() {
//定义变量
long duration, distance;
int left, right;
//发送超声波信号
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//接收超声波信号
duration = pulseIn(echoPin, HIGH);
//计算距离
distance = duration / 58;
//打印距离
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
//判断距离并控制小车运动
if (distance > safeDistance) {
//往前走
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
left = right = carSpeed;
} else {
//停止
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
left = right = 0;
}
//打印电机速度
Serial.print("Left Motor Speed: ");
Serial.print(left);
Serial.print(", Right Motor Speed: ");
Serial.println(right);
}
```
该代码中首先定义了超声波测距模块和电机驱动模块的接口,然后在setup函数中初始化IO口模式,并在loop函数中发送超声波信号、接收超声波信号并计算距离,最后根据距离判断小车是否需要运动,并控制电机驱动模块使小车前进或停止。
阅读全文