基于US―100超声波测距仪的设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于US―100超声波测距仪的设计

基于US―100超声波测距仪的设计   摘 要:由STM32作为控制器,选用US-100超声波模块作为传感器,利用声速测量距离。利用TFTLCD显示屏和上位机作为结果显示窗口,当测量距离小于150mm时,蜂鸣器报警。   关键词:ARM;US-100超声波测距模块;声速测距   1 引言   超声波指向性强,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物 位测量仪等都可以通过超声波来实现。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。   2 系统总体设计   系统总体设计框图如图1,可以看到,超声波测距主要是由STM32控制器,TFTLCD显示屏,上位机作为显示,US-100超声波测距模块作为传感器。当控制器给传感器开始工作的信号时,传感器开始工作,并返回测试的数据,通过TFTLCD显示屏和上位机显示测量结果。当测量距离小于150mm时,蜂鸣器报警。   3 硬件设计   3.1 STM32F103控制器   STM32F1系列属于中低端的32位ARM微控制器,其内核是Cortex-M3。工作频率可高达72Mhz,内置高速64KB SRAM存储器;外设包512KB FLASH、2 个基本定时器、4个通用定时器、2个高级定时器、3个SPI、2个IIC、5个串口、1个USB、1个CAN、3个12位 ADC、1个12位 DAC、1个SDIO接口、1个FSMC 接口以及112个通用IO口。   3.2 US-100 超声波测距模块接口   US-100 超声波测距模块可实现 2cm~4.5m 的非接触测距功能,拥有 2.4~5.5V 的宽电压输入范围,静态功耗低于 2mA,自带温度传感器对测距结果进行校正,同时具有 GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。   将实物与开发板连接如图2所示:(US-100正面从左向右一次为1-5口)   4 软件设计   4.1 总体软件设计   测距的过程可以分为三个部分,分别为:控制器资源配置、 US-100 的时序模拟测量过程及数据处理、显示及判断测量距离是否小于150mm。   4.1.1 控制器的资源配置   #ifndef __TIMER_H #define __TIMER_H   #include sys.h   void GPIOA1_Init(void); void GPIOA3_Init(void);   void TIM3_Int_Init(u16 arr,u16 psc); void TIM3_PWM_Init(u16 arr,u16 psc);   void TIM5_Cap_Init(u16 arr,u16 psc); void TIM4_Cap_Init(u16 arr,u16 psc);   #endif   定时器5通道1输入捕获配置:   void GPIOA1_Init(void)   初始化定时器5 TIM5:   void TIM5_Cap_Init(u16 arr,u16 psc)   中断分组初始化:   NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn; //TIM3中断   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //先占优先级2级   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //从优先级0级   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能   NVIC_Init(NVIC_InitStructure); //根据NVIC_InitStruct中指定的参数初始化外设   TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE);//,允许CC1IE捕获中断TIM_Cmd(TIM5,ENABLE ); //使能定时器5   定时器5中断服务程序:void TIM5_IRQHandler(void)   在主程序中调用定时器:TIM5_Cap_Init(0XFFFF,72-1);//以1Mhz的频率计数   4.1.2 US-100 的时序模拟测量过程   由TRIG_Send 发送高电平,延时20us:   GPIO_SetBits(GPIOA,GPIO_Pin_1);   delay_us(20);   GPIO_ResetBits(GPIOA,GPIO_Pin_1);   根据时间

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档