咸鱼ZTMR实例—超声波测距
主控板:ZTMR1.1python开发板
超声波模块
超声波模块工作原理
(1)采用IO口TRIG触发测距,给最少10us的高电平信呈。
(2)模块自动发送 8 个 40khz的方波,自动检测是否有信号返回。
(3)有信号返回,通过 IO 口 ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2。
VCC供 5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。
引脚说明
引脚 | 说明 |
---|---|
VCC | 5v |
Trig | 输出 |
Echo | 输入 |
GND | GND |
# main.py -- put your code here!
import pyb
from pyb import Pin
from time import sleep_us,ticks_us
trig = Pin('A8',Pin.OUT_PP)
echo = Pin('A7',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)
串口工具查看效果