/*
* PERCOBAAN 1 (REVISI 4): Sensor Jarak (HC-SR04) + 1 LED
* Tujuan: Menyalakan LED jika ada objek yang terdeteksi
* dalam jarak SANGAT DEKAT (0-20 cm).
*
* REVISI: Pin LED dipindah ke Pin 11 agar konsisten
* dengan Proyek Utama (Tugas 2).
*/
// === Definisi Pin ===
#define PIN_TRIG 9
#define PIN_ECHO 10
#define PIN_LED 11 // <-- REVISI: Dipindah ke Pin 11 (Pin PWM)
// === Ambang Batas ===
int batasSangatDekat = 20; // 20 cm
void setup() {
Serial.begin(9600);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
pinMode(PIN_LED, OUTPUT);
}
void loop() {
// --- LANGKAH 1: Baca Sensor Jarak ---
long jarakCm = bacaJarak();
// --- LANGKAH 2: Tampilkan ke Serial Monitor ---
Serial.print("Jarak: ");
Serial.print(jarakCm);
Serial.print(" cm");
// --- LANGKAH 3: Logika 2 Zona ---
if (jarakCm <= batasSangatDekat) {
// Skenario 1: ZONA SANGAT DEKAT (0-20 cm)
digitalWrite(PIN_LED, HIGH); // LED NYALA
Serial.println(" -> ZONA DEKAT!");
} else {
// Skenario 2: ZONA JAUH (> 20 cm)
digitalWrite(PIN_LED, LOW); // LED MATI
Serial.println(" -> Area Aman.");
}
delay(500);
}
// --- Fungsi Pembantu (Sama) ---
long bacaJarak() {
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
long durasi = pulseIn(PIN_ECHO, HIGH);
long jarak = durasi * 0.034 / 2;
return jarak;
}