水下超声波避障传感器-3m

简介

这是一款专门水下应用而设计的超声波水下避障传感器,宽电压5-24V供电,具有体积小、盲区小、高精度、高防护等特点,在水下测量范围2-300cm。

传感器具有IP68的防护等级,代替传感器摄像头,满足正常航行速度水下避障要求,水下航行器使用避障传感器,可以做到真正的“无人驾驶”,不需要人眼观察,就可以让水下航行器实现随意控制,在10m水深下,依旧可以轻松避障。

体积小、盲区小,不占空间,易集成到项目中。

技术规格

引脚示意图

标号 名称 功能描述
红线 VCC 电源输入正极
黑线 GND 电源接地线
黄线 RX UART 接收数据线
白线 TX UART 发送数据线

尺寸图

尺寸图

开孔安装建议图

尺寸图

输出格式

1、通信说明

接口 波特率 数据位 停止位 校验位
UART 115200bps 8 1

2、时序图

时序图

注:T1≥19ms;T2≈13ms

3、UART输出格式

帧数据 输出数据 说明 字节
帧头 0XFF 帧头,固定为0XFF 1字节
H_DATA 0X07 距离数据的高8位 1字节
L_DATA 0XA1 距离数据的低8位 1字节
SUM 0XA7 数据校验和 1字节

SUM=(帧头+ Data_H+ Data_L)&0x00FF

=(0XFF + 0X07 + 0XA1)&0x00FF

=0XA7;

距离值= Data_H*256+ Data_L=0X07A1;

转换成十进制等于1953;

使用教程

准备

接线图

注意:传感器需放入水里才有数据,否则输出距离值为0

Arduino连接图

示例代码

#include <SoftwareSerial.h>
unsigned char buffer_RTT[4] = {0};// 用于存储从串口读到的数据
int Distance = 0;//用于储存读到的距离值
uint8_t CS;//储存校验和
#define COM 0x55
SoftwareSerial mySerial(7, 8); // RX, TX
void setup() {
  Serial.begin(115200);
  mySerial.begin(115200);
}
void loop() {
  mySerial.write(COM);
  delay(100);
  if(mySerial.available() > 0){
    delay(4);
    if(mySerial.read() == 0xff){    //判断数据包头
      buffer_RTT[0] = 0xff;
      for (int i=1; i<4; i++){
        buffer_RTT[i] = mySerial.read();    //读取数据
      }
      CS = buffer_RTT[0] + buffer_RTT[1]+ buffer_RTT[2];  //计算校验和
      if(buffer_RTT[3] == CS) {
        Distance = (buffer_RTT[1] << 8) + buffer_RTT[2];//计算距离
        Serial.print("Distance:");
        Serial.print(Distance);
        Serial.println("mm");
      }
    }
  }
}

结果:将传感器放入水下,若前方有障碍物,则串口打印出传感器与障碍物之间的距离值。

Arduino串口打印数据图

常见问题

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

更多

[DFRobot 商城购买链接]