小车循迹代码 C8T6
循迹小车代码如下:
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int sensorLeft = A0;
int sensorMiddle = A1;
int sensorRight = A2;
void setup() {
pinMode(sensorLeft, INPUT);
pinMode(sensorMiddle, INPUT);
pinMode(sensorRight, INPUT);
Serial.begin(9600);
}
void loop() {
int leftValue = digitalRead(sensorLeft);
int middleValue = digitalRead(sensorMiddle);
int rightValue = digitalRead(sensorRight);
if (leftValue == HIGH && middleValue == LOW && rightValue == HIGH) {
// Turn left
motor1.setSpeed(200);
motor1.run(FORWARD);
motor2.setSpeed(200);
motor2.run(FORWARD);
motor3.setSpeed(0);
motor3.run(RELEASE);
motor4.setSpeed(0);
motor4.run(RELEASE);
} else if (leftValue == HIGH && middleValue == HIGH && rightValue == LOW) {
// Turn right
motor1.setSpeed(0);
motor1.run(RELEASE);
motor2.setSpeed(0);
motor2.run(RELEASE);
motor3.setSpeed(200);
motor3.run(FORWARD);
motor4.setSpeed(200);
motor4.run(FORWARD);
} else if (leftValue == LOW && middleValue == HIGH && rightValue == LOW) {
// Go straight
motor1.setSpeed(200);
motor1.run(FORWARD);
motor2.setSpeed(200);
motor2.run(FORWARD);
motor3.setSpeed(200);
motor3.run(FORWARD);
motor4.setSpeed(200);
motor4.run(FORWARD);
} else {
// Stop
motor1.setSpeed(0);
motor1.run(RELEASE);
motor2.setSpeed(0);
motor2.run(RELEASE);
motor3.setSpeed(0);
motor3.run(RELEASE);
motor4.setSpeed(0);
motor4.run(RELEASE);
}
}
这段代码使用了AFMotor库,需要先在Arduino IDE中安装该库才能编译运行。代码中使用了4个直流电机,分别连接到Arduino的引脚1、2、3、4上。循迹传感器的输出分别连接到Arduino的A0、A1、A2引脚上。
代码的逻辑是通过读取循迹传感器的值来判断小车的位置,然后控制电机的转动来进行相应的动作。如果传感器输出的值符合左转、直行、右转的条件,则分别控制电机的转速和方向。如果传感器输出的值不符合以上条件,则停止电机的转动。
请注意,具体的引脚连接和传感器输出值的判断条件可能需要根据实际硬件和传感器的特性进行调整
原文地址: https://www.cveoy.top/t/topic/imkM 著作权归作者所有。请勿转载和采集!