Memprogram Sensor Jarak Di ESP32

Memprogram Sensor Jarak Di ESP32

Sensor jarak adalah komponen elektronik yang digunakan untuk mengukur jarak antara sensor dengan suatu objek di depannya, tanpa menyentuh objek tersebut.

Berikut adalah cara memprogram Sensor Jarak di ESP32 dengan mudah :

Untuk code bisa gunakan di bawah ini :

#include <Arduino.h>


int trig_sensor_jarak = 17;
int echo_sensor_jarak = 16;


int baca_sensor_jarak()
{
int pulse, inches, cm;
digitalWrite(trig_sensor_jarak,LOW);
delayMicroseconds(2);
digitalWrite(trig_sensor_jarak, HIGH);
delayMicroseconds(10);
digitalWrite(trig_sensor_jarak, LOW);
pulse = pulseIn(echo_sensor_jarak, HIGH);
cm = pulse * 0.034 / 2; inches = cm * 2.54;
return cm;
}


void setup()
{
Serial.begin(9600);
pinMode(trig_sensor_jarak, OUTPUT);
pinMode(echo_sensor_jarak, INPUT);

}
void loop(){
int sensor_jarak = baca_sensor_jarak();
Serial.println("Jarak : " + (String)sensor_jarak);


}


Berikut adalah penjelasan kode Arduino kamu, yang berfungsi untuk mengukur jarak menggunakan sensor ultrasonik, seperti HC-SR04, dengan pin trig di GPIO 17 dan echo di GPIO 16:


๐Ÿง  Tujuan Kode

Mengukur jarak objek di depan sensor dan menampilkannya di Serial Monitor dalam satuan centimeter (cm).


๐Ÿงฑ Penjelasan Kode Baris per Baris

1. Library dan Pin

#include <Arduino.h>

int trig_sensor_jarak = 17;
int echo_sensor_jarak = 16;
  • Menyertakan pustaka dasar Arduino.
  • Mendefinisikan dua pin:
    • trig_sensor_jarak = 17 โ†’ pin untuk trigger (mengirim pulsa ultrasonik)
    • echo_sensor_jarak = 16 โ†’ pin untuk echo (menerima pantulan suara)

โš ๏ธ Pin 16 dan 17 ini digunakan di ESP32, karena Arduino Uno tidak punya GPIO 16/17.


2. Fungsi baca_sensor_jarak()

int baca_sensor_jarak()
{
  int pulse, inches, cm;

  digitalWrite(trig_sensor_jarak, LOW);
  delayMicroseconds(2);

  digitalWrite(trig_sensor_jarak, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig_sensor_jarak, LOW);

  pulse = pulseIn(echo_sensor_jarak, HIGH);

  cm = pulse * 0.034 / 2;
  inches = cm * 2.54;

  return cm;
}

๐Ÿ” Penjelasan langkah per langkah:

  1. Trigger ON selama 10ยตs:
    • Ini akan membuat sensor mengirim sinyal ultrasonik.
  2. pulseIn(echo, HIGH):
    • Mengukur berapa lama pin echo bernilai HIGH, yaitu durasi sinyal pantulan kembali diterima.
  3. Menghitung jarak:
    • cm = pulse * 0.034 / 2:
      • 0.034 cm/ยตs = kecepatan suara dalam udara (sekitar 343 m/s).
      • Dibagi 2 karena waktu tempuhnya pergi dan pulang.
  4. (Tidak diperlukan): inches = cm * 2.54 โ†’ Ini malah salah konversi (harusnya sebaliknya), tapi tidak digunakan dalam return.
  5. Return jarak dalam cm.

3. Fungsi setup()

void setup() {
  Serial.begin(9600);
  pinMode(trig_sensor_jarak, OUTPUT);
  pinMode(echo_sensor_jarak, INPUT);
}
  • Memulai komunikasi serial pada baudrate 9600.
  • Mengatur pin trigger sebagai output, dan echo sebagai input.

4. Fungsi loop()

void loop() {
  int sensor_jarak = baca_sensor_jarak();
  Serial.println("Jarak : " + (String)sensor_jarak);
}
  • Memanggil fungsi baca_sensor_jarak() untuk mendapat nilai jarak.
  • Menampilkan hasil pembacaan ke Serial Monitor.

โœ… Output di Serial Monitor

Contoh:

Jarak : 25
Jarak : 26
Jarak : 25

Artinya objek berada pada jarak sekitar 25โ€“26 cm dari sensor.



untuk diskusi bisa kontak dibawah ini :

Sosial media :