Intro.
En esta entrada, hablaremos sobre el sensor de flujo de agua, este tipo de sensor nos ayudará a determinar la cantidad de agua que esta pasando en determinada tubería.
Material:
- Arduino Uno
- Cable USB
- G1/2 Water Flow sensor //Imagen
- Jumpers
- Una resistencia de 10K
Para elaborar este tipo de proyecto personal, se tiene con la desventaja de conseguir el sensor, ya que buscando por internet y en forma local, encontré que son dificil de conseguirlos y tienen un costo muy algo, ya que la mayoría son utilizados para uso industrial.
Desarrollo
Especifícaciones del sensor de flujo de agua:
Las espeficicaciones que nos interesan es cual es el voltaje con el que se maneja y las temperaturas en las que podemos trabajar con el.
Para el desarrollo de este proyecto me base en wiki proporcionado por seeedstudio, basandome en el diagrama.
Código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// reading liquid flow rate using Seeeduino and Water Flow Sensor from Seeedstudio.com | |
// Code adapted by Charles Gantt from PC Fan RPM code written by Crenn @thebestcasescenario.com | |
// http:/themakersworkbench.com http://thebestcasescenario.com http://seeedstudio.com | |
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 | |
} |
7 pts lab integrados
ResponderEliminar