#define echoPin 5
#define trigPin 4
#define merahPin 6
#define kuningPin 7
#define hijauPin 8
#define buzzPin 9
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(merahPin, OUTPUT);
pinMode(kuningPin, OUTPUT);
pinMode(hijauPin, OUTPUT);
pinMode(buzzPin, OUTPUT);
}
//here we need to write a new function
float readDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
unsigned long duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2;
}
void beep(int duration) {
tone(buzzPin, 1000);
delay(duration);
noTone(buzzPin);
delay(duration);
}
void loop() {
float distance = readDistance();
delay(1000);
digitalWrite(merahPin, LOW);
digitalWrite(kuningPin, LOW);
digitalWrite(hijauPin, LOW);
if (distance < 80) {
beep(2);
digitalWrite(merahPin, HIGH);
} else if (distance <= 200) {
beep(150);
digitalWrite(kuningPin, HIGH);
} else {
beep(1000);
digitalWrite(hijauPin, HIGH);
}
Serial.print("jarak: ");
Serial.println(distance);
}