I am building a device that is using a flow meter to measure the amount of water coming out of a tap in milliliters. I need some help with the programming of the Arduino Uno as I have no idea if I am doing this right and need to finish this by next week. I am using 7 LEDs to indicate when 100ml has been used (1 LED will light up once 100ml has been used). I need these LEDs to light up and stay lit until the device is reset. I will need to also have a button to reset the device as well. Some help with this project would be much appreciated ! Thank you everyone !
So far I have a program which measures the amount of fluid flowing through a flow meter at a rate of L/hour,but I do not want it to measure rate. I need the program to count the revolutions of the flowmeter, convert them into mililitres, than light up one LED once 100mL has been used. This is the code below.
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
}
P.S. This is the Flow meter I am using : http://www.jaycar.com.au/productView.asp?ID=ZD1202