/****************************************
Pengukur jarak dengan sensor Ultrasonik
HC-SR04 | Arduino UNO
---------------------------
Vcc | 5V
Gnd | GND
TRIG | 2
ECHO | 3
---------------------------
LED | 13
*****************************************/
int trig_pin = 2;
int echo_pin = 3;
int led_pin = 13; // Pin untuk LED
long echotime;
float distance;
const float threshold = 20.0; // Ambang batas jarak dalam cm
int numReadings = 5; // Jumlah pengukuran untuk dirata-rata
void setup() {
Serial.begin(9600);
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
pinMode(led_pin, OUTPUT); // Set LED sebagai output
digitalWrite(trig_pin, LOW);
}
void loop() {
float totalDistance = 0;
// Mengambil beberapa pengukuran untuk dirata-rata
for (int i = 0; i < numReadings; i++) {
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin, LOW);
echotime = pulseIn(echo_pin, HIGH);
distance = 0.0001 * ((float)echotime * 340.0) / 2.0;
totalDistance += distance;
delay(50); // Tunggu sebentar antara pengukuran
}
// Hitung jarak rata-rata
distance = totalDistance / numReadings;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Tampilkan peringatan dan nyalakan LED jika jarak di bawah ambang batas
if (distance < threshold) {
Serial.println("Peringatan: Objek terlalu dekat!");
digitalWrite(led_pin, HIGH); // Nyalakan LED
} else {
digitalWrite(led_pin, LOW); // Matikan LED jika jarak aman
}
delay(1000); // Delay yang lebih singkat
}