Buen dia a todos, necesito ayuda con un codigo, lo que estoy tratando de hacer es que por medio de un caudalimetro y una electrovalvula pueda llenar embases con determinado numero de litros que yo introduzca por el puerto serial, el problema que tengo actualmente es que el programa actualmente hace el conteo de litros pero no se detiene en la cantidad de litros que introduzco por el puerto serial y en cambio sigue calculando los litros y la electrovalvula nunca se apaga ![]()
adjunto el codigo:
volatile int NbTopsFan;
float Calc;
int hallsensor = 2;
int pinRele=11;
int lecturaSt;
int caudalTope;
void rpm () {
NbTopsFan++;
}
void setup() {
Serial.begin(9600);
pinMode(hallsensor, INPUT);
pinMode(pinBotonStart, INPUT);
pinMode(pinRele, OUTPUT);
attachInterrupt(0, rpm, RISING);
}
void loop () {
if(Serial.available()){
caudalTope = Serial.read();
digitalWrite(pinRele, HIGH);
do {
NbTopsFan = 0;
sei();
delay (1000);
cli();
Calc = Calc + (NbTopsFan / 5.5)/60;
Serial.println(Calc, DEC);
}while(Calc < caudalTope);
digitalWrite(pinRele, LOW);
caudalTope = 0;
lecturaSt = 0;
}
delay(500);
}
caudalimetro.ino (803 Bytes)