#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int relay1Pin = 2; // Pin relay 1
int relay2Pin = 3; // Pin relay 2
int relay3Pin = 4; // Pin relay 3
int startButtonPin = 5; // Pin tombol start
int stopButtonPin = 6; // Pin tombol stop
bool motorRunning = false;
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("Motor 3 Fase");
lcd.setCursor(4, 1);
lcd.print("Stopped");
pinMode(relay1Pin, OUTPUT);
pinMode(relay2Pin, OUTPUT);
pinMode(relay3Pin, OUTPUT);
pinMode(startButtonPin, INPUT_PULLUP);
pinMode(stopButtonPin, INPUT_PULLUP);
}
void loop() {
int startButtonState = digitalRead(startButtonPin);
int stopButtonState = digitalRead(stopButtonPin);
if (startButtonState == LOW && stopButtonState == HIGH && !motorRunning) {
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Motor 3 Fase");
lcd.setCursor(4, 1);
lcd.print("Run Star");
// Aktifkan relay 1 dan 2
digitalWrite(relay1Pin, HIGH);
digitalWrite(relay2Pin, HIGH);
delay(5000); // Tunggu selama 10 detik
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Motor 3 Fase");
lcd.setCursor(4, 1);
lcd.print("Run Delta");
// Matikan relay 2 dan aktifkan relay 3
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, HIGH);
motorRunning = true;
} else if (stopButtonState == LOW && motorRunning) {
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Motor 3 Fase");
lcd.setCursor(4, 1);
lcd.print("Stopped");
// Matikan relay 1, 2, dan 3 jika tombol stop ditekan
digitalWrite(relay1Pin, LOW);
digitalWrite(relay2Pin, LOW);
digitalWrite(relay3Pin, LOW);
motorRunning = false;
}
}