树莓派控制超声波测距原理及实现
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;
}
树莓派控制超声波测距原理及实现相关推荐
- 【树莓派】raspberry pi控制超声波测距
目录 一.超声波 1.模块介绍 2.工作原理 二.gettimeofday函数 三.树莓派控制超声波测距 一.超声波 1.模块介绍 简介: 超声波传感器模块上面通常有两个超声波元器件,一个用于发射 ...
- 树莓派控制超声波传感器
看到大二的时候有写过关于树莓派控制HC-SR04超声波测距模块的教程,当时并未给出代码(也不知道是什么原因,估计初写博客并不熟悉吧),所以在三年后的今天贴代码出来,给大家参考下. //树莓派控制超声波 ...
- (十)基于Linux算时差——超声波测距原理及代码实现
学习日志(十) 基于Linux算时差--超声波测距原理及代码实现 测距原理基本说明 超声波测距模块:是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度,计算出模块到前方障碍物的距离 ...
- Wemos D1 Arduino超声波测距原理讲解加代码、超声波驱动SG90电机(垃圾桶感应开关)
先介绍一下超声波模块: 总共有四个端子,分别为VCC.GND.Trig.Echo. VCC一般接5V电压:GND接地 Trig为输出接口,Echo为输入接口 Trig和Echo与超声波测距原理有关, ...
- 树莓派超声波测距原理及例子
超声波原理 HC-SR04超声波测距模块: 工作电压电流:5V/15mA; 功能:约2cm-400cm的非接触式距离感测功能,测距精度可达高到3毫米:感知角度≤15°,被测物体面积不小于50cm²且平 ...
- stm32控制超声波测距模块HC-SR04
引脚:PB15 TRIG,PB0 ECHO: 不同距离,LED对应不良.闪烁.亮状态,并通过串口发送到PC; TIM3定时中断,测出脉宽长度,没有像野火一样使用捕捉功能: 1.HS-SR04模块实物图 ...
- 基于STM32F407的超声波定位装置(利用超声波测距原理)
学校的课设,历时五周,总算做出了一点东西,现在给大家分享一下,也算给这个课设做一个最后的总结,第一次写,写得可能不好,请大家谅解. 先说一下课设所用的器材吧,本次设计主要用到了两个无刷直流电机,两块S ...
- 树莓派控制超声波模块
超声波工作原理: 难点是测距时用到了时间相关的结构体 struct timeval {time_t tv_sec; //Seconds.秒suseconds_t tv_usec; //Microsec ...
- STM32F103关于输入捕获以及控制超声波测距模块的笔记(2)
今天操控了超声波测距模块并尝试了关于超声波精度的测量.后来学习了OLED显示屏的一些知识. 首先先说一下超声波测距控制程序中timer.c里面除去相应的串口,定时器,中断等相应的初始化后的一些函数: ...
- arduino 超声波测距原理_超声波测距灯
介绍硬件准备 本篇文章专门介绍用Arduino制作超声波测距灯,需要的材料是: 1. Arduino开发板 2. HC-SR04超声波模块 3. LED灯 4. 杜邦线若干 注意事项 之所以要写这 ...
最新文章
- GreenDao自带异步操作类简析
- python培训班有用吗-Python培训班哪家好?
- libevent中的hash表
- 【机器学习】LBP+SVM实现特征检测
- 基于工程经验的『RESTful接口设计规范』
- 算法练习day9——190327(“之” 字形打印矩阵、在行列都排好序的矩阵中找数、打印两个有序链表的公共部分、判断一个链表是否为回文结构)
- VC 对话框背景颜色 控件颜色
- 12c集群日志位置_关于Oracle 12c的集群监控(CHM)
- 新颖的自我介绍_有哪些非常有创意的自我介绍?
- 2021年通达信指标公式大全,值得收藏!
- NOIP2017后记
- HTML CSS 个人网页设计 WEB前端大作业代码
- 建筑建模学习笔记3——Vray渲染及PS修图
- 详解矩阵算法在电商sku组件中的应用一
- 为Win7关机按钮菜单增加“休眠”选项
- python熊猫图案_Python-熊猫
- Matlab 动态心形线GIF图
- matlab图像的裁剪
- 前端最有成就感一—-封装
- 修改手机服务器密码忘了怎么办啊,交管服务平台忘了密码而且换了手机号