0% found this document useful (0 votes)
7 views9 pages

Code

The document contains a code snippet for an Arduino program that measures angles and performs corrections based on those measurements. It utilizes a LiquidCrystal display to show the angle and performance factor (PF) while executing various correction routines based on the case number. The program includes functions for measuring, printing data, and controlling digital outputs for correction actions.

Uploaded by

bekelebate00
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views9 pages

Code

The document contains a code snippet for an Arduino program that measures angles and performs corrections based on those measurements. It utilizes a LiquidCrystal display to show the angle and performance factor (PF) while executing various correction routines based on the case number. The program includes functions for measuring, printing data, and controlling digital outputs for correction actions.

Uploaded by

bekelebate00
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

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);

You might also like