用arduino写一个循迹小车的程序
时间: 2023-05-21 08:05:02 浏览: 136
很好,这是一个编程类的问题。下面是一个简单的Arduino循迹小车程序:
```
const int leftSensorPin= A0; // 左红外线传感器引脚
const int rightSensorPin= A1; // 右红外线传感器引脚
const int leftMotorPin= 9; // 左马达引脚
const int rightMotorPin= 10; // 右马达引脚
int leftSensorValue= 0;
int rightSensorValue= 0;
void setup() {
pinMode(leftSensorPin,INPUT); // 左传感器将作为输入
pinMode(rightSensorPin,INPUT); // 右传感器将作为输入
pinMode(leftMotorPin,OUTPUT); // 左马达将作为输出
pinMode(rightMotorPin,OUTPUT); // 右马达将作为输出
Serial.begin(9600); // 开启串口通信和波特率
}
void loop() {
leftSensorValue= digitalRead(leftSensorPin); // 获取左传感器读数
rightSensorValue= digitalRead(rightSensorPin); // 获取右传感器读数
Serial.print("Left Sensor: "); // 输出左传感器读数
Serial.println(leftSensorValue);
Serial.print("Right Sensor: "); // 输出右传感器读数
Serial.println(rightSensorValue);
if(leftSensorValue==1 && rightSensorValue==1){ // 如果两边都检测到黑线,小车直行
digitalWrite(leftMotorPin,HIGH); // 左马达正转
digitalWrite(rightMotorPin,HIGH); // 右马达正转
}
else if(leftSensorValue==0 && rightSensorValue==1){ // 如果右边检测到黑线,小车向右转
digitalWrite(leftMotorPin,HIGH); // 左马达正转
digitalWrite(rightMotorPin,LOW); // 右马达反转
}
else if(leftSensorValue==1 && rightSensorValue==0){ // 如果左边检测到黑线,小车向左转
digitalWrite(leftMotorPin,LOW); // 左马达反转
digitalWrite(rightMotorPin,HIGH); // 右马达正转
}
else{ // 如果两边都没有检测到黑线,小车停止
digitalWrite(leftMotorPin,LOW); // 左马达反转
digitalWrite(rightMotorPin,LOW); // 右马达反转
}
}
```
这个程序使用两个红外线传感器来检测小车前面的黑线,根据传感器的读数,控制左右马达的转向,从而实现小车沿着黑线行驶的效果。