arduino uno循迹小车代码
时间: 2023-09-05 20:08:42 浏览: 246
下面是一个基于 Arduino Uno 的循迹小车代码示例:
```c++
int leftSensor = 2; // 左传感器连接到2号引脚
int rightSensor = 3; // 右传感器连接到3号引脚
int leftMotorA = 5; // 左电机A引脚连接到5号引脚
int leftMotorB = 6; // 左电机B引脚连接到6号引脚
int rightMotorA = 9; // 右电机A引脚连接到9号引脚
int rightMotorB = 10; // 右电机B引脚连接到10号引脚
void setup() {
pinMode(leftSensor, INPUT); // 设置左传感器为输入模式
pinMode(rightSensor, INPUT); // 设置右传感器为输入模式
pinMode(leftMotorA, OUTPUT); // 设置左电机A为输出模式
pinMode(leftMotorB, OUTPUT); // 设置左电机B为输出模式
pinMode(rightMotorA, OUTPUT); // 设置右电机A为输出模式
pinMode(rightMotorB, OUTPUT); // 设置右电机B为输出模式
}
void loop() {
int leftValue = digitalRead(leftSensor); // 读取左传感器的值
int rightValue = digitalRead(rightSensor); // 读取右传感器的值
if (leftValue == HIGH && rightValue == LOW) { // 如果左边检测到了黑线,右边没有检测到
digitalWrite(leftMotorA, HIGH); // 左电机A正转
digitalWrite(leftMotorB, LOW); // 左电机B反转
digitalWrite(rightMotorA, HIGH); // 右电机A正转
digitalWrite(rightMotorB, LOW); // 右电机B反转
} else if (leftValue == LOW && rightValue == HIGH) { // 如果右边检测到了黑线,左边没有检测到
digitalWrite(leftMotorA, LOW); // 左电机A反转
digitalWrite(leftMotorB, HIGH); // 左电机B正转
digitalWrite(rightMotorA, LOW); // 右电机A反转
digitalWrite(rightMotorB, HIGH); // 右电机B正转
} else if (leftValue == HIGH && rightValue == HIGH) { // 如果两边都检测到了黑线
digitalWrite(leftMotorA, LOW); // 左电机A反转
digitalWrite(leftMotorB, HIGH); // 左电机B正转
digitalWrite(rightMotorA, HIGH); // 右电机A正转
digitalWrite(rightMotorB, LOW); // 右电机B反转
} else { // 如果两边都没有检测到黑线
digitalWrite(leftMotorA, LOW); // 左电机A反转
digitalWrite(leftMotorB, LOW); // 左电机B反转
digitalWrite(rightMotorA, LOW); // 右电机A反转
digitalWrite(rightMotorB, LOW); // 右电机B反转
}
}
```
这个代码实现了一个简单的循迹小车,通过两个红外传感器检测地面上的黑线来判断小车的运动方向,然后控制两个电机的运动来实现小车的行驶。注意,在使用这个代码时,需要将电机和传感器正确连接到 Arduino Uno 的引脚上。
阅读全文