STM32驱动超声波+OLED显示,并上传数据到云端(ONENET)

本文将介绍如何使用STM32F103C8T6单片机和HC-SR04超声波测距模块来实现测距功能,并通过0.96寸OLED屏幕显示测距结果。

首先,我们需要了解一下HC-SR04超声波测距模块的工作原理。该模块通过发送超声波脉冲并接收回波信号的时间来计算物体与模块之间的距离。具体实现过程如下:

  1. 发送一个10微秒的高电平脉冲至Trig引脚,该脉冲将触发模块发送一组8个40kHz的超声波脉冲。
  2. 当超声波脉冲发射后,模块将Echo引脚输出高电平,并持续时间与超声波传播路径的长度成正比。
  3. 使用STM32F103C8T6单片机的定时器(Timer)来测量Echo引脚输出高电平的时间,即为超声波传播路径的时间t。
  4. 计算物体与超声波模块之间的距离:距离 = t * 340m/s / 2,其中340m/s是声速,除以2是因为超声波信号从模块发出后需要返回。

接下来,我们需要连接硬件。

准备硬件:

1.HC-SR04超声波测距模块

2.stm32c8t6核心板

3.OLED屏幕(4个引脚的)。

4.ESP-01S,wifi模块

准备软件

1.keil5

2.串口助手

将的Trig引脚连接到STM32F103C8T6单片机的GPIO口(例如PB11),将Echo引脚连接到另一个GPIO口(例如PB10)。同时,将0.96寸OLED屏幕模块连接到单片机的I2C口(例如PA5和PA7)。

接下来我们需要在STM32F103C8T6单片机上编写程序。首先,我们需要定义一些参数:

 

后面主要是通过定时器4的中断处理

这是一个测量超声波传感器距离的函数。

函数使用HC-SR04超声波传感器进行测量,该传感器通过发送超声波脉冲并测量返回的回响时间来计算物体与传感器之间的距离。

在代码中,变量"t"保存回响时间,变量"lengthTemp"保存单次测量得到的距离值(以厘米为单位),变量"sum"保存多次测量时得到的距离值总和。 这个函数会进行5次测量,然后将这5次测量的平均值作为最终的距离值,并返回。

在主函数中,我们首先初始化GPIO口和I2C接口。然后进入一个无限循环中,在循环中发送超声波脉冲并使用定时器测量Echo引脚输出高电平的持续时间。最后,通过计算得到物体与模块之间的距离,并将其显示在OLED屏幕上。 需要注意的是,在程序中使用了延时函数和sprintf函数,需要自行实现或使用相应库函数。 以上就是使用STM32F103C8T6单片机和HC-SR04超声波测距模块实现测距功能,并通过0.96寸OLED屏幕显示测距结果的方法。

 直接找我要例程,对应的接上线,就可以复现一模一样的功能

上传数据到onenet

只需要在代码这样写就可以了  

 关于onenet上传数据的内容,可以看我其他的文章,都有写。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挨踢玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值