Trig引脚  :发出脉冲波

Echo引脚:在Trig发送脉冲波期间一直维持高电平

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

代码来自:https://www.cnblogs.com/yuemo/p/8888342.html

#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. GreenDao自带异步操作类简析
  2. python培训班有用吗-Python培训班哪家好?
  3. libevent中的hash表
  4. 【机器学习】LBP+SVM实现特征检测
  5. 基于工程经验的『RESTful接口设计规范』
  6. 算法练习day9——190327(“之” 字形打印矩阵、在行列都排好序的矩阵中找数、打印两个有序链表的公共部分、判断一个链表是否为回文结构)
  7. VC 对话框背景颜色 控件颜色
  8. 12c集群日志位置_关于Oracle 12c的集群监控(CHM)
  9. 新颖的自我介绍_有哪些非常有创意的自我介绍?
  10. 2021年通达信指标公式大全,值得收藏!
  11. NOIP2017后记
  12. HTML CSS 个人网页设计 WEB前端大作业代码
  13. 建筑建模学习笔记3——Vray渲染及PS修图
  14. 详解矩阵算法在电商sku组件中的应用一
  15. 为Win7关机按钮菜单增加“休眠”选项
  16. python熊猫图案_Python-熊猫
  17. Matlab 动态心形线GIF图
  18. matlab图像的裁剪
  19. 前端最有成就感一—-封装
  20. 修改手机服务器密码忘了怎么办啊,交管服务平台忘了密码而且换了手机号

热门文章

  1. Unimodal Array
  2. 每一代内存的读写速度
  3. RealSense 图形识别之路 2.0
  4. 【数据结构与算法分析1.2】编写一个程序求解字谜游戏问题
  5. C语言基础入门,编程的第一步
  6. win7共享文件提示输入网络密码
  7. Base64的Woff2字体信息如何转成成文件
  8. 高通820系列(apq8098平台,androido系统),mmm external/ethtool-5.2/,报错
  9. 前端访问后端本地资源
  10. linux配置路由器命令手册,Linux配置路由器