原理:

在超声波模块的 Trig触发引脚 输入10微妙以上的高电位,即可发射超声波。发射超声波之后,与接收到传回的超声波之前,Echo这个响应引脚会一直呈现高电位。因此,程序可以从 Echo响应引脚位的高电位脉冲持续时间,换算出被测物体的距离。


#include <wiringPi.h>
#include <stdio.h>
#include <sys/time.h>
#define Trig    4
#define Echo    5void ultraInit(void)
{pinMode(Echo, INPUT);  //设置端口为输入pinMode(Trig, OUTPUT);  //设置端口为输出
}float disMeasure(void)
{struct timeval tv1;  //timeval是time.h中的预定义结构体 其中包含两个一个是秒,一个是微秒struct timeval tv2;long start, stop;float dis;digitalWrite(Trig, LOW);delayMicroseconds(2);digitalWrite(Trig, HIGH);delayMicroseconds(10);      //发出超声波脉冲digitalWrite(Trig, LOW);while(digitalRead(Echo) != 1);gettimeofday(&tv1, NULL);           //获取当前时间 开始接收到返回信号的时候while(digitalRead(Echo) != 0);gettimeofday(&tv2, NULL);           //获取当前时间  最后接收到返回信号的时候start = tv1.tv_sec * 1000000 + tv1.tv_usec;   //微秒级的时间stop  = tv2.tv_sec * 1000000 + tv2.tv_usec;dis = (float)(stop - start) / 1000000 * 34000 / 2;  //计算时间差求出距离return dis;
}int main(void)
{float dis;if(wiringPiSetup() == -1){      //如果初始化失败,就输出错误信息 程序初始化时务必进行printf("setup wiringPi failed !");return 1;}ultraInit();while(1){dis = disMeasure();printf("distance = %0.2f cm\n",dis);delay(1000);}return 0;
}

树莓派控制超声波测距原理相关推荐

  1. 【树莓派】raspberry pi控制超声波测距

    目录 一.超声波 1.模块介绍 2.工作原理 二.gettimeofday函数 三.树莓派控制超声波测距 一.超声波 1.模块介绍 简介:   超声波传感器模块上面通常有两个超声波元器件,一个用于发射 ...

  2. 树莓派控制超声波传感器

    看到大二的时候有写过关于树莓派控制HC-SR04超声波测距模块的教程,当时并未给出代码(也不知道是什么原因,估计初写博客并不熟悉吧),所以在三年后的今天贴代码出来,给大家参考下. //树莓派控制超声波 ...

  3. (十)基于Linux算时差——超声波测距原理及代码实现

    学习日志(十) 基于Linux算时差--超声波测距原理及代码实现 测距原理基本说明 超声波测距模块:是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离 ...

  4. Wemos D1 Arduino超声波测距原理讲解加代码、超声波驱动SG90电机(垃圾桶感应开关)

    先介绍一下超声波模块: 总共有四个端子,分别为VCC.GND.Trig.Echo. VCC一般接5V电压:GND接地 Trig为输出接口,Echo为输入接口 Trig和Echo与超声波测距原理有关, ...

  5. 树莓派超声波测距原理及例子

    超声波原理 HC-SR04超声波测距模块: 工作电压电流:5V/15mA; 功能:约2cm-400cm的非接触式距离感测功能,测距精度可达高到3毫米:感知角度≤15°,被测物体面积不小于50cm²且平 ...

  6. stm32控制超声波测距模块HC-SR04

    引脚:PB15 TRIG,PB0 ECHO: 不同距离,LED对应不良.闪烁.亮状态,并通过串口发送到PC; TIM3定时中断,测出脉宽长度,没有像野火一样使用捕捉功能: 1.HS-SR04模块实物图 ...

  7. 基于STM32F407的超声波定位装置(利用超声波测距原理)

    学校的课设,历时五周,总算做出了一点东西,现在给大家分享一下,也算给这个课设做一个最后的总结,第一次写,写得可能不好,请大家谅解. 先说一下课设所用的器材吧,本次设计主要用到了两个无刷直流电机,两块S ...

  8. 树莓派控制超声波模块

    超声波工作原理: 难点是测距时用到了时间相关的结构体 struct timeval {time_t tv_sec; //Seconds.秒suseconds_t tv_usec; //Microsec ...

  9. STM32F103关于输入捕获以及控制超声波测距模块的笔记(2)

    今天操控了超声波测距模块并尝试了关于超声波精度的测量.后来学习了OLED显示屏的一些知识. 首先先说一下超声波测距控制程序中timer.c里面除去相应的串口,定时器,中断等相应的初始化后的一些函数: ...

  10. arduino 超声波测距原理_超声波测距灯

    介绍硬件准备 本篇文章专门介绍用Arduino制作超声波测距灯,需要的材料是: 1. Arduino开发板 2. HC-SR04超声波模块 3. LED灯 4. 杜邦线若干 注意事项   之所以要写这 ...

最新文章

  1. android开发 获取相册名称_Android开发之获取相册照片和获取拍照照片
  2. Ubuntu Pycharm启动后卡住无法操作
  3. python自带的用于解析HTML的库HtmlParser
  4. .NET Framework 1.1 中 SmartNavigation 的实现
  5. mysql connector net 6.9.5_mysql connector/net6.9.5 下载 - 51下载网
  6. mes系统服务器连接失败,mes系统如何连接其他系统设备?
  7. STC8G1K08A之PWM占空比调整
  8. leetcode刷题java之739. 每日温度
  9. 如何在资源管理器中恢复“最近文件夹”
  10. java发送带格式邮件及带多附件
  11. 制作elasticsearch 镜像_相册视频制作-相册视频制作App下载-
  12. 关于数据库突然变得很卡,然后发现数据库文件变的超大的时候
  13. 中学数学教材教法试题
  14. python 涨停统计_python 轻松实现获取涨跌停数据
  15. 数据可视化工具(QBarSeries柱状图)
  16. html查看详情,查看详情页.html
  17. 魔力宝贝账号登录分析
  18. Datawhale学习笔记-飞桨AI-Task02:头脑风暴:让人拍案叫绝的创意是如何产生的?
  19. 2010年3月23日俱乐部活动,“云计算实践”主题活动
  20. SolidWorks模型导入到MATLAB(Simulink-Simscape)详细过程

热门文章

  1. 两次碰到编译错误: crosses initialization of...
  2. java image 提取色彩通道_Java:从BufferedImage中提取Alpha通道
  3. 二十九、非谓语动词_作定语
  4. 我写了款依赖检查的插件
  5. 大数据的价值,主要体现在哪几方面?
  6. ACM_贪心(HDU2037HDU1789)
  7. php 启用ereg,PHP 5.3的ereg / eregi替换
  8. 解决Error: Call to undefined function eregi() 报错方法
  9. fastapi之tortoise-orm
  10. Regex 量词Quantifier 分组group