树莓派C语言超声波传感器测距
超声波传感器测距
分享一个树莓派超声波测距教程。非常基础的小制作,可以激发一下树莓派或其它基础嵌入式开发兴趣。
首先准备一个超声波传感器(这里是HC-HR04型)、树莓派及连接排线。
参考对照表将传感器引脚与树莓派连接,连接方式不唯一,一定仔细连接。传感器VCC引脚连接树莓派5V引脚,GND连接0V接地引脚,Trig、Echo根据具体代码连接,我这里是Trig引脚连接GPIO3,Echo连接GPIO4。
在树莓派正确路径下创建文件并写入代码,我这里创建为“ranging.c"
编译ranging.c
$ gcc ranging.c -o ranging -lwiringPi
执行ranging
$ ./ranging
此时便可以看到执行效果。
具体代码如下:
#include <wiringPi.h>
#include <stdio.h>
#include <sys/time.h> #define Trig 3
#define Echo 4 void ultraInit(void)
{ pinMode(Echo, INPUT); pinMode(Trig, OUTPUT);
} float disMeasure(void)
{ struct timeval tv1; 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)
{ int a=0;float dis; if(wiringPiSetup() == -1){ printf("setup wiringPi failed !"); return 1; } ultraInit(); while(a<10){ dis = disMeasure(); printf("distance = %0.2f cm\n",dis); delay(1000);a++; } return 0;
}
树莓派C语言超声波传感器测距相关推荐
- 超声波传感器测距c语言编程,超声波传感器和stc89c51单片机的c语言代码
#include //器件配置文件 #include #define RX P1_1 #define TX P1_2 #define LCM_RW P0_6 //定义LCD引 ...
- 树莓派4B之超声波传感器模块(python3)
背景 本人最因工作原因接触到各种电路板,传感器,而自己又是一个小白,随意在其他朋友的推荐下决定从树莓派开始玩传感器:本例子为树莓派控制红外避障传感器 材料 1.树莓派4b 2.火焰传感器模块 3.导线 ...
- 基于超声波传感器的液位测量及控制系统设计(STM32)
一.引言 随着工业的发展,计算机.微电子.传感器等高新技术的应用和研究,液位仪表的研制得到了长足的发展,以适应越来越高的应用要求.液位的测量在工业生产过程中已经起着相当重要的作用,其类型大概可以分为接 ...
- 超声波测距系统(stc89c52单片机+lcd1602+srf04超声波传感器+DS18B20温度传感器+无源蜂鸣器)
求赞,它是我写博客的动力,请鼓励鼓励我,谢谢 基于超声波测距的倒车报警系统. 计划通过超声波传感器测距,温度传感器校正误差,lcd1602显示结果,距离小于某一值时将蜂鸣报警. 总体设计思路 HC-S ...
- 树莓派超声波模块测距
参考:树莓派超声波模块测距及C语言demo 作者:一只青木呀 发布时间: 2020-07-22 16:54:16 网址:https://blog.csdn.net/weixin_45309916/ar ...
- 树莓派控制超声波传感器
看到大二的时候有写过关于树莓派控制HC-SR04超声波测距模块的教程,当时并未给出代码(也不知道是什么原因,估计初写博客并不熟悉吧),所以在三年后的今天贴代码出来,给大家参考下. //树莓派控制超声波 ...
- 使用Arduino和超声波传感器实现简单测距
使用HC-SR04超声波传感器和Arduino MEGA 2560实现简单测距 一.一个超声波传感器的使用 1.接线部分 2.代码部分 3.在串口看测到的数据 二.两个超声波传感器的使用 1.接线部分 ...
- US100超声波测距传感器linux,US100超声波传感器手册
US100超声波传感器手册 (2011-08-13 17:42:47) 标签: 杂谈 US-100 超声波测距模块 1. 概述 US-100 超声波测距模块可实现2cm~4.5m 的非接触测距功 能, ...
- stm32f429+超声波传感器HC-SR04 -- 测距
工具 1. 开发板stm32f429(f4系列的应该都可以) 2. 超声波传感器,型号为HC-SR04 HC-SR04接线 HC-SR04 stm32f4 VCC VCC(5V) GND GND Tr ...
- 使用超声波传感器实现检测和测距的RADAR雷达原型
在本篇文章中,我们使用Arduino开发板和超声波传感器设计了一款雷达模型,用于检测和测距.RADAR是一种物体检测系统,它使用无线电波来识别物体的范围.高度.方向和速度.雷达天线发射的无线电波脉冲会 ...
最新文章
- SpringMVC怎么获取前台传来的数组
- tensorrt动态输入分辨率尺寸
- Python机器学习--回归
- vsim生成VCD波形文件(verilog)
- 使用 husky 和 lint-staged 检查 Node.js 的代码一致性
- 海量服务 | 论服务器极致化海量运营交付的未来
- linux c之在终端如何依赖.o文件(静态链接库)运行C文件的命令
- 虚拟化服务器类型,虚拟化服务器类型
- css-3秒(大概吧...)快速撸出YY游戏页面(三)
- DAC0832_简易函数信号发生器_按键控制波形and步进
- python dbf 修改_在Python中将数据写入dbf时出错
- 亏了1000万,卖房卖车也要坚持梦想,值吗?
- react build后直接从浏览器打开
- 剑指offer面试题39. 数组中出现次数超过一半的数字(数组)(摩尔投票法)
- Agile入门系列-1
- 2021-09-1017. 电话号码的字母组合
- 高效获得准确的中国地图数据并进行可视化
- FPGA视频拼接项目LVDS视频传输数据接口介绍
- ASR - OpenAI whisper
- 16张图详解计算机网络协议(万字)