#include <LiquidCrystal.h> //See the functions and commands in library for LCD screen from this url https://www.arduino.cc/en/Reference/LiquidCrystal
const int rs = A0, en = A1, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pins to which LCD is connected
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.begin(16, 2); //We are using a 16*2 LCD display
lcd.print("Hello "); //Display a intro message
lcd.setCursor(0, 1); // set the cursor to column 0, line 1
lcd.print("sulb"); //Display a intro message
delay(500); //Wait for display to show info
lcd.clear(); //Then clean it
}
void loop(){
double R= 0.008314;
double T=93.36;
double P=57.13;
double v=(22.6/527.3);
double K11=0.00000;
double K12=-0.00028;
double K13=-0.00815;
double K21=-0.00028;
double K22=0.00000;
double K23=-0.00240;
double K31=-0.00815;
double K32=-0.00240;
double K33=0.00000;
double Tc1=351.60;
double Tc2=339.19;
double Tc3=374.20;
double Pc1=5830.0;
double Pc2=3595.0;
double Pc3=4056.0;
double w1=0.2763;
double w2=0.3023;
double w3=0.3266;
double K011=-0.0250;
double K012= 0.0310;
double K013=-0.0060;
double x1=0.38110;
double x2=0.17956;
double x3=0.43934;
double Tr1=T/Tc1;
double Tr2=T/Tc2;
double Tr3=T/Tc3;
double K01=0.378893+1.4897153*w1-0.17131848*pow(w1,2)+0.0196554*pow(w1,3);
double K02=0.378893+1.4897153*w2-0.17131848*pow(w2,2)+0.0196554*pow(w2,3);
double K03=0.378893+1.4897153*w3-0.17131848*pow(w3,2)+0.0196554*pow(w3,3);
double K1=K01+K011*(1+pow(Tr1,0.5)*(0.7-Tr1));
double K2=K02+K012*(1+pow(Tr2,0.5)*(0.7-Tr2));
double K3=K03+K013*(1+pow(Tr3,0.5)*(0.7-Tr3));
double alf1=pow((1+K1*(1-pow(Tr1,0.5))),2);
double alf2=pow((1+K2*(1-pow(Tr2,0.5))),2);
double alf3=pow((1+K3*(1-pow(Tr3,0.5))),2);
double a1=(0.457235*pow(R,2)*pow(Tc1,2)/Pc1)*alf1;
double a2=(0.457235*pow(R,2)*pow(Tc2,2)/Pc2)*alf2;
double a3=(0.457235*pow(R,2)*pow(Tc3,2)/Pc3)*alf3;
double a11=pow(a1*a1,0.5)*(1-K11);
double a12=pow(a1*a2,0.5)*(1-K12);
double a13=pow(a1*a3,0.5)*(1-K13);
double a21=pow(a2*a1,0.5)*(1-K21);
double a22=pow(a2*a2,0.5)*(1-K22);
double a23=pow(a2*a3,0.5)*(1-K23);
double a31=pow(a3*a1,0.5)*(1-K31);
double a32=pow(a3*a2,0.5)*(1-K32);
double a33=pow(a3*a3,0.5)*(1-K33);
double a=x1*(1-x1)*a11 + x1*(1-x2)*a12 + x1*(1-x3)*a13 + x2*(1-x1)*a21 + x2*(1-x2)*a22 + x2*(1-x3)*a23 + x3*(1-x1)*a31 + x3*(1-x2)*a32 + x3*(1-x3)*a33;
double b1=0.077796*R*Tc1/Pc1;
double b2=0.077796*R*Tc2/Pc2;
double b3=0.077796*R*Tc3/Pc3;
double b= x1*b1 + x2*b2 + x3*b3;
double p = R*T/(v-b)-(a/(pow(v,2)+2*b*v-pow(b,2)));
double t = ((P+(a/(pow(v,2)+2*b*v-pow(b,2))))*(v-b))/R;
lcd.setCursor(0, 0);
lcd.print(" P="); lcd.print(p); //Display the result
lcd.setCursor(0, 1); // set the cursor to column 0, line 1
lcd.print("Log T="); lcd.print(t); //Display the result
}