51单片机寻迹避障小车的奇妙之旅
51单片机寻迹避障小车遇障碍物停车仿真源程序两个版本指示灯或LCD 仿真图设计 1寻迹功能的两个红外传感器用两个单刀开关来模拟断开为高电平1闭合为低电平0 2避障功能用SRF04超声波模块来检测障碍物 3添加了四个LED灯来指示小车运行状态 4用两个直流电机模拟小车前轮 5用L298芯片来驱动电机 软件功能设计 1循迹功能根据对外对管的信号进行左转和右转、直行。 2避障功能当前方有障碍物就停下障碍物3cm前停下 3指示灯直行直行灯亮停止停止灯亮左转左转灯亮右转右转灯亮 产品显示如下最近折腾了下51单片机寻迹避障小车还做了仿真并写了源程序和大家分享分享。仿真图设计寻迹模拟用两个单刀开关模拟寻迹功能的红外传感器断开为高电平1闭合为低电平0。这就好比给小车安装了两只“眼睛”用来识别道路上的黑线。避障检测SRF04超声波模块担起了避障的重任它能精准检测前方是否有障碍物。就像小车的“预警雷达”提前发现危险。状态指示添加了四个LED灯分别指示小车的运行状态。这是小车的“表情”让我们直观了解它在干嘛。动力模拟两个直流电机模拟小车前轮是小车的“双腿”带着小车到处跑。电机驱动L298芯片来驱动电机它就像一个强力“指挥官”精准控制电机的运转。软件功能设计循迹功能通过读取对外对管的信号来决定小车左转、右转还是直行。下面看看代码片段if (left_sensor 0 right_sensor 1) { // 左转 left_motor 1; right_motor 0; left_led 1; right_led 0; stop_led 0; go_led 0; } else if (left_sensor 1 right_sensor 0) { // 右转 left_motor 0; right_motor 1; left_led 0; right_led 1; stop_led 0; go_led 0; } else if (left_sensor 1 right_sensor 1) { // 直行 left_motor 1; right_motor 1; left_led 0; right_led 0; stop_led 0; go_led 1; }这里通过判断leftsensor和rightsensor的值决定小车的转向。如果左边传感器检测到黑线低电平0右边没有高电平1就执行左转操作设置相应电机和指示灯状态。避障功能当超声波检测到前方3cm内有障碍物时小车就停下来。代码实现如下distance get_distance(); if (distance 3) { // 停止 left_motor 0; right_motor 0; left_led 0; right_led 0; stop_led 1; go_led 0; }首先调用get_distance()函数获取障碍物距离当距离小于等于3cm时停止两个电机并点亮停止指示灯。指示灯状态根据小车不同运行状态点亮对应指示灯就像上面循迹和避障代码中在不同动作时都对指示灯状态进行了设置。这就是51单片机寻迹避障小车仿真和源程序的基本情况啦两个版本在指示灯或LCD显示上会有差异感兴趣的小伙伴可以自己再深入研究研究说不定还能开发出更多好玩的功能。51单片机寻迹避障小车遇障碍物停车仿真源程序两个版本指示灯或LCD 仿真图设计 1寻迹功能的两个红外传感器用两个单刀开关来模拟断开为高电平1闭合为低电平0 2避障功能用SRF04超声波模块来检测障碍物 3添加了四个LED灯来指示小车运行状态 4用两个直流电机模拟小车前轮 5用L298芯片来驱动电机 软件功能设计 1循迹功能根据对外对管的信号进行左转和右转、直行。 2避障功能当前方有障碍物就停下障碍物3cm前停下 3指示灯直行直行灯亮停止停止灯亮左转左转灯亮右转右转灯亮 产品显示如下
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2437847.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!