int melody[] = {523, 494, 523, 494, 523, 494, 523}; // Tangga nada
int durasi = 300;
const int trigPin = 9;
const int echoPin = 8;
const int ledPin = 7;
const int buzzerPin = 6;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Kirim pulsa ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Baca echo
long duration = pulseIn(echoPin, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Kalau objek dekat, nyalakan LED dan mainkan nada
if (distance < 20) {
digitalWrite(ledPin, HIGH);
// Mainkan tangga nada
for (int i = 0; i < sizeof(melody)/sizeof(melody[0]); i++) {
tone(buzzerPin, melody[i], durasi);
delay(durasi);
noTone(buzzerPin);
delay(100);
}
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin); // Matikan suara
}
delay(500);
}