#include <Servo.h>
#include <LiquidCrystal_I2C.h>
int COLUMN = 16;
int ROW = 2;
const int trig = 9;
const int echo = 10;
Servo motor;
LiquidCrystal_I2C lcd(0x27, COLUMN, ROW);
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
motor.attach(11);
lcd.init();
lcd.backlight();
}
void loop() {
// Trigger sensor ultrasonik
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
// Baca durasi pulsa echo
long durasi = pulseIn(echo, HIGH);
// Hitung jarak
int jarak = durasi*0.034/2;
// Jika jarak kurang dari 10 cm (sesuaikan nilai ini sesuai kebutuhan), putar servo
if (jarak < 50) {
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.println("Kondisi");
lcd.setCursor(0, 1);
lcd.println("Panas");
delay(1500);
motor.write(180);
delay(500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.println("Selamat");
lcd.setCursor(0, 1);
lcd.println("Anda Menang!");
delay(1500);
lcd.clear();
} else if (jarak < 200) {
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.println("Kondisi");
lcd.setCursor(0, 1);
lcd.println("anget");
delay(3000);
motor.write(90);
} else if (jarak < 400) {
lcd.clear();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.println("Kondisi");
lcd.setCursor(0, 1);
lcd.println("dingin");
delay(3000);
motor.write(45);
}
}