martes, 13 de febrero de 2018

Sensor de flujo de liquido YF-S201 Arduino


El sensor  de flujo YF-S201 es un elemento que nos permite, tanto detectar un flujo a través de una tubería, como medir su caudal, con relativa simpleza. este elemento cuenta con dos extremos roscados en los cuales debes conectar la tubería sobre la que realizarás la medición, siendo cuidadoso con la dirección marcada en el elemento, pues sólo en esa dirección la medición será adecuada.

El sensor funciona por medio de una  turbina interna movida por el flujo, la cual posee un sensor de efecto Hall que nos da una una señal cuadrada en la salida del sensor cada vez que se produce algún movimiento en la turbina. Así, si nuestro objetivo es medir el flujo, sólo debemos contar los frentes de onda que nos llegan desde el elemento y si nuestro objetivo fuere sólo detectarlo, bastará con censar por cambios repentinos en el flujo.

Este dispositivo es capaz de medir caudales desde 1L/min hasta 30L/min, con presiones de 1.75 MPa, muy superior a la presión en las tuberías de acueducto domesticas. Para calcular el caudal con este sensor sólo es necesario contar la cantidad de pulsos que recibimos por segundo y luego dividir tal cantidad por un factor de conversión. Ahora, con el fin de contar con exactitud la cantidad de pulsos por segundo, debemos valernos de una herramienta del microcontrolador, las interrupciones por hardware.

En el siguiente ejemplo utilizaremos el sensor para medir el flujo en una tubería y desplegaremos la medición en el monitor serial de Arduino.

Esquema de conexión Arduino UNO





Ejemplo de Código Arduino


volatile int Contador; //variable que cuenta los pulsos
int PinSensor = 2;    // pin donde se conecta  el sensor


// función a ejecutarse en cada interrupción
void pulso ()
{
  Contador++;
}

long funcion(void)
{
  long cantidad;
  Contador = 0; 
  interrupts();
  delay(100);  //Se inician las interrupciones y se cuentan los pulsos
  noInterrupts();//se suspenden las interrupciones
  cantidad=10*Contador; // pulsos por segundo
  return cantidad;
}

void setup()
{
  Serial.begin(9600);
  pinMode(PinSensor, INPUT);
  attachInterrupt(0,pulso,RISING); // inicializamos las interupciones
}

void loop () 
{
  float frecuencia=funcion(); //frecuencia de los pulsos
  float Caudal=frecuencia/7.5; //calculamos el caudal en L/m

  Serial.print ("Litros por  minuto: ");
  Serial.println (Caudal);
}




Una vez subido el código, podremos observar en el monitor serial del IDE Arduino  el caudal medido por el sensor en todo momento.




FIN DEL POST

0 comentarios:

Publicar un comentario

Display matricial 8x8 con Arduino SPI y MAX7219

La matrices led de 8x8 son elementos extremadamente útiles para desplegar mensajes que puedan ser visibles desde la distancia. ...