#include "app_line_seek.h" #include "line_seek.h" #include "main.h" #include "motor.h" #include "syscalls.h" void App_LineSeek(void) { int LineL1 = 1, LineL2 = 1, LineR1 = 1, LineR2 = 1; LineSeek_Get(&LineL1, &LineL2, &LineR1, &LineR2); // 获取黑线检测状态 if ((LineL1 == LOW || LineL2 == LOW) && LineR2 == LOW) // 左大弯 { MOTOR_SetDuty(-30, 30); // 左旋 HAL_Delay(80); } else if (LineL1 == LOW && (LineR1 == LOW || LineR2 == LOW)) // 右大弯 { MOTOR_SetDuty(30, -30); // 右旋 HAL_Delay(80); } else if (LineL1 == LOW) // 左最外侧检测 { MOTOR_SetDuty(-50, 50); // 左旋 HAL_Delay(10); } else if (LineR2 == LOW) // 右最外侧检测 { MOTOR_SetDuty(50, -50); // 右旋 HAL_Delay(10); } else if (LineL2 == LOW && LineR1 == HIGH) // 中间黑线上的传感器微调车左转 { MOTOR_SetDuty(0, 50); // 左转 } else if (LineL2 == HIGH && LineR1 == LOW) // 中间黑线上的传感器微调车右转 { MOTOR_SetDuty(50, 0); // 右转 } else if (LineL2 == LOW && LineR1 == LOW) // 都是黑色, 加速前进 { MOTOR_SetDuty(50, 50); // 直走 } }