树莓派超声波模块详解

1.超声波模块介绍
在这里插入图片描述
超声波模块测距原理:
在这里插入图片描述
1.超声波模块和单片机进行连接。
2.触发信号,给Trig引脚发送一个大于10us的高电平。
3.发送高电平后,模块会循环发送8个40KHZ的脉冲,与此同时Echo引脚会由低电平变成高电平,这时候就需要开启定时器开始计算Echo引脚的高电平时间,
4.模块接收到返回的超声波时,Echo电平会由高电平变成低电平,此时应该关闭定时器,这个时候的算出来的定时器的时间就是Echo持续的高电平,也就是超声波从发射到传回来的总时间。
5.(除去温度的影响)根据声速为340m/s,来计算(高电平时间 * 340m/s) / 2。 计算的时候注意自己使用定时器获得的时间的单位。记得换算。
接口说明:
1.vcc接高电平 例如3.3V或5V
2.gnd接低电平 例如gnd 或0V
3.Trig和Echo接自定义的IO口
函数说明:

delayMicroseconds(us); //微妙延时函数

delayMicroseconds()函数接受单个整数(或数字)参数。此数字表示时间,以微秒为单位。一毫秒内有一千微秒,一秒内有一百万微秒。

目前,可以产生精确延迟的最大值是16383。这可能会在未来的Arduino版本中改变。对于超过几千微秒的延迟,应该使用delay()函数。

int gettimeofday(struct  timeval*tv,struct  timezone *tz )//用函数gettimeofday()函数来得到时间。它的精度可以达到微妙

gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中。
struct timeval 结构体:

 /*
17     struct timeval
18     {
19         time_t tv_sec;  //Seconds. 秒
20         suseconds_t tv_usec;  //Microseconds. 微秒
21     };
22     */

注意:做超声波模块要记得初始化超声波模块

void chaoShengBo()  
 8 {
   
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值