// Halo, abdi Yaser. Ieu program kanggo Arduino Uno di simulasi Wokwi.
// Program ieu ngagunakeun sensor ultrasonik HC-SR04 pikeun ngukur jarak, sarta
// mun jarakna kurang ti 30 cm, LED jeung buzzer bakal hurung. Lamun jarakna leuwih,
// LED jeung buzzer bakal pareum. Ieu program sederhana tapi mangpaat, ibarat urang
// nyiapkeun diri saméméh ulangan, teu kénéh gugup tapi tetep waspada.
// Hayu urang tingali kumaha cara gawéna!
const int trigPin = 9; // Pin pikeun ngirim pulsa (trigger) sensor ultrasonik
const int echoPin = 10; // Pin pikeun nampa pulsa pantulan (echo)
const int buzzerPin = 8; // Pin pikeun buzzer, pikeun ngabéjaan lamun aya hal anu deukeut
const int ledPin = 7; // Pin pikeun LED, jadi indikator visual mun objek caket
void setup() {
// Setelan awal: nyetél pin-pin nu dipaké
pinMode(trigPin, OUTPUT); // Trigger jadi output
pinMode(echoPin, INPUT); // Echo jadi input
pinMode(ledPin, OUTPUT); // LED jadi output
pinMode(buzzerPin, OUTPUT); // Buzzer jadi output
Serial.begin(9600); // Mimitian komunikasi Serial, sangkan urang bisa nyaho jarakna
}
void loop() {
long duration, distance;
// Ngirim pulsa ultrasonik: mimiti, setel trigger ka LOW pikeun bersih-bersih (ngahapus noise)
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Teras, setel trigger ka HIGH salila 10 mikrodetik pikeun ngirim pulsa
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
// Balik deui trigger ka LOW sanggeus ngirim pulsa
digitalWrite(trigPin, LOW);
// Ngukur waktu pantulan sinyal ti sensor ultrasonik
duration = pulseIn(echoPin, HIGH);
// Ngarobah waktu (duration) jadi jarak (cm)
// Rumus: jarak = (duration * 0.034) / 2; dimana 0.034 cm/µs téh kecepatan sora
distance = duration * 0.034 / 2;
// Ngatur LED jeung buzzer dumasar jarak anu diukur
if(distance <= 30) { // Upami jarakna 30 cm atawa kurang, hartina objek caket
digitalWrite(ledPin, HIGH); // LED hurung, geulis pisan
tone(buzzerPin, 1000); // Buzzer nyaring ku frekuensi 1kHz, siga alarm mini
} else {
digitalWrite(ledPin, LOW); // LED pareum
noTone(buzzerPin); // Buzzer teu nyaring
}
// Nampilin hasil jarak dina Serial Monitor sangkan urang bisa ningali hasilna
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(100); // Jeda saeutik, biar teu rurusuhan, jeung supaya prosésna stabil
}