我需要使用 Arduino Nano 从 I2C 中的激光雷达读取距离数据。目前,这是我编写的代码。
unsigned int readDistance()
{
unsigned int dist = 0 ; // LiDAR actually measured distance value. static so we can return previous dist
// step 1: instruct sensor to read echoes
Wire.beginTransmission(0x10) ; // transmit to device 0x10
Wire.write(2) ; // sets distance data address (addr)
Wire.write(3) ; // sets distance data address (addr)
Wire.endTransmission() ; // stop transmitting
// step 2: wait for readings to happen
delay(100) ; // datasheet suggests at least 100ms
// step 3: request reading from sensor
Wire.requestFrom(0x10, 2) ; // request 2 bytes (DIST_L, DIST_H) from slave device #0x10
dist = Wire.read() ; dist += Wire.read() << 8; // calculate distance value, bit shift high distance
return dist ; // return updated dist
}
但我有一种感觉,我从错误的数据地址请求',因为我没有得到我期望的结果(即变化的距离数据)。此外,我使用了一个 I2C 扫描仪,它 100% 确认激光雷达位于 0x10 的(默认地址)上。
(TF02 Pro) 数据表:https ://www.unmannedtechshop.co.uk/wp-content/uploads/2020/01/TF02-Pro-Product-Manual-Alpha.pdf
问题:我是否从正确的数据地址读取 任何帮助将不胜感激。