开群机器人|QQ群机器人|微信群机器人|三公机器人

三公机器人 八路循迹模块DO端基础原理

🛠️ 八路循迹模块DO端基础原理


八路循迹模块的核心是8路TCRT5000红外对管,每一路都独立引出DO数字输出引脚:


检测到‌白色高反射面‌时,红外信号反射回接收管,DO输出‌低电平‌,对应模块上的绿色指示灯亮起。

检测到‌黑色低反射面‌时,红外信号被黑线吸收,DO输出‌高电平‌,对应绿色指示灯熄灭。

模块上的蓝色电位器可调节检测灵敏度:顺时针旋转灵敏度升高,逆时针旋转灵敏度降低,检测距离适配1~25mm区间。

⚡ 硬件接线(以STM32/Arduino为例)

供电‌:模块VCC接3.3V~5V,GND接开发板共地,避免电平不匹配导致DO信号乱跳。

DO引脚连接‌:将8路DO依次接到开发板的8个普通GPIO输入引脚,推荐连续排布(如PA0~PA7),方便一次性读取8位状态值。

电机驱动‌:搭配L298N/L293D驱动板,左右两组电机的IN引脚接开发板GPIO,ENA/ENB接PWM引脚用于调速。

🚗 极简入门代码(Arduino版)


这段代码直接读取8路DO的数字状态,用最基础的分级控制逻辑,让小车立刻沿着黑线跑起来:


cpp

// 8路DO引脚定义(连续排布)

const int sensorPins[8] = {A0, A1, A2, A3, A4, A5, A6, A7};

// 电机控制引脚

const int in1 = 2, in2 = 3, in3 = 4, in4 = 5;

const int enA = 9, enB = 10;

// 基础速度值

int baseSpeed = 150;


void setup() {

  // 初始化传感器引脚为输入

  for(int i=0; i<8; i++) pinMode(sensorPins[i], INPUT);

  // 初始化电机引脚为输出

  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT);

  pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);

  // 启动PWM调速

  analogWrite(enA, baseSpeed);

  analogWrite(enB, baseSpeed);

}


// 基础前进函数

void forward() {

  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);

  digitalWrite(in3, HIGH); digitalWrite(in4, LOW);

}


// 原地左转

void turnLeft() {

  digitalWrite(in1, LOW); digitalWrite(in2, HIGH);

  digitalWrite(in3, HIGH); digitalWrite(in4, LOW);

}


// 原地右转

void turnRight() {

  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);

  digitalWrite(in3, LOW); digitalWrite(in4, HIGH);

}


void loop() {

  // 读取8路DO状态,1=检测到黑线,0=检测到白底

  byte sensorStatus = 0;

  for(int i=0; i<8; i++) {

    sensorStatus |= digitalRead(sensorPins[i]) << i;

  }


  // 核心循迹逻辑:根据DO状态分级调整

  if(sensorStatus == 0b00011000) {

    // 中间2个传感器检测到黑线,直行

    forward();

  } 

  else if(sensorStatus < 0b00011000) {

    // 黑线偏左,快速右转修正

    turnRight();

  } 

  else {

    // 黑线偏右,快速左转修正

    turnLeft();

  }

}


✅ 首次跑通调试步骤

静态校准‌:上电后把小车放在黑线上,调节电位器,让黑线刚好落在中间2个传感器上时,对应DO引脚电平稳定,指示灯状态清晰。

低速试跑‌:先把baseSpeed调到100以下,让小车在简单直线路径上跑,确认DO读取逻辑和电机转向没有接反。

逐步提速‌:确认基础循迹稳定后,逐步调高PWM占空比,同时根据实际路径的弯道复杂度,调整左右修正的速度差,避免小车冲出赛道。


这套方案完全基于DO数字信号实现,不需要复杂的AD采样,新手零门槛就能快速让小车沿着线跑起来。


需要我为你补充适配51单片机的八路循迹DO端口完整代码吗?直接兼容L298N驱动板,拿来就能烧录运行。


admin
admin
这个人很神秘

发布评论