- 描述
- Size Guide
- 評價 (0)
描述
描述
URM09 Ultrasonic Sensor (Gravity I²C) 超音波距離感測器模組 IIC 通訊 測距 兼容 Arduino 樹莓派
URM09 Ultrasonic Sensor (Gravity I²C) 超音波距離感測器模組 是一款開放式雙探頭超聲波測距模塊,通信方式為I2C,採用Gravity標準PH2.0-4P立式貼片座接口。該模組兼容 arduino、樹莓派等各種3.3V或5V邏輯電平的主控板。模塊自帶溫度補償,平整牆面的有效測距量程為2–500cm,分辨率為1cm,誤差約為±1%。設計150cm、300cm、500cm 三個測距量程可供程序選擇切換,更短的量程設置會帶來更短的測距週期和更低的測距靈敏度,用戶可根據實際使用需求靈活設置。
URM09 Ultrasonic Sensor 技術規格
- 供電電壓:3.3V~5.5V DC
- 工作電流:20mA
- 工作溫度範圍:-10℃~+70℃
- 有效測距量程:2cm~500cm(可設置,最大量程500CM)
- 分辨率:1cm
- 精度:1%
- 方向角:60°
- 測量頻率:50Hz Max
- 模塊尺寸:47mm × 22 mm
接口說明
引腳 | 引腳說明 |
VCC | 電源輸入(3.3V-5.5V) |
GND | 電源地 |
C | I2C時鐘線SCL |
d | I2C數據線SDA |
使用教程
URM09是一款簡潔實用的超聲波傳感器,它採用的是I2C通信方式,可以方便的與具有I2C接口的主板時行通信
URM09 Ultrasonic Sensor(Gravity I²C)(V1.0)寄存器
寄存器(8bit) | 名稱 | 讀寫 | 數據范圍 | 默認值 | 描述 |
為0x00 | 設備地址 | R / W | 0x08-0x77 | 為0x11 | I2C從機地址,默認地址為0x11,改變地址後,模塊重新上電後新地址才生效 |
0×01 | 產品ID | [R | 0×01 | 用於產品校驗 | |
0×02 | 版本號 | [R | 為0x10 | 用於版本校驗[0x10表示V1.0] | |
×030×04 | 距離值高位距離值低位 | [R[R | 0x00-0xFF0x00-0xFF | 為0x00為0x00 | LSB表示1CM 例:0x64代表100CM |
0×050×06 | 溫度值高位溫度值低位 | [R[R | 0x00-0xFF0x00-0xFF | 為0x00為0x00 | 實際溫度擴大10倍後的值。例:讀出的值為0x00fe,則實際溫度為0x00fe / 10 = 25.4℃ |
0×07 | 配置寄存器 | R / W | 為0x00 | bit7(距離測量模式控制位): 0:被動測量,發送一次測距命令,模塊測量一次距離並將測量的距離值存入距離寄存器 1:自動測量模式,模塊一直在進行距離測量,並不斷更新距離寄存器 bit6:保留 bit5-bit4(最大測量距離設置位): 00:150CM(測量週期約20MS) 01:300CM(測量週期約30MS) 10:500CM(測量週期約40MS) |
|
0x08的 | 命令寄存器 | R / W | 為0x00 | 被動模式下寫0X01到該寄存器,模塊進行一次測距,自動測量模式下寫入數據無效 |
硬件連接
將模塊通過I2C接口與UNO連接,如圖:
距離及溫度測量
模塊出廠默認為被動測量模式,通過寫命令寄存器發送測距命令,模塊收到命令後便啟動一次測距(測距時間與測距量程有關),當測距完成後,讀取距離寄存器便可得到距離值。而溫度測量直接讀出溫度寄存器後,經過簡單處理就可以得到測得的溫度值。
演示代碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
// # Editor : roker // # Date : 15.11.2018 // # Product name: URM09 ultrasonic sensor // # Product SKU : SEN0304 // # Version : 1.0 #include <Wire.h> unsigned char txbuf[10] = {0}; unsigned char rxbuf[10] = {0}; typedef enum { SLAVEADDR_INDEX = 0, PID_INDEX, VERSION_INDEX , DIST_H_INDEX, DIST_L_INDEX, TEMP_H_INDEX, TEMP_L_INDEX, CFG_INDEX, CMD_INDEX, REG_NUM } regindexTypedef; #define MEASURE_MODE_PASSIVE (0x00) #define MEASURE_RANG_500 (0x20) #define CMD_DISTANCE_MEASURE (0x01) unsigned char addr0 = 0x11; void setup() { Wire.begin(); // join i2c bus (address optional for master) Serial.begin(9600); // join i2c bus (address optional for master) txbuf[0] = (MEASURE_MODE_PASSIVE | MEASURE_RANG_500);//模块配置为被动模式,测距范围设置为500CM i2cWriteBytes(addr0, CFG_INDEX , &txbuf[0], 1 );// delay(100); } void i2cWriteBytes(unsigned char addr_t, unsigned char Reg , unsigned char *pdata, unsigned char datalen ) { Wire.beginTransmission(addr_t); // transmit to device #8 Wire.write(Reg); // sends one byte for (uint8_t i = 0; i < datalen; i++) { Wire.write(*pdata); pdata++; } Wire.endTransmission(); // stop transmitting } void i2cReadBytes(unsigned char addr_t, unsigned char Reg , unsigned char Num ) { unsigned char i = 0; Wire.beginTransmission(addr_t); // transmit to device #8 Wire.write(Reg); // sends one byte Wire.endTransmission(); // stop transmitting Wire.requestFrom(addr_t, Num); while (Wire.available()) // slave may send less than requested { rxbuf[i] = Wire.read(); i++; } } unsigned char i = 0, x = 0; void loop() { int16_t dist, temp; txbuf[0] = CMD_DISTANCE_MEASURE; i2cWriteBytes(addr0, CMD_INDEX , &txbuf[0], 1 );//写命令寄存器,发送测距命令 delay(100); i2cReadBytes(addr0, DIST_H_INDEX , 2 );//读取距离寄存器 dist = ((uint16_t)rxbuf[0] << 8) + rxbuf[1]; i2cReadBytes(addr0, TEMP_H_INDEX , 2 );//读取温度寄存器 temp = ((uint16_t)rxbuf[0] << 8) + rxbuf[1]; Serial.print(dist, DEC); Serial.print("cm"); Serial.print("------"); Serial.print((float)temp / 10, 1); Serial.println("℃"); } |
Gravity: URM09 Ultrasonic Sensor ( I²C)
DFRobot URM09 is an ultrasonic sensor specifically designed for fast ranging and obstacle avoidance application. Its measuring frequency can reach up to 50Hz. The sensor adopts built-in temperature compensation and I2C communication. There are three measurement ranges designed for programs to select: 150cm, 300cm and 500cm. Please note that shorter range will provide shorter ranging cycle and lower sensitivity. You may need to set it according to your actual use. Besides, the sensor is equipped with on-board LDO, which is able to avoid performance attenuation within power supply range.
SPECIFICATION
- Supply Voltage: 3.3~5.5V DC
- Operating Current: 20mA
- Operating Temperature Range: -10℃~+70℃
- Measurement Range: 2cm~500cm (can be set)
- Resolution: 1cm
- Accuracy: 1%
- Frequency: 50Hz Max
- Dimension: 47mm × 22 mm/1.85”× 0.87”
DOCUMENTS
SHIPPING LIST
- URM09 Ultrasonic Sensor(Gravity I²C)(V1.0) x1
- PH2.0-4P Connector x1
商品評價
目前沒有評價。