RT-Thread Micropython US-100超声波测距模块测试

  US-100超声波模块介绍
  US-100超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
  模式选择跳线接口如图所示。模式选择跳线的间距为2.54mm,当插上跳线帽时为UART(串口)模式,拔掉时为电平触发模式。

  5 Pin接口从左到右依次编号1,2,3,4,5。它们的定义如下:

  • 1号Pin:接VCC电源(供电范围2.4V~5.5V)。
  • 2号Pin:当为UART模式时,接外部电路UART的TX端;当为电平触发模式时,接外部电路的Trig端。
  • 3号Pin:当为UART模式时,接外部电路UART的RX端;当为电平触发模式时,接外部电路的Echo端。
  • 4号Pin:接外部电路的地。
  • 5号Pin:接外部电路的地。


  本次测试采用串口模式,使用串口1作为数据收发接口,源码如下:

import time
from machine import UART

uart = UART(1, 9600)                         # init with given baudrate
uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters

while True:
  time.sleep(1)
  uart.read()
  uart.write(b'\x55')
  time.sleep(1)
  buf1 = bytearray(2)
  uart.readinto(buf1, 2)
  distance = (buf1[0] * 256 + buf1[1])/10
  print("Distance = {}cm".format(distance))
  time.sleep(1)
  uart.read()
  uart.write(b'\x50')
  time.sleep(1)
  buf2 = bytearray(1)
  uart.readinto(buf2, 1)
  temperature = buf2[0] - 45
  print("Temperature = {}℃".format(temperature))

  将程序保存为us-100.py并使用Ymodem文件传输工具下载至开发板,使用`python us-100.py`命令运行程序,运行效果如下:



posted @ 2018-08-16 12:30  一见如故hbzjt  阅读(1518)  评论(0编辑  收藏  举报