一、介绍

   超声波传感器使用超声波来准确检测物体并测量距离。他发出超声波并将它们转换成电信号,主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场。


二、组件

★Raspberry Pi 3主板*1

★树莓派电源*1

★40P软排线*1

★超声波传感器模块*1

★面包板*1

★跳线若干

三、实验原理

  该传感器有4个引脚:
VCC,超声波模块电源脚,接5V电源即可
Trig,超声波发送脚,高电平时发送出40KHZ出超声波
Echo,超声波接收检测脚,当接收到返回的超声波时,输出高电平5V
GND,超声波模块GND

  注意: Echo 返回的是 5v信号,而树莓派的 GPIO 接收超过 3.3v 的信号可能会被烧毁,因此需要加一个分压电路,这里由于返回的脉冲时间非常短,我没有加,能正常运行,但还是冒险了!

  超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。声音是由振动产生的,能够产生超声波的装置就是超声波传感器,习惯上称为超声换能器,或者超声探头。超声波探头主要由压电晶片组成,既可以发射超声波,也可以接收超声波。

  常用的是压电式超声波发生器,是利用压电晶体的谐振来工作的。超声波传感器探头内部有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。 超声波传感器就是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换成超声波发射出去;而在接收时,则将超声振动转换成电信号。

  超声波碰到杂质或分界面会产生显著反射形成反射成回波,碰到活动物体能产生多普勒效应。由于超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。

  本实验中,HC-SR04超声波传感器通过发送声波,并计算声波返回超声传感器所需的时间来工作。通过往返时间检测法,它可以告诉我们物体相对于超声波传感器有多远。

  HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能, 测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:

(1)采用IO口TRIG触发测距,给至少10us的高电平信号;

