```c++ #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 引脚上。

代码的逻辑是通过读取循迹传感器的值来判断小车的位置,然后控制电机的转动来进行相应的动作。如果传感器输出的值符合左转、直行、右转的条件,则分别控制电机的转速和方向。如果传感器输出的值不符合以上条件,则停止电机的转动。

请注意,具体的引脚连接和传感器输出值的判断条件可能需要根据实际硬件和传感器的特性进行调整。

Arduino 循迹小车代码:使用 AFMotor 库实现自动循迹

原文地址: https://www.cveoy.top/t/topic/p4lR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录