US-100 超聲波距離感測器帶溫度補償的正面
US-100 超聲波距離感測器帶溫度補償的背面
US-100 超聲波測距模組規格:
工作電壓:DC 2.4 ~ 5.5V
靜態電流:2mA
工作溫度:-20 ~ +70 度
輸出方式:電平或 UART(跳線帽選擇)
感應角度:小於 15度
探測距離:2cm ~ 450cm(20mm ~ 4500mm)
探測精度:0.3cm ±1% UART 模式下串口配置:串列傳輸速率 9600,起始位 1位,停止位元 1位元,資料位元 8位元,無同位,無流控制。
接線方式:VCC、Trig(控制端)、Echo(接收端)、 GND
電路圖
程式列表
Blockly
Python
"""
ePy-Lite_US-100.py
EPY_Lite US-100
-----------------
3V3 VCC
P3(UART0_TxD) TxD
P2(UART0_RxD) RxD
GND GND
GND GND
"""
from machine import Switch #Get button KEY library
from machine import Pin
from machine import UART
import utime
# Start Function
if __name__ == '__main__':
Ultrasonic=UART(0,9600)
KeyA = Switch('keya') #Create button A
while True:
Ultrasonic.writechar(0x55) # Send 0x55, Starts to measure distance
utime.sleep_ms(500) # Delay 500mS
LenData = Ultrasonic.read(2)
dist_mm = LenData[0]*256 + LenData[1]; # Calculate distance value
utime.sleep_ms(500) # Delay 500mS
Ultrasonic.writechar(0x50) # Send 0x50, Start temperature measurement
utime.sleep_ms(500) # Delay 500mS
temp = Ultrasonic.read(1)
temperature = temp[0] - 45; # 實際溫度值等於返回值減45
# Effective distance measurement results are between 1mm and 10m
if((dist_mm > 1) and (dist_mm < 10000)) :
print("Distance is: %dmm" %dist_mm)
if((temperature > 1) and (temperature < 130)) :
print("Temperature is: %dC'" %temperature)
if (KeyA.value()) == True: #Press A Key
break
utime.sleep_ms(500) # Delay 500mS
Ultrasonic.deinit()
執行結果
參考文獻
US-100 Ultrasonic Sonar Module
https://mirrobo.ru/micro/wp-content/uploads/2017/01/ultrasonic-sonar-module-1r0.pdf
DIY - ESP8266:US-100 超聲波測距模組介紹(九十八), BugWorkShop - 甲蟲工作室
http://bugworkshop.blogspot.com/2018/06/diy-esp8266us-100.html