Go Down

Topic: Water flow sensor (Read 5764 times) previous topic - next topic

Stefan_28

Hi everyone. I am using the following code to read the flow through the sensor.  When I plugged in my sensor to port 2, everything worked fine. But when I changed this to bit 7 (in both hardware and software), it did not give me any results but still went on measuring bit 2.  Does anyone knows why?
Here is the code
Code: [Select]
#include <SD.h>

volatile int Signal_1; //measuring the rising edges of the signal
int MeasuredFlow_1;     // the converted output signal
int flowmeter_1 = 7;    // Assigning pin 7 to input of flow meter 1 (input)

void rpm ()     //This is the function that the interupt calls
{
  Signal_1++;  //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(flowmeter_1, INPUT);      //initializes digital pin 7 as an input
  Serial.begin(9600);              //This is the setup function where the serial port is initialised,
  attachInterrupt(0, rpm, RISING); //attaching the interrupt
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop ()   
{
  Signal_1 = 0;                  //Set NbTops to 0 ready for calculations
  sei();                          //Enables interrupts
  delay (1000);                   //Wait 1 second
  cli();                          //Disable interrupts
  MeasuredFlow_1 = (Signal_1 * 60 / 7.5);  //(Pulse frequency x 60) / 7.5Q, = flow rate in L/hour
  Serial.print (MeasuredFlow_1, DEC);       //Prints the number calculated above
  Serial.print (" L/hour\r\n");   //Prints "L/hour" and returns a  new line
}

groundFungus

External interrupt 0 is on pin 2.  You can not change the pin for external interrupt 0.  If you need the interrupt to be on a different pin you can use "pin change interrupts". 

Stefan_28

thanks for the help :) it worked perfectly :)

Go Up