# main.py -- put your code here!
"""
超声波测距2.0新增:1.加上数据滤波程序,增加准确性
2020-1-2
"""
"""
原理:
(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) #接收超声波信号
count = 0
distance_list = [0,1,2,3,4,5,6,7,8]
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): #如果还是高电平就不断地运行这段代码,直到高电平结束后