#include <Arduino.h>
const int ledPin = 2; // Pin LED yang akan digunakan
const int relayPin = 13; // Pin relay (untuk mengendalikan kompor)
int state = 0; // State awal adalah Idle
int countdown = 0; // Variabel untuk menghitung mundur waktu
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
pinMode(ledPin, OUTPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(ledPin, LOW);
digitalWrite(relayPin, LOW);
printOptions(); // Mencetak pilihan jenis telur ke Serial Monitor
}
void loop() {
if (state == 0) { // Idle
if (Serial.available() > 0) {
String input = Serial.readStringUntil('\n');
if (input == "Telur Burung Pipit") {
startCooking(8);
} else if (input == "Telur Burung Puyuh") {
startCooking(9);
} else if (input == "Telur Burung Hantu") {
startCooking(3);
} else if (input == "Telur Burung Onta") {
startCooking(10);
} else {
Serial.println("Pilihan jenis telur tidak valid");
printOptions();
}
}
} else if (state == 1) { // Cooking
Serial.print("Cooking :");
Serial.println(countdown);
countdown--;
if (countdown <= 0) {
state = 2; // Pindah ke state Waiting
countdown = 5;
}
delay(1000); // Delay 1 detik
} else if (state == 2) { // Waiting
Serial.print("Waiting :");
Serial.println(countdown);
countdown--;
if (countdown <= 0) {
state = 3; // Pindah ke state Finish
digitalWrite(ledPin, HIGH); // Nyalakan LED
countdown = 10; // Bonus: Kembali ke state Idle setelah 10 detik
}
delay(1000); // Delay 1 detik
} else if (state == 3) { // Finish
Serial.println("Finish");
digitalWrite(ledPin, LOW); // Matikan LED
if (countdown <= 0) {
state = 0; // Kembali ke state Idle setelah selesai
printOptions();
}
}
}
void startCooking(int time) {
Serial.println("Memulai proses memasak");
countdown = time;
state = 1; // Pindah ke state Cooking
digitalWrite(relayPin, HIGH); // Nyalakan kompor
}
void printOptions() {
Serial.println("Pilih jenis telur:");
Serial.println("1. Telur Burung Pipit");
Serial.println("2. Telur Burung Puyuh");
Serial.println("3. Telur Burung Hantu");
Serial.println("4. Telur Burung Onta");
}