#define pin_trig 2 // MENDEFINISIKAN VARIABLE PIN_TRIG DENGAN ANGKA 2
#define pin_echo 4 // MENDEFINISIKAN VARIABLE PIN_ECHO DENGAN ANGKA 4
#define pin_buzzer 6 // MENDEFINISIKAN VARIABLE PIN_BUZZER DENGAN ANGKA 6
int distance; // VARIABLE DISTANCE UNTUK MENAMPUNG DATA JARAK YANG DIPEROLEH BERDASARKAN VARIABLE DURATION
int duration; // VARIABLE DURATION UNTUK MENAMPUNG DATA WAKTU YANG DITEMPUH SUARA DARI TRANSMITTER HINGGA KEMBALI KE RECEIVER
void setup()
{
pinMode(pin_trig, OUTPUT); // PIN_TRIG SEBAGAI OUTPUT
pinMode(pin_echo, INPUT); // PIN_ECHO SEBAGAI INPUT
pinMode(pin_buzzer, OUTPUT); // PIN_BUZZER SEBAGAI OUTPUT
}
void loop()
{
digitalWrite(pin_trig, LOW); // SET PIN TRIG KE LOW, UNTUK BERHENTI MENERIMA GELOMBANG SUARA
delayMicroseconds(10); // JEDA WAKTU 10 MIKRO DETIK
digitalWrite(pin_trig, HIGH); // SET PIN TRIG KE HIGH, UNTUK MENERIMA GELOMBANG SUARA
delayMicroseconds(10); // JEDA WAKTU 10 MIKTRO DETIK
digitalWrite(pin_trig, LOW); // SET PIN TRIG KE LOW, UNTUK BERHENTI MENERIMA GELOMBANG SUARA
duration = pulseIn (pin_echo, HIGH); // UNTUK MENGHITUNG WAKTU YANG DIGUNAKAN SUARA UNTUK MENERIMA GELOMBANG SUARA
distance = (duration/2) / 29.1; // UNTUK MENAMPUNG DATA GELOMBANG SUARA YANG DITERIMA
if (distance < 100) // JIKA JARAK KURANG DARI 100 CM, MAKA BUZZER AKAN MENYALA
{
digitalWrite(pin_buzzer,HIGH); // BUZZER ON
tone(pin_buzzer, 400); // SUARA YANG DIKELUARKAN BUZZER
delay(500); // JEDA WAKTU 0,5 DETIK
tone(pin_buzzer,300); // SIARA YANG DIKELUARKAN BUZZER
delay(500); // JEDA WAKTU 0,5 DETIK
}
else // JIKA JARAK LEBIH DARI 100 CM, MAKA BUZZER TIDAK AKAN MENYALA
{
digitalWrite(pin_buzzer,LOW); // BUZZER OFF
noTone(pin_buzzer); // TIDAK ADA SUARA YANG DIKELUARKAN BUZZER
}
}