基于51单片机的避障车自适应巡航仿真

您所在的位置:网站首页 汽车避障系统程序有哪些内容 基于51单片机的避障车自适应巡航仿真

基于51单片机的避障车自适应巡航仿真

#基于51单片机的避障车自适应巡航仿真| 来源: 网络整理| 查看: 265

仿真图:

在这里插入图片描述

芯片/模块的特点:

L298特点:

高驱动能力:L298具有高驱动电流能力,能够提供最高4安培的峰值输出电流。这使得它可以驱动较大功率的直流电机,适用于许多高性能应用。

双全桥结构:L298具有双全桥结构,即两个独立的H桥电路,可以分别控制两个直流电机的运行方向和速度。这种结构使得同时控制多个电机变得更加方便。

输入控制灵活:L298的输入控制接口可以使用标准的逻辑电平(TTL或CMOS)来控制电机的运行。它可以接受脉冲宽度调制(PWM)信号来实现速度控制,并且支持正向、反向和制动模式的控制。

内置保护功能:L298具有内置的过流保护和过温保护功能,可以保护芯片和外部电路免受损坏。当输出电流超过设定值或芯片温度过高时,保护功能会自动触发。

低功耗待机模式:L298具有低功耗待机模式,可以通过控制输入信号将芯片置于低功耗状态。这有助于节省电能和延长电池寿命。

多种封装形式:L298可提供不同的封装形式,如多引脚直插式封装(DIP)和表面贴装技术(SMT)封装。这使得L298适应不同应用的安装需求。

主程序: /* 小车碰到前方障碍后左边两轮停止,右轮驱动,实现转弯。碰到台阶后小车先后退,然后左轮 停止,右轮驱动实现转弯,转弯结束后小车继续前进,如此循环*/ #include #define uchar unsigned char #define uint unsigned int uchar cs1,cs2,num1,num2; uchar code table[]={0,1}; //占空比50% sbit qdg=P3^4; //前红外对管,检测小车前方障碍 sbit xdg=P3^6; //下红外对管,检测小车是否碰到台阶 sbit in1=P2^0; //L298输入 sbit in2=P2^1; //L298输入 sbit in3=P2^2; //L298输入 sbit in4=P2^3; //L298输入 sbit ena=P2^4; //L298输入使能A sbit enb=P2^5; //L298输入使能B void delay(int z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void init() //初始化函数 { TMOD=0x11; TH0=(65536-500)/256; TL0=(65536-500)%256; ET0=1; TR0=1; EA=1; } void main() { init(); while(1) { if(qdg==1) //如果前方没有检测到障碍,对管输出高电平 { ena=1; //L298使能端A为高 enb=1; //L298使能端B为高 in2=0; //L298IN2为低,小车左轮前进 in4=0; //L298IN4为低,小车右轮前进 } else { ena=0; //如果前方检测到障碍,L298使能端为低 ,左轮停止(小车转弯) delay(1000); ena=1; //一秒后转弯结束,继续两轮驱动前进 } if(xdg==0) //如果小车下方未检测到障碍(碰到台阶) { in2=1; //L298IN2为高,小车左轮后退 in4=1; //L298IN4为高,小车右轮后退 delay(1000); ena=0; //后退一秒后,左轮停止(转弯) delay(1000); //一秒后转弯结束,小车继续前进 } } } void timer0() interrupt 1 { TH0=(65536-500)/256; TL0=(65536-500)%256; cs1++; if (cs1==10) { cs1=0; num1++; if(num1==3) num1=0; in1=table[num1]; num2++; if(num2==3) num2=0; in3=table[num2]; } }

设计文件:

链接:https://pan.baidu.com/s/1ZvxZqvHW6_pLsfbbYkuEIQ?pwd=u1tf



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3