void Measure();
void Correction(int x);
wodd Print();
void of print();
void CB Print();
#include<LiquidCrystal.h>
LiquidCrystal LCD (13,12,11,10,9,8);
float PF, Angle;
int dur = 0;
int Case= 0;
float IL, IL1;
int R1= 1;
int R2 = 2;
int R3=3;
int R4 =2;
int ReadDur= 0;
void loop() {
Case=0;
Correction (Case); Measure(); delay(500);
while (IL<1 46 IL1<1)
LCD.clear();
oc_ Print();
delay(300); Measure(); delay(500);}
Case=0;
Correction (Case); Measure(); delay(500);
ICD.clear(); print() CB_ Print();
while(pf<0.95)
LCD.setCursor(0,2);
LCD print("Correcting EF");
Case++;
if (Case>15)
{Case=0;
break;}
Correction (Case);
delay(100);
Measure();
delay(500);
Print();
CB_ Print();
if (Angle>20|| PF>0.95)
break;
delay(400);
delay(400);
LCD.setCursor(0,2);
LCD.print("
LCD.setCursor(0,2);
LCD.print("WAIT");
delay(1000);
Print();
CB_ Print();
White (1)
if (PF:0.95)
break;
LCD.setCursor(0,2);
LCD.print(" ");
LCD.setCursor(0.2);
LCD.print("CORRECTION DONE!");
delay(700);
Measure();
Print();
CB_ Print():
delay(500);
void Measure()
dur= pulsein (ReadDur, HIGH);
Angle= dur* 0.018;
Angle =Angle-90;
PF= cos(Angle* 0.0174533);
IL= analogRead(A0);
delay (500);
IL1= analogRead(AO);
void Print()
LCD.setCursor(0,3);
LCD.print(" ");
ICD.setCursor(0,0);
LCD.print("Angle=");
LCD.print (Angle);
LCD.setCursor(0,1);
LCD.print("PF = ");
LCD.print(PF);
void CB_ Print()
LCD.setCursor(0,3);
LCD.print("CB Combination=");
LCD.print (Case);
void OC _print()
LCD.clear();
LCD.setCursor(0,1);//setCursor(x,y)
LCD.print (" NO LOAD");
LCD.setcursor(0,2);
LCD.print(" CONNECTED");
void Correction(int x)
if (x==1)
digitalWrite (R1, RIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalwrite(R4, LOW);
else if (x==2)
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);
else if (x==3)
digitalWrite(R1, HIGH);
digitalWrite(R2. HIGH);
digitalWrite(R3, LOW);
digitalwrite(R4, LOW);
else if (x==4)
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
else if (x==5)
digitalWrite(B1, HIGH);
digitalWrite(R2, LOW);
digitalWrite (R3, HIGH);
digitalWrite(R4, LOW);
else if (x==6)
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, LOW);
else if (x==7)
digitalWrite(R1, HIGH)
digitalWrite (R2, HIGH);
digitalWrite (R3, HIGH);
digitalWrite(R4, LOW);
else if (x==8)
digitalWrite(R1, LOW):
digitalWrite(R2, LOW):
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
else if (x==8)
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalwrite(R4, HIGH);
else if (x==10)
digitalWrite(R1, LOW);
digitalWrite(R2, HIGH);
digitalWrite(R3, LOW);
digitalwrite(R4, HIGH);
else if(x==11)
{
digitalWrite(R1, HIGH);
digitalWrite (R2, HIGH);
digitalWrite(R3, LOW);
digitalWrite(R4, HIGH);
elseif(x==12)
digitalWrite(R1, LOW);
digitalWrite(R2, LOW);
digitalwrite (R3, HIGH);
digitalWrite(R4, HIGH);
else if (x==13)
digitalWrite(R1, HIGH);
digitalWrite(R2, LOW);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
else if(x==14)
digitalWrite(R1, LOW);
digitalwrite(R2,HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4,HIGH);
else if(x==15)
digitalWrite(R1, HIGH);
digitalWrite(R2, HIGH);
digitalWrite(R3, HIGH);
digitalWrite(R4, HIGH);
else
digitalwrite(R1, LOW);
digitalWrite(R2, LOW);
digitalWrite(R3, LOW);
digitalWrite(R4, LOW);