#include <LiquidCrystal.h>
#define PIN_TRIG 11
#define PIN_ECHO 10
#define PIN_LED 1
#define PIN_BUZZER 2
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
void setup() {
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_BUZZER, INPUT);
digitalWrite(PIN_BUZZER, LOW);
}
void loop() {
//membaca sensor ultrasonik
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
int duration = pulseIn(PIN_ECHO, HIGH);
int jarak = duration/ 58;
//menampilkan di layar
lcd. begin(16, 2);
lcd. print("Jarak : ");
lcd. print(jarak);
lcd. print(" cm");
//menentukan delay kedipan
if(jarak <= 100){
berkedip3();
} else if (jarak <=200){
berkedip2();
} else {
berkedip1();
}
delay(100);
}
void berkedip1() {
digitalWrite(PIN_LED, HIGH);
tone(PIN_BUZZER, 8000);
delay(2894);
digitalWrite(PIN_LED, LOW);
noTone(PIN_BUZZER);
delay(2894);
}
void berkedip2() {
digitalWrite(PIN_LED, HIGH);
tone(PIN_BUZZER, 8000);
delay(600);
digitalWrite(PIN_LED, LOW);
noTone(PIN_BUZZER);
delay(600);
}
void berkedip3() {
digitalWrite(PIN_LED, HIGH);
tone(PIN_BUZZER, 8000);
delay(300);
digitalWrite(PIN_LED, LOW);
noTone(PIN_BUZZER);
delay(300);
}