# main.py -- put your code here!
"""
超声波测距1.0
2019-12-28
"""
"""
原理:
(1)用IO口给TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送 8 个 40khz 的方波,自动检测Echo是否有信号返回。
(3)Echo有信号返回,通过io输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
"""
import pyb
from pyb import Pin
import time
Trig = Pin('Y2', Pin.OUT_PP) #触发超声波模块发射超声波
Echo = Pin('Y1', Pin.IN) #接收超声波信号
while True:
# 给一个高电平触发信号维持20微秒,然后变成低电平
Trig.value(1)
time.sleep_us(20)
Trig.value(0)
while (Echo.value() == 0): #如果没有收到信号,再触发一次,发射超声波
Trig.value(1)
time.sleep_us(20)
Trig.value(0)
if (Echo.value() == 1): #如果接收到了信号
ts = time.ticks_us() #此时定下高电平的开始时刻
while (Echo.value() == 1): #如果还是高电平就不断地运行这段代码,直到高电平结束后跳出循环
pass
te = time.ticks_us() #定下高电平结束时刻
tc = te - ts #算出高电平维持时间
distance = str(int((tc * 0.034) / 2)) #计算出距离 #取整型后,得到的数值最多为四位数
print('Distance:', distance, 'cm')
num = distance
tpyBoard102超声波测距1.0
最新推荐文章于 2023-08-10 16:37:54 发布