Arduino循线机器人红外遥控调速失效问题求助
问题分析
你的代码存在几个核心问题导致红外调速失效:
- 循线逻辑覆盖调速指令:循线的
if语句在红外判断之后执行,每次循环都会强制把电机速度设为固定的175,完全覆盖了红外调速的设置。 - 无速度状态变量:没有用变量保存当前速度,每次调速都是直接写死数值,无法在循线过程中持续生效。
- 红外按键逻辑错误:你写的红外触发逻辑里,电机输出完全不符合循线要求(直接停掉左电机,只开右电机),而且没有处理红外按键的重复触发(遥控器长按会发送重复码)。
- 红外解码状态未持久化:
results.value只有在收到新红外信号时才会更新,没有信号时会保留旧值,可能导致误触发。
修正后的代码
#include <IRremote.h> const int RECV_PIN = A5; IRrecv irrecv(RECV_PIN); decode_results results; int cs; // CENTER SENSOR int lmt1 = 5; // LEFT MOTOR 1 int lmt2 = 3; // LEFT MOTOR 2 int rmt1 = 6; // RIGHT MOTOR 1 int rmt2 = 11; // RIGHT MOTOR 2 int motorSpeed = 175; // 全局速度变量,默认低速 const uint32_t SPEED_UP_CODE = 0xFE58A7; // 加速按键码,根据你的遥控器实际值调整 const uint32_t SPEED_DOWN_CODE = 0xFE10EF; // 减速按键码,示例值,需替换为你的遥控器实际码 void setup() { pinMode(8, INPUT); pinMode(lmt1, OUTPUT); pinMode(lmt2, OUTPUT); pinMode(rmt1, OUTPUT); pinMode(rmt2, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); } void loop() { // 先处理红外输入,更新速度 if (irrecv.decode(&results)) { Serial.println(results.value, HEX); if (results.value == SPEED_UP_CODE || results.value == 0xFFFFFFFF) { // 0xFFFFFFFF是重复码,对应长按 motorSpeed = 255; // 切换到高速 } else if (results.value == SPEED_DOWN_CODE || results.value == 0xFFFFFFFF) { motorSpeed = 175; // 切换回低速 } irrecv.resume(); // 准备接收下一个信号 } // 再处理循线逻辑,使用当前速度变量 cs = digitalRead(8); if (cs == LOW) { // 左拐(保留原传感器逻辑) analogWrite(lmt1, 0); analogWrite(lmt2, motorSpeed); analogWrite(rmt1, motorSpeed); analogWrite(rmt2, 0); } else { // 右拐(保留原传感器逻辑) analogWrite(lmt1, motorSpeed); analogWrite(lmt2, 0); analogWrite(rmt1, 0); analogWrite(rmt2, motorSpeed); } }
关键修改说明
- 新增全局速度变量:用
motorSpeed保存当前速度,循线逻辑直接调用这个变量,确保调速后持续生效。 - 调整代码顺序:先处理红外输入更新速度,再执行循线逻辑,避免循线指令覆盖调速设置。
- 处理红外重复码:添加对
0xFFFFFFFF的判断,支持遥控器长按切换速度(大部分红外遥控器长按会发送重复码)。 - 修正电机逻辑:红外调速不再改变循线的转向逻辑,只调整速度值,保证调速时仍保持循线状态。
- 按键码可配置:把按键码定义为常量,方便你根据串口打印的实际按键值修改。
额外检查点
- 打开串口监视器,按下红外遥控器按键,确认打印的十六进制码和你定义的
SPEED_UP_CODE、SPEED_DOWN_CODE一致,不一致的话替换为实际值。 - 确认L298N的接线正确,电机引脚连接到Arduino的PWM引脚(你用的5、3、6、11都是PWM引脚,没问题)。
- 确认红外接收器接线正确,VCC接5V,GND接GND,信号脚接A5。
内容的提问来源于stack exchange,提问作者Shreyas Tandon
相关产品推荐
相关产品推荐