(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;

(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。

(4)测试距离=(高电平时间*声速(340M/S))/2;

  初始化时将trig和echo端口都置低,给Trig一个10US以上的高电平,模块开始工作,模块内自动发送八个40khz方波,并自主检测是否有电波返回。这时我们需要检测Echo处的电平,当为高电平的时候记一个时间;当Echo出为低电平的时候在记一个时间,这两个时间的差就是高电平持续的时间,然后用测距公式进行计算。

四、实验步骤

  第1步: 连接电路。

树莓派 T型转接板 超声波测距模块
GPIO0 G17 Trig
GPIO1 G18 Echo
5V 5V VCC
GND GND GND

  第2步: 编写控制程序。将手放在超声波测距模块上,观察屏幕上打印的距离数值。

#!/usr/bin/env pythonimport RPi.GPIO as GPIO
import timeTRIG = 11  #send-pin
ECHO = 12  #receive-pindef setup():GPIO.setmode(GPIO.BOARD)GPIO.setup(TRIG, GPIO.OUT, initial = GPIO.LOW)GPIO.setup(ECHO, GPIO.IN)def distance():GPIO.output(TRIG, 1)  #给Trig一个10US以上的高电平time.sleep(0.00001)GPIO.output(TRIG, 0)#等待低电平结束,然后记录时间while GPIO.input(ECHO) == 0:  #捕捉 echo 端输出上升沿passtime1 = time.time()  #等待高电平结束,然后记录时间while GPIO.input(ECHO) == 1:  #捕捉 echo 端输出下降沿passtime2 = time.time() during = time2 - time1
#ECHO高电平时刻时间减去低电平时刻时间,所得时间为超声波传播时间return during * 340 / 2 * 100
#超声波传播速度为340m/s,最后单位米换算为厘米,所以乘以100
def loop():while True:dis = distance()print dis, 'cm'print ''time.sleep(0.3)def destroy():GPIO.cleanup()if __name__ == "__main__":setup()try:loop()except KeyboardInterrupt:destroy()

  

树莓派基础实验24:超声波测距传感器实验相关推荐

  1. 【 FPGA 】超声波测距小实验(一)

    超声波测距原理: 超声波测距原理是在超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似. 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播 ...

  2. 【STM32】标准库与HAL库对照学习教程外设篇--超声波测距传感器

    [STM32]标准库与HAL库对照学习教程外设篇--超声波测距传感器 一.前言 二.准备工作 三.超声波测距传感器 1.原理说明 2.使用说明 四.标准库使用传感器 1.实验程序 2.实验效果 五.H ...

  3. [博创智联]创新创客智能硬件平台——超声波测距传感器

    [博创智联]创新创客智能硬件平台--超声波测距传感器 准备工作 测试环节 编译驱动和测试代码 加载驱动并执行代码 准备工作 烧录原版系统,供电.连接串口线,配置网络,挂载NFS共享,拷贝超声波测距传感 ...

  4. Arduino的光敏传感器和超声波测距传感器测试代码

    光敏传感器测试代码 使用的是一个未知名4pin模块, 4pin依次为Vcc, Gnd, DO, AO, 板载一个可调电阻以及一个LED, 调节电阻大小, 可以控制LED亮灭和DO输出变化对光亮的灵敏度 ...

  5. 超声波测距传感器认知

    目录 一.超声波测距传感器认知 二.从零编程实现超声波测距 三.项目--感应开关盖垃圾桶 1.开发步骤 2.感应开关盖垃圾桶代码测试 一.超声波测距传感器认知 超声波测距模块是用来测量距离的一种产品, ...

  6. 超声波测距传感器模块在畜牧业的应用

    我国现代养殖是一种"高投入.高产出.高效益"的产业.资本密集型和劳动集约化是其基本特征.这种集约化的产业耗费了大量的人力和自然资源,并在某种程度上对环境造成负面影响.如今物联网应用 ...

  7. 【HaaS Python硬件积木】HCSR04超声波测距传感器

    来这里发现更多拿来即用的传感器 HaaS开发框架HaaS积木方案,赋能生态开发者,让您快速找到自己需要的解决方案,硬件主板与外设,以及各种应用组件.https://haas.iot.aliyun.co ...

  8. 基于STM32和超声波测距传感器的测距功能设计

    基于STM32和超声波测距传感器的测距功能设计(使用陌生传感器的流程介绍) 引言 项目设计 项目简介 开发工具 硬件设计 软件设计 开发流程 阅读手册 配置并测试传感器相关设置 软件开发 总结 后续 ...

  9. Arduino与Processing交互-超声波测距传感器的读取与显示

    公众号:STCode 1-超声波测距传感器简介 超声波测距传感器是利用频率高于20kHz的声波在空气中传播,遇到障碍物反射回来,通过计算发射和接收时间差,可以计算出发射点与障碍物间的距离. 超声波测距 ...

最新文章

  1. Spring AOP的一个具体例子
  2. cocos2d-x的Android工程开启c++0x特性
  3. jsp 嵌入java_关于JSP里的Java语句嵌入问题
  4. PAT乙级(1025 反转链表)
  5. 单实例数据库迁移到rac环境(四)上
  6. java处理pdf文件——iText的使用
  7. 开课吧python小课学了有用吗-未来2年,会计发展新趋势,你有必要了解一下......
  8. [运维笔记] - (命令).Windows server常用网络相关命令
  9. 泛微OA漏洞(综合)
  10. apk提取加密素材_高效IO之Dex加密(三)
  11. 使用XTU降低CPU功耗,自动执行不失效
  12. 玩转CODESYS 入门篇(一)-- 认识CODESYS
  13. Android MTK CAMERA DRIVER 摄像头驱动
  14. 这些年,这些ACM大佬-吴作凡访谈
  15. LLVM项目的目录布局介绍
  16. 什么是逻辑结构以及物理结构
  17. 键盘输入平方(m²)或立方(m³)等特殊字符
  18. 漫画 | Java语言是如何诞生的?
  19. anaconda and jupyterhub 配置部署
  20. Flutter——路由和导航

热门文章

  1. SCI论文写作常用词汇短语总结
  2. usb-cam(1)安装
  3. ChatGPT、文心一言、New Bing到底哪个更AI?
  4. ld-linux-x86-64.so.2挖矿木马,排查操作记录
  5. jsp快递信息管理系统
  6. 干货 | Trip.com APP QUIC应用和优化实践
  7. AutoJs封号大集合---火热更新中
  8. C语言之猴子吃桃问题(函数练习题)
  9. Nginx安装及详细配置
  10. Jinja2渲染的两种方式