请写一个基于arduino的超声波避障小车程序,要求不能有舵机参与,通过只改变两个电机转速来实现避障。
时间: 2023-04-05 21:04:32 浏览: 161
智能超声波避障小车.txt
好的,我可以回答这个问题。以下是一个基于Arduino的超声波避障小车程序,使用两个电机转速来实现避障:
```
#include <NewPing.h>
#define TRIGGER_PIN 12
#define ECHO_PIN 11
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int motor1Pin1 = 2;
int motor1Pin2 = 3;
int motor2Pin1 = 4;
int motor2Pin2 = 5;
void setup() {
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
delay(50);
int distance = sonar.ping_cm();
if (distance < 10) {
// 障碍物太近,后退
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
delay(500);
// 左转
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
delay(500);
} else {
// 前进
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
}
```
这个程序使用超声波传感器来检测障碍物的距离,如果距离小于10厘米,就后退一段时间,然后左转。如果距离大于等于10厘米,就前进。通过改变电机的转速来实现避障。
阅读全文