0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >计算机及配件 > STM32单片机超声波测距设计倒车雷达DS18B20温度测量OLED显示源程序

STM32单片机超声波测距设计倒车雷达DS18B20温度测量OLED显示源程序

来源: 电路城
2021-07-09
类别:计算机及配件
eye 68
文章创建人 拍明

原标题:STM32单片机超声波测距设计倒车雷达DS18B20温度测量OLED显示源程序

cirmall

cirmall

cirmall

cirmall


  硬件由STM32F103C8T6单片机最小系统板、HC-SR04超声波模块、128*96的OLED显示屏及DS18B20组成,程序设计中时采用TIM3定时器(16

  位)。它具有输入捕获模式、输出比较模式、单脉冲模式等多种功能模式,其中,输入捕获模式可以设置捕获上升沿或下降沿对输入信号进行捕获,发生捕获事件时,当前计数值可被获得,如果已使能中断则可触发中断。本设计采用输入捕获模式对Echo信号进行捕获与计时。

  超声波测距模块工作原理

  (1)采用IO口TRIG触发测距,给至少10us的高电平信号;

  (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

  (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;(4)本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。

  初始化时将trig和echo端口都置低,首先向给trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波),然后等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器开始计时,再次等待捕捉echo的下降沿,当捕捉到下降沿,读出计时器的时间,这就是超声波在空气中运行的时间,按照 测试距离=(高电平时间*声速(340M/S))/2 就可以算出超声波到障碍物的距离。

  //外部中断服务函数

  void EXTI9_5_IRQHandler(void)

  {

  delay_us(10);

  if(EXTI_GetITStatus(EXTI_Line6)!=RESET)//Echo检测到高电平

  {

  TIM_SetCounter(TIM3,0);//开启定时器

  TIM_Cmd(TIM3,ENABLE);//使能定时器

  while(GPIO_ReadInputDataBit(GPIOB,Echo));//等待Echo出现低电平

  TIM_Cmd(TIM3,DISABLE);//关闭定时器

  EXTI_ClearITPendingBit(EXTI_Line6);//清除中断标志

  }

  }

  //产生高于10Us的高电平与OLED上显示超声波所测距离

  Wave_SRD_Strat(t);

  Distance = TIM_GetCounter(TIM3)*340/200.0;

  if(Distance>0)

  {

  OLED_ShowNum(50,3,Distance,6,16);        //显示超声波测量距离

  delay_ms(100);

  }

  本资料提供单片机源程序及接线线路图。



责任编辑:

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