小体积激光测距传感器(4m)

简介

这款激光测距传感器针对市面上测距传感器体积大、响应时间长、安装适配性差等问题而着重设计,体积只有指甲盖大小,测量范围可达4m,具备了体积小、盲区小、响应时间短、安装适配性高、防尘防水、寿命长、可靠性高等一系列优点。 传感数I2C输出,用户可搭配Arduino的IO扩展板使用,广泛应用于智能感应家具、家居安防、智能检测、智能控制、机器人避障、物体接近与存在检测等。

技术规格

引脚示意图

标号 名称 功能描述
红线 VCC 电源输入正极
黑线 GND 电源接地线
黄线 SCL I2C时钟线SCL
绿线 SDA I2C数据线SDA

尺寸图

安装开孔建议图

使用教程

准备

接线图

Arduino连接图

示例代码

#include "Wire.h"
#define address 0x74

uint8_t buf[2] = { 0 };

void setup() {
  Serial.begin(115200);
  Wire.begin();
}

uint8_t dat = 0xB0;
int distance = 0;


void loop() {
  writeReg(0x10, &dat, 1);
  delay(50);
  readReg(0x02, buf, 2);
  distance = buf[0] * 0x100 + buf[1] + 10;
  Serial.print("distance=");
  Serial.print(distance);
  Serial.print("mm");
  Serial.println("\t");
  delay(100);
}

uint8_t readReg(uint8_t reg, const void* pBuf, size_t size) {
  if (pBuf == NULL) {
    Serial.println("pBuf ERROR!! : null pointer");
  }
  uint8_t* _pBuf = (uint8_t*)pBuf;
  Wire.beginTransmission(address);
  Wire.write(&reg, 1);
  if (Wire.endTransmission() != 0) {
    return 0;
  }
  delay(20);
  Wire.requestFrom(address, (uint8_t)size);
  for (uint16_t i = 0; i < size; i++) {
    _pBuf[i] = Wire.read();
  }
  return size;
}

bool writeReg(uint8_t reg, const void* pBuf, size_t size) {
  if (pBuf == NULL) {
    Serial.println("pBuf ERROR!! : null pointer");
  }
  uint8_t* _pBuf = (uint8_t*)pBuf;
  Wire.beginTransmission(address);
  Wire.write(&reg, 1);

  for (uint16_t i = 0; i < size; i++) {
    Wire.write(_pBuf[i]);
  }
  if (Wire.endTransmission() != 0) {
    return 0;
  } else {
    return 1;
  }
}

串口查看传感器检测到的距离值

Arduino串口打印数据图

常见问题

还没有客户对此产品有任何问题,欢迎通过 qq 或者论坛联系我们! 更多问题及有趣的应用,可以访问论坛进行查阅或发帖

更多

DFRobot 商城购买链接