#Include LiquidCrystal - I2C.h 2
#Include LiquidCrystal - I2C.h 2
h>
LiquidCrystal_I2C lcd(0x27, 20, 4); // for 4x20 LCD
#include <PZEM004Tv30.h>
// Relay pins
const int relay1 = 6; // PV
const int relay2 = 7; // Neutral PV
const int relay3 = A1; // Grid
const int relay4 = A3; // Neutral Grid
void setup() {
// Serial communication setup
Serial.begin(9600);
// LCD initialization
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("WELCOME TO SYSTEM");
lcd.setCursor(5, 1);
lcd.print("ATS E-BIKE");
lcd.setCursor(2, 2);
lcd.print("CHARGING STATION");
delay(500);
lcd.clear();
delay(500);
lcd.setCursor(9, 0);
lcd.print("BY");
lcd.setCursor(2, 1);
lcd.print("MR. TOKEK RACUN");
lcd.setCursor(1, 2);
lcd.print("MR. TEMPE GOSONG");
lcd.setCursor(3, 3);
lcd.print("MRS TERONG");
delay(500);
lcd.clear();
delay(500);
// Relay setup
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
}
void loop() {
unsigned long currentMillis = millis();
Voltage = pzem.voltage();
Voltage2 = pzem2.voltage();
// Read DC voltage
tegangan1 = analogRead(A0);
Vmodul_a = (tegangan1 * 5.0) / 1024.0;
Vin_INV = Vmodul_a / (R2 / (R1 + R2));
void showSlide() {
lcd.clear();
// Display slides on LC
if (isSlide1) {
lcd.setCursor(0, 1)
lcd.setCursor(4, 2);
lcd.print("INVERTER ON");
lcd.setCursor(3, 3);
lcd.print("(SYSTEM SAFE)");
isSlide1 = false;
} else {
lcd.setCursor(4, 2);
lcd.print("INVERTER OFF");
lcd.setCursor(6, 3);
lcd.print("(GRID!)");
isSlide1 = true;
}
}