树莓派学习笔记003-超声波距离传感器
超声波距离传感器
- 接地端接线问题
- 测距的实现问题
- 原理
- 主要代码
- 传感器供电问题
工作原理和使用方法主要参考了 树莓派实验室转载简书的一篇文章,但是这里面有一些错误
接地端接线问题
这是传感器使用树莓派的5V电源的方案,亲测可行。
测距的实现问题
原理
HC-SR04超声波模块工作原理:
1)给TRIG口至少10us的高电平信号触发测距;
2)之后模块自动发送8个40khz的方波
3)之后ECHO口输出高电平(这也是为什么测量距离有下限而不能无限小)
4)自动检测是否有信号返回
4)有信号返回,ECHO口输出低电平,高电平持续的时间就是超声波从发射到返回的时间。
上时序图: 没有什么是时序图表达不清楚的
网上关于这个的博文很多,大都是复制粘贴的,一个错个个错,很少有能把这个HC-SR04工作过程说正确的。
所以本程序的核心是:
1.初始化:将trig和echo端口都置低
2.给 trig 发送至少10 us的高电平脉冲(模块自动向外发送8个40K的方波)
3.等待,捕捉 echo 端输出上升沿,捕捉到上升沿的同时,打开定时器计下此时的时刻
4.等待捕捉echo的下降沿,当捕捉到下降沿时,记下此时时刻
5.两个时刻相减就是echo高电平持续时间
主要代码
第三、四步的的代码实现
# 记录发送超声波的时刻1
while GPIO.input(GPIO_ECHO) == 0:pass #这个pass在C++中写成 ; 也是一样的
start_time = time.time()
# 记录接收到返回超声波的时刻2
while GPIO.input(GPIO_ECHO) == 1:pass
stop_time = time.time()
亲测可行,误差可保持在在一厘米之内
传感器供电问题
这个方案中使用树莓派的5V电源供电,但是我在自己尝试外部电源给传感器供电时,怎么也不能让他正常工作。这个地方需要学习。
树莓派学习笔记003-超声波距离传感器相关推荐
- 树莓派学习笔记——GPIO功能学习
0.前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派源自英国,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个. [ python GPIO ] [开发语言] ...
- 树莓派学习笔记—— 源代码方式安装opencv
0.前言 本文介绍如何在树莓派中通过编译源代码的方式安装opencv,并通过一个简单的例子说明如何使用opencv. 更多内容请参考--[树莓派学习笔记--索引博文] 1.下载若干依赖项 在开始安装之 ...
- 树莓派学习笔记——Wifi AP热点模式 使用RT5370
0.前言 本文详细说明为树莓派增加Wifi AP热点功能的具体步骤.配置完成之后,树莓派将增加一个Wifi热点功能,使用笔记本或手机便可连接树莓派,树莓派具有了AP热点功能,可更一步扩展树莓派相关的W ...
- 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
一.家庭服务器实现的主要功能 http://www.cnblogs.com/xiaowuyi/p/4051238.html 1.流媒体播放服务:利用DLNA实现电视.手机.电脑播放其上面的媒体文件. ...
- 【树莓派学习笔记】树莓派4B上运行uboot并从网络启动linux内核(上)
[树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 文章目录 [树莓派学习笔记]树莓派4B上运行uboot并从网络启动linux内核(上) 前言 1. 硬件需求与软件版本汇总 ...
- 树莓派学习笔记——Python SQLite插入温度记录
0 前言 本文使用python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表--参数名称,时间和温度值.本文重点解释Python操作SQlite的具体方法 ...
- 树莓派学习笔记——获取树莓派CPU温度
0 前言 本文通过文件操作读取树莓派CPU温度,在linux系统中任何设备的操作都被抽象成为文件读写,通过读取/sys/class/thermal/thermal_zone0/temp文件中的内容便获 ...
- 树莓派学习笔记——wiringPi简介、安装和管脚说明
1.WiringPi简介 WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi遵守GUN Lv3.wiringPi使用C或者C++开发并且可以被其他语言包转,例如python.ru ...
- 树莓派学习笔记——yeelink 远程控制LED
1.前言 前段时间玩了树莓派的GPIO,串口和I2C接口,把树莓派当成单片机来玩,期间深入分析了wiringPi.相对于单片机,以Linux为操作系统的树莓派在网络功能方面要强大的多,下面就结合当下流 ...
最新文章
- 排序算法---冒泡排序(java版)
- C语言socket设置超时的几种方法
- PYTHON 函数的返回值
- adc采样时间_太秀了!单片机内置 ADC 实现高分辨率采样?
- 51单片机之音乐代码
- vagrant up 慢的解决方案
- keras笔记(4)-使用Keras训练大规模数据集
- mysql乐观锁总结和实践 - 青葱岁月 - ITeye博客
- python和c 的区别-c 跟 python的区别有哪些
- JavaScript中字符串的match与replace方法
- 人工智能火灾报警器_使用AI进行准确的火灾预测
- 原生android系统换主题字体,Android 自定义字体,更换系统默认显示的字体使用自定义字体...
- empty string mysql_Mysql中的null与empty string
- 使用 HTML、CSS 和 JavaScript 定制私人版的刮刮乐【一看就会】
- 离散数学复习--Modular Arithmetic
- 解决加速c/c++编译运行速度的问题办法
- 计算机组成原理---指令系统
- [dfs树]「CEOI 2017」One-Way Streets
- leaflet实现风场动态粒子效果
- 生成式模型(VAE+GAN)