基于ESP32与phyphox的DIS实验制作(4)-使用超声波位移传感器研究弹簧振子的运动

本文介绍了如何利用ESP32单片机和超声波测距模块,结合phyphox软件制作一个位移传感器。通过ESP32驱动超声波模块,测量并发送数据到手机进行显示,从而研究弹簧振子的运动。实验中强调了超声波测距的原理和注意事项,以及如何调整程序以适应不同的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过上一篇你应该已经了解了基于ESP32与phyphox的DIS实验大概是个什么模样了,只是上一篇里仅仅使用了ESP32自带的模数转换(也就是电压传感器),程序也是用了它自带的示例,感觉还缺点意思。那么这一篇,我们将会让ESP32连接外接的传感器,通过编写程序驱动传感器测量数据并发送到手机上的phyphox。
好了,还是和之前一样,先来段视频:
(观看视频请关注微信公众号:宁中物理创新实验室)
想不想也来一个视频中的位移传感器呢,跟着下面的教程,一起动手来制作吧!

1、超声波测距模块

(下图来自某宝截屏)
在这里插入图片描述
要注意一点,大家购买的时候一定要买标注了宽电压的,因为常见的模块都是5V电压的,但是ESP32其实是一个工作在3.3V电压下的单片机,不要觉得我们用USB给它供电的时候用的是5V,那是因为里面有个降压模块将5V降低到了3.3V。所以切记,一定要买能支持3.3V的超声波测距模块(其实貌似更便宜,我买的才2.7元一个,自己某宝去搜了,免得我给别人打广告)
首先呢,我们来学习一下这个超声波测距模块的原理。
“超声波:人类耳朵能听到的声波频率为280HZ~20KHz。当声波的振动频率大于20KHz或小于20Hz时,我们便听不见了。因此,我们把频率高于20000赫兹的声波称为“超声波”。因其方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。
最常用的超声测距的方法是回声探测法,如下图,超声波发射器向某一方向发射超声波,在发射的同时计数器开始计时,超声波在空气中传播,途中碰到障碍物阻挡就立即反射回来,超声波接收器收到反射回的超声波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物面的距离s,即:s=340
t/2。*
在这里插入图片描述
超声波传感器HC-SR04上有4个针脚,分别是“VCC”、“Trig”、“Echo”和“GND”,“VCC”和“GND”不再解释,在“Trig”端施加一个10微秒高电压信号会触发超声波发射口发射8个超声波脉冲,当超声波接受口接收到超声波时“Echo”端会输出一段高电压,高电压持续的时间就是超声波从发射到接收的时间。”
以上内容来自我自己曾经写过的一本书(顺便做做书的广告了,有想买的同学自己去某宝或者某当,我手里的也是自己买来的,不过里面用的是Arduino,程序也是用图形化的,适合小学生或者刚入门者):
在这里插入图片描述
大概了解了这个模块的原理后,就可以想办法让ESP32来驱动它了,其实也很简单,就是让ESP32给模块的“Trig”端加一个10微秒的高电压信号,然后再读取一下模块"Echo”端口上高电压持续的时间就可以了。

2、ESP32驱动超声波测距模块

在做正式版之前我们先编一个小程序玩玩,让ESP32驱动超声波测距模块,然后将测得的时间转换成距离发送给电脑,最后在电脑上来显示这个距离值。下面便是程序:


int trig_pin=12,echo_pin=13;//将超声波模块的trig接P12端口,echo接P13
float dis;//定义一个用来记录距离的变量
float checkdistance() {
    //这里为带有返回值的自定义函数,用来完成超声波模块的测量
  digitalWrite(trig_pin, LOW);//将trig端拉低
  delayMicroseconds(2);//等待2微秒
  digitalWrite(trig_pin, HIGH);//将trig端拉高
  delayMicroseconds(10);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值