欢迎来到天天文库
浏览记录
ID:61446932
大小:80.50 KB
页数:6页
时间:2021-01-31
《超声波测距模块说明.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、最近做超声波测距,就是简单的测量引脚高电平的时间。思路是这样的1.使用8MHZ时钟,不分频初始化Timerx_Init(235,1);//8Mhz的计数频率,计数到235为1cm距离2.PA0高电平时,打开定时器,测量时间while(PAin(0)){TIM3->CR1
2、=0x01;//使能定时器3}TIM3->CR1
3、=0x00;//关闭定时器3S=temp/2//测量距离为总路程一半temp=0;//计数值清零3.计数到235时,产生中断,进入中断函数。执行temp++操作voidTIM3_IRQHandler(void){if(TIM3->SR&0X0001
4、)//溢出中断{temp++;}TIM3->SR&=~(1<<0);//清除中断标志位}4.得出距离值S初学定时器,这样测距思路对吗实际测试后,S值一直为0,为什么超声波测距模块说明1.模块引脚 从左到右(见图)模块引脚分别为:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND2.主要技术参数:1:使用电压:DC5V2:静态电流:小于2mA3:电平输出:高电平VCC-0.2V低<0.2V4:感应角度:不大于15度5:探测距离:0.02m-5m6:探测精度:3mm(既然探测精度精确到毫米,就是说数据可以显示到毫米级,也就是四位数了!)
5、 板上接线方式:VCC、trig(控制端)、echo(接收端)、out(空脚)、GND。OUT脚为防盗模块时的开关量输出脚,测距模块不用此脚!3.使用方法:(1)采用IO触发测距,给TRIG至少10us的高电平信号(实际上25us最佳);此处通过IO口给一个高电平就行了。(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;(3)有信号通过ECHO返回,ECHO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.此处用定时器定时看看到底多长时间!这里要检测高电平信号, 本产品使用方法简单,用单片机IO口控制TRIG发一个10us以
6、上(25us最佳)的高电平,就可以在接收口(ECHO)等待高电平输出.当ECHO从低变到高就可以开定时器计时,当ECHO变为低电平时就可以读定时器的值,此时就为此次测距的时间,据公式:测试距离=(高电平时间*声速(340m/s))/2,方可算出距离.如此不断的周期测,就可以达到你移动测量的值了!在程序编写上应该注意的问题:第一个问题:基于SPI通信方式的一片74CH595驱动的四个数码管的显示的实现。要注意发送段码、发送位码、发送显示触发信号的顺序。(1)、首先发送数码管所要显示值的段码;(2)、在给74CH595一个显示触发脉冲;(3)、最后要显示数据的数码管一
7、个为选信号;这样就可以在相应的位置显示出相应的值;注意:如要使四个数码管达到静态显示的效果,需要实时的进行扫描,故该程序中采用TIM3定时中断扫描。程序如下:SPI_SendData(*p);delay(10);GPIO_WriteHigh(GPIOC,GPIO_PIN_4);delay(10);GPIO_WriteLow(GPIOC,GPIO_PIN_4);delay(10);GPIO_WriteLow(GPIOD,GPIO_PIN_2);delay(100);GPIO_WriteHigh(GPIOD,GPIO_PIN_2);第二个问题:超声模块的触发和信号返回
8、接受时的程序处理。在给超声模块发送触发脉冲之前到接受到信号返回结束期间应关闭定时中断数码管显示的扫描,这样才能完整无干扰的进行一次测距。若在期间开启显示中断扫描,可能引起返回信号的检测或是根本无法检测到。故在一次完整超声测距之前要关闭数码管显示中断扫描,在完整测距之后开启显示终端扫描,在进行下一次超声测距之前延时一段时间是此次的测量数据能够稳定显示一回,在重复进行下一次的测距!!!!!!!!!!!!
此文档下载收益归作者所有