智能循迹小车设计解析硬件模块组成主控模块采用单片机最小系统如STC89C52/STM32作为核心控制器负责传感器数据处理、电机驱动逻辑及状态显示控制。需包含晶振电路、复位电路和电源稳压电路。显示模块LCD1602液晶屏实时显示运行状态如TURN R/L、stop和自定义信息如smart car。通过并行接口与单片机连接需配置对比度调节电位器。驱动模块PWM调速电路驱动直流电机典型方案为L298N或TB6612电机驱动芯片。代码中Pwm_set1()和Pwm_set2()分别控制左右轮转速Z1/Y1等引脚控制电机方向H桥逻辑。核心代码逻辑运动控制函数void go(uchar speed) { Pwm_set1(speed); Pwm_set2(speed); Z11; Z20; Y11; Y20; // 正向驱动逻辑 LCD_Str(5,1,run ); }左右转弯函数通过差异化的PWM占空比实现差速转向如右转时左轮80%占空比右轮30%。循迹算法void xunji(uchar vx) { if( (HZ0)(HY0) ) go(vx); // 双传感器无信号直行 else if ( (HZ1)(HY0) ) left(); // 左侧传感器触发左转 else if ( (HZ0)(HY1) ) right(); // 右侧传感器触发右转 }红外对管HZ/HY作为地面黑线检测传感器需根据实际赛道调整阈值和转向延迟时间。调试要点传感器校准使用可调电阻调节红外接收管的灵敏度确保在白色背景上能稳定输出高电平黑线上输出低电平。PWM参数优化通过Keil的调试模式或示波器观测PWM波形调整Pwm_set()参数使小车转向平滑。典型值范围30-80对应占空比30%-80%。Proteus仿真验证在仿真中需添加虚拟示波器监控PWM引脚检查电机驱动信号是否符合预期。注意虚拟传感器信号需手动触发以模拟实际检测场景。【资源下载】下载地址如下1573https://docs.qq.com/doc/p/afddc1a75331badc9b4617638a2da89a35d7bfd5?dver2.1.27687431void right(void) { Pwm_set1(80); Pwm_set2(30); Z11; Z20; Y11; Y20; LCD_Str(5,1,TURN R); } void left(void) { Pwm_set1(30); Pwm_set2(80); Z11; Z20; Y11; Y20; LCD_Str(5,1,TURN L); } void stop(void) { Pwm_set1(0); Pwm_set2(0); Z11; Z21; Y11; Y21; LCD_Str(5,1,stop ); LCD_Str(0,0,***smart car***); } void xunji(uchar vx) { if( (HZ0)(HY0) ) { go(vx); } else if ( (HZ1)(HY0) ) { left( ); }
基于单片机智能循迹小车仿真设计
智能循迹小车设计解析硬件模块组成主控模块采用单片机最小系统如STC89C52/STM32作为核心控制器负责传感器数据处理、电机驱动逻辑及状态显示控制。需包含晶振电路、复位电路和电源稳压电路。显示模块LCD1602液晶屏实时显示运行状态如TURN R/L、stop和自定义信息如smart car。通过并行接口与单片机连接需配置对比度调节电位器。驱动模块PWM调速电路驱动直流电机典型方案为L298N或TB6612电机驱动芯片。代码中Pwm_set1()和Pwm_set2()分别控制左右轮转速Z1/Y1等引脚控制电机方向H桥逻辑。核心代码逻辑运动控制函数void go(uchar speed) { Pwm_set1(speed); Pwm_set2(speed); Z11; Z20; Y11; Y20; // 正向驱动逻辑 LCD_Str(5,1,run ); }左右转弯函数通过差异化的PWM占空比实现差速转向如右转时左轮80%占空比右轮30%。循迹算法void xunji(uchar vx) { if( (HZ0)(HY0) ) go(vx); // 双传感器无信号直行 else if ( (HZ1)(HY0) ) left(); // 左侧传感器触发左转 else if ( (HZ0)(HY1) ) right(); // 右侧传感器触发右转 }红外对管HZ/HY作为地面黑线检测传感器需根据实际赛道调整阈值和转向延迟时间。调试要点传感器校准使用可调电阻调节红外接收管的灵敏度确保在白色背景上能稳定输出高电平黑线上输出低电平。PWM参数优化通过Keil的调试模式或示波器观测PWM波形调整Pwm_set()参数使小车转向平滑。典型值范围30-80对应占空比30%-80%。Proteus仿真验证在仿真中需添加虚拟示波器监控PWM引脚检查电机驱动信号是否符合预期。注意虚拟传感器信号需手动触发以模拟实际检测场景。【资源下载】下载地址如下1573https://docs.qq.com/doc/p/afddc1a75331badc9b4617638a2da89a35d7bfd5?dver2.1.27687431void right(void) { Pwm_set1(80); Pwm_set2(30); Z11; Z20; Y11; Y20; LCD_Str(5,1,TURN R); } void left(void) { Pwm_set1(30); Pwm_set2(80); Z11; Z20; Y11; Y20; LCD_Str(5,1,TURN L); } void stop(void) { Pwm_set1(0); Pwm_set2(0); Z11; Z21; Y11; Y21; LCD_Str(5,1,stop ); LCD_Str(0,0,***smart car***); } void xunji(uchar vx) { if( (HZ0)(HY0) ) { go(vx); } else if ( (HZ1)(HY0) ) { left( ); }