stm32-CS100A 超声波测距芯片原理及代码解读

这篇具有很好参考价值的文章主要介绍了stm32-CS100A 超声波测距芯片原理及代码解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、基础知识

1.功能:超声波测距

        CS100A 是苏州顺憬志联新材料科技有限公司(www.100sensor.com)推出的一款工
业级超声波测距芯片,CS100A 内部集成超声波发射电路,超声波接收电路,数字处理电
路等,单芯片即可完成超声波测距,测距结果通过脉宽的方式进行输出,通信接口兼容
现有超声波模块。

        整个电路只需极少的外围器件,也可采用单面 PCB,在保证较高性能的
基础上,可大幅度降低成本。

2.硬件介绍及电路连接

       管脚:

stm32-CS100A 超声波测距芯片原理及代码解读

 stm32-CS100A 超声波测距芯片原理及代码解读

参考电路 

 stm32-CS100A 超声波测距芯片原理及代码解读

 详解:

        其中 R1,C1 组成电源滤波电路。Y1 为 8MHZ 的晶体振荡器。RT21 为 40KHZ 的发射
探头,RT11 为 40KHZ 的接收探头。
R2 为 15 兆欧的下拉电阻,可以调节测距灵敏度。减小这个电阻,可以增强抗干扰
能力,但也会减小灵敏度,降低测距范围;增大这个电阻,可以得到更远的测量距离,
但也会对周围小物体的回波信号更加敏感。一般建议选用 10MR~22MR。
当个别情况下周围有其他小物体,或干扰,测量远距离不准时,可适当减小 R2 的
值,以提高抗干扰能力。
        现象:当测量远距离时,(偶尔会)出现几十厘米到一米多的测量结果。
        解决办法:可适当减小 R2(R2 取值范围建议 5.1MR~22MR)

3.性能:

stm32-CS100A 超声波测距芯片原理及代码解读

 stm32-CS100A 超声波测距芯片原理及代码解读

 

二、底层代码原理分析

1基本工作原理

        在 TRIG 管脚输入一个 10US 以上的高电平(一般建议 50US 左右),芯片(TP,TN
管脚)便可发出 8 个 40KHZ 的超声波脉冲,然后(RP,RN)检测回波信号。当检测到
回波信号后,通过 ECHO 管脚输出。

        根据 ECHO 管脚输出高电平的持续时间可以计算距离值。即距离值为:(高电平时间
*340m/s)/2。
当测量距离超过测量范围时,CS100A 仍会通过 ECHO 管脚输出高电平的信号,高电
平的宽度约为 33ms 。

        测量周期:当芯片通过 ECHO 管脚输出的高电平脉冲后,便可进行下一次测量,所
以测量周期取决于测量距离,当测距很近时,ECHO 返回的脉冲宽度较窄,测量周期就
很短;当测距较远时,ECHO 返回的脉冲宽度较宽,测量周期也就相应的变长。
        最坏情况下,被测物体超出测量范围,此时返回的脉冲宽度最长,约为 33ms,所
以最坏情况下的测量周期大于 33ms 即可(比如测量周期可取 50ms)。  

2代码分析

1时序图

stm32-CS100A 超声波测距芯片原理及代码解读

stm32-CS100A 超声波测距芯片原理及代码解读 

 

步骤1

测距时序图表明你只需要提供一个10uS 以上脉冲触发信号。延时它所建议的50us。

所以我们得到第一段代码

void Wave_SRD_Strat(void)
{
	GPIO_SetBits(GPIOB,Trig);   //将Trig设置为高电平
	delay_us(50);               //持续大于10us触发,触发超声波模块工作
	GPIO_ResetBits(GPIOB,Trig); 
	
}

步骤2

         该模块内部将发出8 个40kHz 周期电平并检测回波。一然后(RP,RN)检测回波信号。当检测到
回波信号后,通过 ECHO 管脚输出,根据 ECHO 管脚输出高电平的持续时间可以计算距离值。即距离值为:(高电平时间*340m/s)/2。

