首页资源分类嵌入式处理器51内核 > 超声波避障

超声波避障

已有 445023个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:超声波舵机避障

    分    享:

    文档简介

    该车的功能是当小车在前方遇到障碍物,舵机可以控制超声波模块左右扫描,判断哪一边没有障碍则往那边行走,如果两边都有怎后退大转弯继续行走。

    文档预览

    智能小车避障,一般多数人用红外对管做,但效果不好,本人参考网上的一段视屏,做了一个用超声波模块和舵机的避障系统,小车,小车驱动模块,以及避障系统淘宝网都有售,小车要60元左右,小车驱动也只要20元加上超声波和舵机的四五十元,基本上就能完成这个小车避障的硬件设计了,该车的功能是当小车在前方遇到障碍物,舵机可以控制超声波模块左右扫描,判断哪一边没有障碍则往那边行走,如果两边都有怎后退大转弯继续行走。 小车控制系统用52单片机,你也可以用51的随便你。最好用几个电源模块防止舵机,小车电机,单片机电源相互影响。 具体程序如下: #include #include #define uble double uble th=0; uble tl=0; uble time=0; uble distance=0; #define uchar unsigned char #define uint unsigned int uchar n=1,right=1,left=1; uble distance; sbit Trig=P2^0; sbit Echo=P3^2; sbit z1=P0^3; //左电机前进 sbit z0=P0^4; // sbit y1=P0^5; //右电机前进 sbit y0=P0^6; // sbit been=P2^3; /* 变量定义 */ uchar key_stime_counter,hight_votage=15,timeT_counter; bit key_stime_ok; /* 引脚定义 */ sbit control_signal=P2^2; void DelayUs(uchar us) { uchar uscnt; uscnt=us>>1; while(--uscnt); } void delay(uint ms) { while(--ms) { DelayUs(250); DelayUs(250); DelayUs(250); DelayUs(250); } } void zhiz() { z1=1; z0=0; y1=1; y0=0; } //右转减速前进 void youz() { z1=1; z0=0; y1=0; y0=0; } //左转减速前进 void zuoz() { y1=1; y0=0; z1=0; z0=0; } //后退 void hout() { y1=0; y0=1; z1=0; z0=1; } //停止 void tingz() { y1=0; y0=0; z1=0; z0=0; } /********************************************** 定时器0中断服务函数 ***********************************************/ void timer0(void) interrupt 1 using 0 { TH0=0xFF; TL0=0x9C; //定时器0重新装入数值 if (++key_stime_counter>=200) { key_stime_counter=0; control_signal=1; key_stime_ok = 1; // 20ms到 timeT_counter=0; } if (key_stime_ok&&(++timeT_counter>=hight_votage)) { key_stime_ok=0; timeT_counter=0; control_signal=0; // hight_votage*0.1ms到 } } void chaoshengbo() { Trig=0; DelayUs(5); Trig=1; DelayUs(20); while(!Echo); TR1=1; } void ex_0() interrupt 0 {TR1=0; th=TH1; tl=TL1; TH1=0; TL1=0; time=th*256+tl; distance=time*0.172; //毫米 if(distance<300.0) { n=0; been=0; delay(100); been=1; } else {n=1;} } void main() { control_signal=0; TMOD=0x11; EX0=1; IT0=1; ET1=0; EA=1; ET0=1; TH1=0; TL1=0; TH0=0xff; TL0=0x9c; TR0=1; while(1) { chaoshengbo(); delay(20); if(n==1) { zhiz(); delay(100); been=1; } if(n==0) { tingz(); n=1; hight_votage+=6; delay(400); chaoshengbo(); delay(20); right=n; n=1; hight_votage-=6; delay(400); hight_votage-=6; delay(400); chaoshengbo(); delay(20); left=n; hight_votage+=6; delay(400); n=1; if(right==1) { zuoz(); delay(450); } else if(right==0&&left==1) { youz(); delay(450); } else { hout(); delay(500); youz(); delay(1000); } } } }

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。