const int redPin = 2;
const int yellowPin = 4;
const int trigPin = 12;
const int echoPin = 14;
long duration;
int distance;
void setup() {
Serial.begin(115200); // kode setup
pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai Output
pinMode(echoPin, INPUT); // Menetapkan echoPin sebagain Input
pinMode (redPin, OUTPUT);
pinMode (yellowPin, OUTPUT);
}
void loop() {
digitalWrite(trigPin, LOW); // Menghapus trigPin
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Menyetel trigPin dengan status TINGGI selama 10 mikro detik
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); // Membaca echoPin
distance = (duration*0.034/2); //Menghitung jaraknya
// menampilkan jarak pada serial monitor
Serial.println("Rama Sugiarto");
Serial.print("Jarak (cm): ");
Serial.println(distance);
if(distance<20){
digitalWrite (redPin, HIGH); // turn on the LED
Serial.println("Jarak dengan objek snagat dekat, hati-hati");
blinkLED(redPin, 100);
}
else {
digitalWrite (yellowPin, LOW);
}
if(distance>20&&distance<40){
digitalWrite (yellowPin, HIGH); // turn on the LED
Serial.println("Jarak dengan objek perlu diperhatikan, hati-hati");
}
else{
digitalWrite (redPin, LOW);
}
delay(400);
}
void blinkLED(int pin, int interval) {
digitalWrite(pin, HIGH);
delay(interval); // LED menyala sesuai dengan interval
digitalWrite(pin, LOW);
delay(interval); // menunggu interval sebelumnya
}