jueves, 17 de mayo de 2012

Sensor de Flujo de Agua

Intro
Para esta entrada, lo que veremos será una parte de como obtener los parámetros de un sensor de flujo de agua. Para este caso el sensor, fue un poco difícil de conseguir, ya que buscando no estaban disponibles o eran para usos muy industriales, elevando su precio, así que lo mande pedir de seeedstudio.

El tipo de sensor que tiene es de hall-effect que en pocas palabras, este funciona como un abanico, donde circulan cargas perpendicularmente a las cargas y al campo magnético aplicado

Material
El material como se ha trabajado en la mayoría es el mismo:
  • Cable USB
  • Arduino Uno
  • Una resistencia de 10K
  • Jumpers o diferentes cables
  • G1/2 Water Flow sensor (link)


Desarrollo
Para la conexion de estos componentes me base base en el que recomiendan en la wiki de seeedstudio



Código
En el código tambien me base en el que viene como ejemplo y además bien comentado

volatile int NbTopsFan; //measuring the rising edges of the signal
int Calc;                               
int hallsensor = 2;    //The pin location of the sensor
 
void rpm ()     //This is the function that the interupt calls 
{ 
  NbTopsFan++;  //This function measures the rising and falling edge of the 
 
//hall effect sensors signal
} 
// The setup() method runs once, when the sketch starts
void setup() //
{ 
  pinMode(hallsensor, INPUT); //initializes digital pin 2 as an input
  Serial.begin(9600); //This is the setup function where the serial port is 
 
//initialised,
  attachInterrupt(0, rpm, RISING); //and the interrupt is attached
} 
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop ()    
{
  NbTopsFan = 0;   //Set NbTops to 0 ready for calculations
  sei();      //Enables interrupts
  delay (1000);   //Wait 1 second
  cli();      //Disable interrupts
  Calc = (NbTopsFan * 60 / 7.5); //(Pulse frequency x 60) / 7.5Q, = flow rate 
 
//in L/hour 
  Serial.print (Calc, DEC); //Prints the number calculated above
  Serial.print (" L/hour\r\n"); //Prints "L/hour" and returns a  new line
}

Resultados
Una vez compilado y subido el código a nuestro arduino, podemos hacer la prueba haciendo pasar agua o en mi caso, si no quieren hacer tanto mugrero o no cuenten en ese momento basta con estar sooplando al sensor y veremos resultados.



Notas
Una vez obtenido los datos lo siguiente es tener la fórmula donde dependiendo del flujo que vaya pasando y que este sea variada saber la cantidad que resta por pasar, para que se cierre la válvula.

Bibliográfia
http://www.seeedstudio.com/wiki/index.php?title=G1/2_Water_Flow_sensor
http://www.seeedstudio.com/wiki/images/b/b7/Water_flow_sensor_datasheet.pdf

1 comentario: