arduino红外避障小车代码
时间: 2023-11-18 21:03:28 浏览: 61
以下是一个基于Arduino的红外避障小车代码的范例:
```arduino
//定义引脚
#define pinLF 4
#define pinLB 5
#define pinRF 6
#define pinRB 7
#define MotorLPWM 3
#define MotorRPWM 11
#define IR 2
//定义变量
int speed = 150;
int distance = 15;
void setup() {
pinMode(pinLF, OUTPUT);
pinMode(pinLB, OUTPUT);
pinMode(pinRF, OUTPUT);
pinMode(pinRB, OUTPUT);
pinMode(MotorLPWM, OUTPUT);
pinMode(MotorRPWM, OUTPUT);
pinMode(IR, INPUT);
}
void loop() {
if (digitalRead(IR) == LOW) {
back(1);
left(1);
} else {
forward(1);
}
}
void forward(int c) {
digitalWrite(pinLF, HIGH);
digitalWrite(pinLB, LOW);
digitalWrite(pinRF, HIGH);
digitalWrite(pinRB, LOW);
analogWrite(MotorLPWM, speed);
analogWrite(MotorRPWM, speed);
delay(c * 100);
}
void back(int c) {
digitalWrite(pinLF, LOW);
digitalWrite(pinLB, HIGH);
digitalWrite(pinRF, LOW);
digitalWrite(pinRB, HIGH);
analogWrite(MotorLPWM, speed);
analogWrite(MotorRPWM, speed);
delay(c * 100);
}
void left(int c) {
digitalWrite(pinRB, LOW);
digitalWrite(pinRF, HIGH);
digitalWrite(pinLB, HIGH);
digitalWrite(pinLF, HIGH);
analogWrite(MotorRPWM, speed);
delay(c * 100);
}
void right(int c) {
digitalWrite(pinLB, HIGH);
digitalWrite(pinLF, LOW);
digitalWrite(pinRF, HIGH);
digitalWrite(pinRB, LOW);
analogWrite(MotorLPWM, speed);
delay(c * 100);
}
```
该代码使用了红外传感器来检测前方是否有障碍物,如果检测到障碍物,则小车会后退并向左转,否则小车会向前行驶。其中,`forward()`、`back()`、`left()`和`right()`函数分别用于控制小车的前进、后退、左转和右转。在这些函数中,`analogWrite()`函数用于控制电机的转速,`digitalWrite()`函数用于控制电机的正反转,`delay()`函数用于控制小车的运动时间。