用arduino写一个避障小车代码
时间: 2024-01-26 10:02:17 浏览: 92
Arduino超声波智能避障小车完整代码.pdf
5星 · 资源好评率100%
好的,以下是一个简单的避障小车代码,基于Arduino开发板和超声波模块:
```
// 定义引脚
const int trigPin = 9; // 超声波模块的发送引脚
const int echoPin = 10; // 超声波模块的接收引脚
const int leftMotorPinA = 6; // 左电机A引脚
const int leftMotorPinB = 5; // 左电机B引脚
const int rightMotorPinA = 11; // 右电机A引脚
const int rightMotorPinB = 3; // 右电机B引脚
// 定义超声波模块的参数
long duration;
int distance;
void setup() {
// 初始化引脚
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(leftMotorPinA, OUTPUT);
pinMode(leftMotorPinB, OUTPUT);
pinMode(rightMotorPinA, OUTPUT);
pinMode(rightMotorPinB, OUTPUT);
// 初始化串口
Serial.begin(9600);
}
void loop() {
// 发送超声波信号
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 计算距离
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// 输出距离
Serial.print("Distance: ");
Serial.println(distance);
// 根据距离调整小车方向
if (distance < 20) { // 如果距离小于20厘米
// 停止电机
digitalWrite(leftMotorPinA, LOW);
digitalWrite(leftMotorPinB, LOW);
digitalWrite(rightMotorPinA, LOW);
digitalWrite(rightMotorPinB, LOW);
} else { // 如果距离大于等于20厘米
// 启动电机
digitalWrite(leftMotorPinA, HIGH);
digitalWrite(leftMotorPinB, LOW);
digitalWrite(rightMotorPinA, HIGH);
digitalWrite(rightMotorPinB, LOW);
}
delay(100);
}
```
这个代码使用超声波模块检测距离,如果距离小于20厘米,则停止电机,否则启动电机向前行驶。你可以根据实际情况进行调整。
阅读全文