以下是四路循迹模块小车在十字路口的时候实现左转弯的代码:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

int leftPin = A0; // 左侧循迹传感器引脚
int rightPin = A1; // 右侧循迹传感器引脚
int middlePin = A2; // 中间循迹传感器引脚
int leftMotor1 = 5; // 左侧电机控制引脚1
int leftMotor2 = 6; // 左侧电机控制引脚2
int rightMotor1 = 9; // 右侧电机控制引脚1
int rightMotor2 = 8; // 右侧电机控制引脚2
int speed = 150; // 小车移动速度
int delayTime = 500; // 停顿时间

void setup() {
  pinMode(leftPin, INPUT);
  pinMode(rightPin, INPUT);
  pinMode(middlePin, INPUT);
  pinMode(leftMotor1, OUTPUT);
  pinMode(leftMotor2, OUTPUT);
  pinMode(rightMotor1, OUTPUT);
  pinMode(rightMotor2, OUTPUT);
  mySerial.begin(9600);
}

void loop() {
  // 循迹传感器检测
  int leftValue = digitalRead(leftPin);
  int rightValue = digitalRead(rightPin);
  int middleValue = digitalRead(middlePin);

  // 如果小车在十字路口
  if (leftValue == LOW && rightValue == LOW && middleValue == LOW) {
    // 左转弯
    digitalWrite(leftMotor1, LOW);
    digitalWrite(leftMotor2, HIGH);
    digitalWrite(rightMotor1, HIGH);
    digitalWrite(rightMotor2, LOW);
    // 停顿一段时间
    delay(delayTime);
    // 前进
    digitalWrite(leftMotor1, HIGH);
    digitalWrite(leftMotor2, LOW);
    digitalWrite(rightMotor1, HIGH);
    digitalWrite(rightMotor2, LOW);
  }
  // 如果小车在直线上
  else if (leftValue == HIGH && rightValue == HIGH && middleValue == LOW) {
    // 前进
    digitalWrite(leftMotor1, HIGH);
    digitalWrite(leftMotor2, LOW);
    digitalWrite(rightMotor1, HIGH);
    digitalWrite(rightMotor2, LOW);
  }
  // 如果小车偏左
  else if (leftValue == LOW && rightValue == HIGH && middleValue == HIGH) {
    // 左转弯
    digitalWrite(leftMotor1, LOW);
    digitalWrite(leftMotor2, HIGH);
    digitalWrite(rightMotor1, HIGH);
    digitalWrite(rightMotor2, LOW);
  }
  // 如果小车偏右
  else if (leftValue == HIGH && rightValue == LOW && middleValue == HIGH) {
    // 右转弯
    digitalWrite(leftMotor1, HIGH);
    digitalWrite(leftMotor2, LOW);
    digitalWrite(rightMotor1, LOW);
    digitalWrite(rightMotor2, HIGH);
  }
  // 如果小车偏离轨道
  else {
    // 停止
    digitalWrite(leftMotor1, LOW);
    digitalWrite(leftMotor2, LOW);
    digitalWrite(rightMotor1, LOW);
    digitalWrite(rightMotor2, LOW);
  }
}

在代码中,我们通过循迹传感器检测小车的位置,如果小车在十字路口,就执行左转弯的操作,具体操作为:

  1. 将左侧电机的控制引脚1置为低电平,控制引脚2置为高电平,使左侧电机逆时针转动,实现左转弯;

  2. 将右侧电机的控制引脚1置为高电平,控制引脚2置为低电平,使右侧电机顺时针转动;

  3. 停顿一段时间,等待小车左转弯完成;

  4. 将左侧电机的控制引脚1和控制引脚2都置为高电平,将右侧电机的控制引脚1和控制引脚2都置为高电平,使小车前进。

通过以上操作,小车就可以在十字路口完成左转弯。

帮我写一个四路循迹模块小车在十字路口的时候实现左转弯的代码

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

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