#include <LCD-I2C.h> // memakai library LCD I2C
LCD_I2C lcd(0x27, 16, 2); // mengatur settingan buat LCD
#define pinTrig 2 // pin Trigger sensor ultrasonik
#define pinEcho 4 // pin Echo sensor ultrasonik
#define pinLED 5 // pin untuk LED
// fungsi untuk membaca jarak obyek yang dideteksi sensor
float getDistance(int trig,int echo){
pinMode(trig,OUTPUT);
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
return pulseIn(echo, HIGH)/58.0;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); // mengaktifkan serial monitor
// mengaktifkan lcd display
lcd.begin(); // memulai LCD
lcd.display(); // agar tampilan LCD tampil
lcd.backlight(); // menyalakan backlight
pinMode(pinLED, OUTPUT);
}
void loop() {
lcd.clear(); // membersihkan layar
lcd.setCursor (8,0); // set posisi di kolom 8 baris 0
lcd.print("jasmine"); // tulis di layar
lcd.setCursor (5,1); // set posisi di kolom 5 baris 1
lcd.print("9C"); // tulis di layar
delay(1000); // this speeds up the simulation
lcd.clear();
lcd.setCursor(1,0);
lcd.print("aku belajar");
lcd.setCursor(2,1);
lcd.print("ROBOTIKA");
delay(1000);
// baca jarak obyek yang dideteksi sensor ultrasonik
float jarak = getDistance (pinTrig, pinEcho);
// tampilkan jarak obyek ke LCD
lcd.setCursor(1,0);
lcd.print("jarak (cm) = ");
lcd.setCursor(1,1);
lcd.print(jarak);
// cek apakah ada obyek ada jarak <= 200 cm
if (jarak <= 200) {
// ya ada obyek, nyalakan LED 500 milidetik
digitalWrite(pinLED, HIGH); delay(500);
lcd.clear();
lcd.print("Obyek detected!");
} else { // tidak ada obyek, matikan LED
digitalWrite(pinLED, LOW);
lcd.clear();
lcd.print("No obyek!");
}
delay(1000);
}