(GPIO_ReadInputDataBit(GPIOF,Echo)

我们需要检测ECho输出高电平持续的时间,我们配置中断上升沿触发。当高电平结束时即检测到低电平时关闭定时器。

利用上面的距离计算公式于是我们得到下列代码文章来源地址https://www.toymoban.com/news/detail-440494.html

void EXTI9_5_IRQHandler(void)
{
	delay_us(10);
	
	
	if(EXTI_GetITStatus(EXTI_Line8)!=RESET)
	{
		TIM_SetCounter(TIM3,0);
		TIM_Cmd(TIM3,ENABLE);
		
		while(GPIO_ReadInputDataBit(GPIOF,Echo));  //等待低电平
		
		TIM_Cmd(TIM3,DISABLE);
		
		Distance=TIM_GetCounter(TIM3)*340/200.0;
		
		if(Distance>0)
		{
			printf("Distance:%f cm\r\n",Distance);
		}
			
		EXTI_ClearITPendingBit(EXTI_Line8);
}

到了这里,关于stm32-CS100A 超声波测距芯片原理及代码解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最详细STM32,cubeMX 超声波测距

    这篇文章将详细介绍 STM32使用 cubeMX驱动超声波测距 。 实验材料:STM32F103C8T6开发板, HC-SR04 超声波模块。 所需软件:keil5 , cubeMX ,AiThinker Serial Tool 串口助手。 实验目的:了解 STM32使用 cubeMX驱动超声波 。 实验:超声波测距。 HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触

    2024年02月08日
    浏览(42)
  • STM32:两种方式实现超声波测距

    超声波模块HC-SR04的工作原理很简单,有很多办法可以完成超声波测距,这里简单介绍两种。 配置定时器的中断并声明一个Time的变量,在中断中先判断标志位,然后检查echo端口是否为高电平,如果是,Time++,然后变量time乘以定时时间就能得到echo端口高电平持续的时间,经过

    2024年04月16日
    浏览(37)
  • 基于STM32_HAL库实现超声波测距

    核心板               : STM32F103C8T6。 超声波测距模块 : HC-SR04超声波测距模块 实验目的            : 利用超声波测距,将测量的距离打印在串口并输出。 HC-SR04超声波测距模块介绍         接口定义:Vcc、 Trig(控制端——PA2)、 Echo(接收端——PA11)、 Gnd        

    2024年02月16日
    浏览(40)
  • 基于STM32F407实现超声波测距(SR04)

    今天要实现的功能是超声波测距,这一功能在很多的地方都能用到,比如:在智能小车上可以添加超声波避障功能。今天需要用到SR04超声波模块,在使用这一模块的时候我很会接触到时序图。 模块如图所示: 模块有四个引脚 VCC 供 5V电源, GND 为地线, TRIG 触 发 控 制 信 号

    2024年02月11日
    浏览(46)
  • STM32F103驱动HCSR04超声波测距显示

    超声波模块在电子DIY作品中实现小车避障测距等方面均应用广泛,在大学生智能车DIY爱好者中尤为显眼。 点击图片购买 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm,包括发射器、接收器与控制电路,它是一种压电式传感器,利用电致伸缩现

    2024年02月02日
    浏览(34)
  • 【STM32篇】驱动HC_SR04超声波测距模块

    CH_SR04 HC_SR04超声波测距模块可提供 2cm-400cm 的非接触式测距感测功能,测距精度高达3mm;模块包括超声波发射器,接收器与控制电路。 基本工作原理: (1)采用IO口TRIG触发测距,需要给最少10us的高电平。 (2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。 (3)有

    2024年02月17日
    浏览(46)
  • 基于STM32的HC_SR04模块实现超声波测距(附源码)

    本次实验需要通过STM32与HC_SR04模块实现实时测距,并将测距信息通过串口显示在电脑上 原理 超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时

    2024年02月11日
    浏览(40)
  • 基于STM32F103C8T6的超声波测距应用

    #一、超声波HC_SR04简介 #二、超声波工作原理 #三、超声波测距步骤 #四、硬件接线 #五、项目代码 一、超声波HC_SR04简介 超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应) 工作电压与电流

    2024年02月03日
    浏览(37)
  • HC-SR04超声波测距模块使用方法和例程(STM32)

    基于STM32和HC-SR04模块实现超声波测距功能 最近在学STM32做个简单的应用实践一下,顺便水一篇文章。 本文用的单片机是STM32F103C8T6,超声波测距模块是HC-SR04,显示测距结果用的是0.96寸OLED屏模块。 下图中小于10cm时的显示结果有点问题,代码已修复并更新 修复后的结果: 视频

    2024年02月03日
    浏览(39)
  • 手把手教你,通过HAL库实现STM32的超声波测距--以SR-04为例

    目录 0、SR-04基本原理 1、准备工作 2、连线  3、STM32CUBEMX设置 3.1新建工程 3.2芯片通用设置 3.3定时器捕获设置 ​3.4其他设置 3.5生成工程  4、程序完善 4.1完善打印输出函数  4.2完善tim.c 4.3完善gpio.c  4.4完善main函数   5、总结 声波遇到障碍物会反射,而声波的速度已知,所以

    2024年02月14日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包