#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define b1 A4
#define b2 A5
const int buttonOn = 5; // Tombol untuk menyalakan inkubator
const int buttonOff = 6; // Tombol untuk mematikan inkubator
const int buttonUp = 3; // Tombol untuk menaikkan suhu
const int buttonDown = 4; // Tombol untuk menurunkan suhu
bool isIncubatorOn = false; // Status inkubator (mati saat mulai)
int targetTemperature = 35; // Suhu target default
int currentTemperature = 25; // Suhu saat ini (contoh)
void setup() {
lcd.begin(16, 2); // Inisialisasi LCD 16x2
lcd.print("Incubator Control");
delay(1000);
lcd.clear();
displayTemperature();
pinMode(buttonOn, INPUT);
pinMode(buttonOff, INPUT);
pinMode(buttonUp, INPUT);
pinMode(buttonDown, INPUT);
}
void loop() {
int onState = digitalRead(buttonOn);
int offState = digitalRead(buttonOff);
int upState = digitalRead(buttonUp);
int downState = digitalRead(buttonDown);
// Tombol ON ditekan, nyalakan inkubator
if (onState == HIGH && !isIncubatorOn) {
isIncubatorOn = true;
lcd.clear();
lcd.print("Incubator ON");
delay(100); // Delay untuk mencegah bouncing
}
// Tombol OFF ditekan, matikan inkubator
if (offState == HIGH && isIncubatorOn) {
isIncubatorOn = false;
lcd.clear();
lcd.print("Incubator OFF");
delay(100); // Delay untuk mencegah bouncing
}
// Tombol UP ditekan, naikkan suhu
if (upState == HIGH && isIncubatorOn) {
targetTemperature++;
displayTemperature();
delay(100); // Delay untuk mencegah bouncing
}
// Tombol DOWN ditekan, turunkan suhu
if (downState == HIGH && isIncubatorOn) {
targetTemperature--;
displayTemperature();
delay(100); // Delay untuk mencegah bouncing
}
// Simulasi perubahan suhu saat ini (contoh)
if (currentTemperature < targetTemperature) {
currentTemperature++;
} else if (currentTemperature > targetTemperature) {
currentTemperature--;
}
delay(500); // Delay simulasi perubahan suhu
}
// Fungsi untuk menampilkan suhu pada LCD
void displayTemperature() {
lcd.clear();
lcd.print("Target Temp: ");
lcd.print(targetTemperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Current Temp: ");
lcd.print(currentTemperature);
lcd.print(" C");
}