You are on page 1of 2

int ThermistorPin = 0;

int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
float pert_caliente=0;
float pert_frio=0;
float pert_tibio=0;
float x;
int a1;
void setup() {
Serial.begin(9600);
}

void loop() {

Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
T = T - 273.15;
T = x;
Serial.print("Temperature: ");
Serial.print(a1);
Serial.println(" F");

delay(500);
}

void proceso() //usa x (temperatura) para dar centroides (a1) y pertenencia


{

if((x>0)&&(x<10))
pert_frio=(x/10);
else if((x>=10) && (x<=20))
pert_frio=1;
else if((x>20) && (x<30))
pert_frio=((30-x)/10);
else (pert_frio=0);

if ((x>0) && (x<=20))


{
// gotoxy(15,5);
a1 = 15;
// printf("\ncentroide_frio = 15\n");
}
if((x>20) && (x<30))
{ a1=((((30-x)/10)*(15))+((((x-20)/10)*(35)))/(((30-x)/10)+((x-20)/10)));
// printf("\n este es centroide %i",a1);
}

if((x>20)&&(x<30))
pert_tibio=((x-20)/10);
else if((x>=30) && (x<=40))
pert_tibio=1;
else if((x>40) && (x<50))
pert_tibio=(50-x)/10;
else (pert_tibio=0);

if ((x>=30) && (x<=40))


{

a1 = 35;
}
if((x>40) && (x<50))
{ a1=((((50-x)/10)*(35))+((((x-40)/10)*(55)))/(((50-x)/10)+((x-40)/10)));
}

if((x>40)&&(x<50))
pert_caliente=((x-40)/10);
else if((x>=50) && (x<=60))
pert_caliente=1;
else if((x>60) && (x<70))
pert_caliente=(70-x)/10;
else (pert_caliente=0);

if ((x>=50) && (x<70))


{

a1 = 55;
// printf("\ncentroide_caliente = 55\n");
}

You might also like