传感器实验——超声波测距

超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器。超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中。

来自360百科


超声波测试

所选设备

MR开发板
在这里插入图片描述

超声波

在这里插入图片描述

传感器原理

蝙蝠知道吧(微笑)

接线说明

开发板超声波
VCC5v
TrigA6
EchoA4
GNDGND

基本案例

本代码是获取距离,需要在串口工具中查看。

# main.py -- put your code here!
import pyb
from pyb import Pin
from time import sleep_us,ticks_us

trig = Pin('A6',Pin.OUT_PP)
echo = Pin('A4',Pin.IN)
distance = 0
while True:	
	trig.value(1)
	sleep_us(20)
	trig.value(0)
	while echo.value == 0:
		trig.value(1)
		sleep_us(20)
		trig.value(0)
	if echo.value() == 1:
		ts = ticks_us()                 #开始时间
		while echo.value()==1:          #等待脉冲高电平结束
			pass
		te = ticks_us()         
		tc = te-ts				         #结束时间
		distance = (tc*170)/10000        #us(微秒) 1微秒等于一百万分之一秒(10的负6次方秒)
		print('distance',distance,'cm')  #距离计算 (单位为:cm)
	pyb.udelay(20)

示例代码:倒车雷达(距离短亮灯提醒)

Created with Raphaël 2.2.0 导入模块 定义控制引脚 获取距离控制LED 距离小于15里面亮灯 yes
# main.py -- put your code here!
import pyb
from pyb import Pin,LED
from time import sleep_us,ticks_us

trig = Pin('A6',Pin.OUT_PP)
echo = Pin('A4',Pin.IN)
distance = 0
while True:	
	trig.value(1)
	sleep_us(20)
	trig.value(0)
	while echo.value == 0:
		trig.value(1)
		sleep_us(20)
		trig.value(0)
	if echo.value() == 1:
		ts = ticks_us()                 #开始时间
		while echo.value()==1:          #等待脉冲高电平结束
			pass
		te = ticks_us()         
		tc = te-ts				         #结束时间
		distance = (tc*170)/10000        #us(微秒) 1微秒等于一百万分之一秒(10的负6次方秒)
		print('distance',distance,'cm')  #距离计算 (单位为:cm)
	pyb.udelay(200)
	if distance<15:
		LED(4).on()
	else:
		LED(4).off()

相关推荐
©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页