notes/Resources/sensors/L04.md
2024-02-05 12:38:33 +00:00

1.5 KiB

L04 Underwater Sonar

Datasheet

Cable Descriptions

Color Name Description Remarks
red VCC Power input cable 3.3V~5V
black GND Power ground cable //
white RX Trigger input cable (1)
yellow TX UART output cable (1)

UART Data Frames

Frame data Instruction Byte
Frame header Fixed to 0xFF 1 byte
Data_H High 8 bits of distance data 1 byte
Data_L Low 8 bits of distance data 1 byte
SUM Checksum of communication 1 byte
#include <SoftwareSerial.h>
unsigned char buffer_RTT[4] = {0};
uint8_t CS;
#define COM 0x55
SoftwareSerial mySerial(7, 8); 

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) {
        int distance = (buffer_RTT[1] << 8) + buffer_RTT[2];
        Serial.print("Distance:");
        Serial.print(distance);
        Serial.println("mm");
      }
    }
  }
}