csdnarduino小车红外避障程序
时间: 2023-09-16 15:01:58 浏览: 39
csdn上有很多关于Arduino小车红外避障程序的教程和代码,以下是一个简单的示例程序:
#include <AFMotor.h> // 引入AF Motor库
#define LEFT_SENSOR 3 // 左边红外传感器引脚
#define RIGHT_SENSOR 4 // 右边红外传感器引脚
AF_DCMotor motor1(1); // 左边电机
AF_DCMotor motor2(2); // 右边电机
void setup() {
pinMode(LEFT_SENSOR, INPUT); // 设置传感器引脚为输入模式
pinMode(RIGHT_SENSOR, INPUT);
motor1.setSpeed(200); // 设置电机速度
motor2.setSpeed(200);
}
void loop() {
int leftSensorVal = digitalRead(LEFT_SENSOR); // 读取左边传感器的值
int rightSensorVal = digitalRead(RIGHT_SENSOR); // 读取右边传感器的值
if(leftSensorVal == LOW && rightSensorVal == LOW) { // 如果左右传感器都检测到障碍物
motor1.run(BACKWARD); // 后退
motor2.run(BACKWARD);
delay(1000); // 延时1秒
motor1.run(RELEASE); // 停止
motor2.run(RELEASE);
delay(1000);
motor1.run(BACKWARD); // 左转
motor2.run(FORWARD);
delay(1000);
motor1.run(RELEASE);
motor2.run(RELEASE);
delay(1000);
}
else if(leftSensorVal == LOW) { // 如果只检测到左边传感器的障碍物
motor1.run(FORWARD); // 右转
motor2.run(RELEASE);
}
else if(rightSensorVal == LOW) { // 如果只检测到右边传感器的障碍物
motor1.run(RELEASE); // 左转
motor2.run(FORWARD);
}
else { // 如果都没有检测到障碍物
motor1.run(FORWARD); // 前进
motor2.run(FORWARD);
}
}
这个程序使用了AF Motor库来控制小车的两个电机,并通过红外传感器的值来确定小车应该进行的动作。当左右传感器都检测到障碍物时,小车先后退片刻,然后左转180度;如果只检测到左边传感器的障碍物,小车右转;如果只检测到右边传感器的障碍物,小车左转;如果都没有检测到障碍物,则小车前进。这个程序可以实现简单的避障功能。