arduino红外避障小车的代码
时间: 2023-07-09 13:42:32 浏览: 91
以下是一个简单的Arduino红外避障小车的代码示例,其中使用了红外传感器来检测障碍物并控制小车的行动:
```C++
//定义左右电机引脚
int leftMotor1 = 5;//IN1
int leftMotor2 = 6;//IN2
int rightMotor1 = 10;//IN3
int rightMotor2 = 9;//IN4
//定义红外传感器引脚
int leftSensor = A0;
int rightSensor = A1;
void setup() {
//初始化电机引脚为输出模式
pinMode(leftMotor1, OUTPUT);
pinMode(leftMotor2, OUTPUT);
pinMode(rightMotor1, OUTPUT);
pinMode(rightMotor2, OUTPUT);
//初始化串口通信
Serial.begin(9600);
}
void loop() {
//读取红外传感器的值
int leftValue = analogRead(leftSensor);
int rightValue = analogRead(rightSensor);
//判断是否有障碍物
if (leftValue < 500 && rightValue < 500) { //左右都检测到障碍物
//后退
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
//输出调试信息
Serial.println("Backward");
} else if (leftValue < 500) { //只检测到左边的障碍物
//右转
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, LOW);
digitalWrite(rightMotor2, HIGH);
//输出调试信息
Serial.println("Turn Right");
} else if (rightValue < 500) { //只检测到右边的障碍物
//左转
digitalWrite(leftMotor1, LOW);
digitalWrite(leftMotor2, HIGH);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
//输出调试信息
Serial.println("Turn Left");
} else { //没有检测到障碍物
//前进
digitalWrite(leftMotor1, HIGH);
digitalWrite(leftMotor2, LOW);
digitalWrite(rightMotor1, HIGH);
digitalWrite(rightMotor2, LOW);
//输出调试信息
Serial.println("Forward");
}
//等待一段时间
delay(50);
}
```
需要注意的是,这只是一个简单的示例代码,具体的实现可能因硬件和需求的不同而有所不同。您需要根据自己的实际情况进行修改和调整。