#Include LiquidCrystal I2C.h
#Include LiquidCrystal I2C.h
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));