Tidak semua sensor ultrasonic dapat bekerja saat berada di bawah air. Sebagian besar sensor ultrasonic (JSN-SRT04T, HC-SR04, atau A02YYUW) dirancang untuk pendeteksian jarak di medium udara. Sensor L04xMTW adalah sensor sonar ultrasonik bawah air (underwater echosounder) yang menggunakan komunikasi UART/serial. Sensor ini umum dipakai untuk:
- ROV
- robot bawah air
- depth measurement
- water level
- obstacle avoidance underwater
Berikut spesifikasi sensor ultrasonic bawah air L04xMTW.
Pada projek ini sesnor akan digunakan seperti sonar dalam pendeteksian kedalaman air. Untuk membaca data dari sensor, digunakan ESP8266 dengan rangkaian berikut.
![]() |
| Skematik diagram ESP8266 dengan Ultrasonic L041MTW |
Berikut program deteksi jarak sensor:
#include <SoftwareSerial.h>
// RX, TX
SoftwareSerial sonar(13, 12);
unsigned char data[4];
void setup()
{
Serial.begin(115200);
// baud sensor
sonar.begin(115200);
Serial.println("Start");
}
void loop()
{
// trigger sonar
sonar.write(0x55);
delay(200);
if(sonar.available() >= 4)
{
for(int i=0; i<4; i++)
{
data[i] = sonar.read();
}
Serial.print("HEX : ");
for(int i=0; i<4; i++)
{
Serial.print("0x");
if(data[i] < 16)
Serial.print("0");
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.println();
// cek frame
if(data[0] == 0xFF)
{
int checksum =
(data[0] +
data[1] +
data[2]) & 0xFF;
if(checksum == data[3])
{
int distance =
(data[1] << 8) +
data[2];
Serial.print("Distance : ");
Serial.print(distance);
Serial.println(" mm");
}
}
}
else
{
Serial.println("No Data");
}
delay(1000);
}
Pada program tersebut sensor diperintahkan untuk transmit dengan mentrigger sensor sonar.write(0x55);
perhitungan jarak dilakukan dengan rumus :
jarak = kecepatan suara × waktu / 2
diperoleh data dalam HEX : 0xFF 0x00 0x88 0x87
struktur data : FF DATA_H DATA_L CHECKSUM
| Byte | Nilai | Fungsi |
|---|---|---|
| 0 | FF | Header |
| 1 | 00 | High byte |
| 2 | 88 | Low byte |
| 3 | 87 | Checksum |
Hasil pendeteksian kedalam air terbaca 136 mm (13.6 cm). Berikut tampilah serial data dari sensor.
Sensor ini dirancang untuk pendeteksian pada medium air, jika digunakan pada medium udara maka data yang terbaca 0 mm. Artinya sensor gagal mendeteksi jarak dan dianggap 0 dikarenakan beda cepat rambat antara medium air dan udara.




0 comments:
Post a Comment