Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
A

ahmedhodhod

@ahmedhodhod
About
Posts
7
Topics
1
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    i know that but the problem now how to write 8 digits in eeprom

    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    @hard-shovel said in cannot save water meter in arduino EEPROM:

    if (EEPROM.read(0) == 0xFF){

    thanks it working now but cannot read more than 8 digits number

    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    unfortunately cannot read the values that stored after a power cycle

    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    @hard-shovel said in cannot save water meter in arduino EEPROM:

    controller

    same issue with your modification in the code & the controller are using arduino mega 2560

    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    i'm use the below code but the main problem.when arduino powered off the value of ''totalMilliLitres'' stored return to 0

    Liquid flow rate sensor -DIYhacking.com Arvind Sanjeev
    
    Measure the liquid/water flow rate using this code. 
    Connect Vcc and Gnd of sensor to arduino, and the 
    signal line to arduino digital pin 2.
     
     */
    #include <EEPROM.h>
    byte statusLed    = 13;
    
    byte sensorInterrupt = 0;  // 0 = digital pin 2
    byte sensorPin       = 2;
    
    // The hall-effect flow sensor outputs approximately 4.5 pulses per second per
    // litre/minute of flow.
    float calibrationFactor = 4.5;
    
    volatile byte pulseCount;  
    
    float flowRate;
    unsigned int flowMilliLitres;
    unsigned long totalMilliLitres;
    
    unsigned long oldTime;
    
    void setup()
    {
      
      // Initialize a serial connection for reporting values to the host
      Serial.begin(9600);
       
      // Set up the status LED line as an output
      pinMode(statusLed, OUTPUT);
      digitalWrite(statusLed, HIGH);  // We have an active-low LED attached
      
      pinMode(sensorPin, INPUT);
      digitalWrite(sensorPin, HIGH);
    
      pulseCount        = 0;
      flowRate          = 0.0;
      flowMilliLitres   = 0;
      totalMilliLitres  = 0;
      oldTime           = 0;
    
      // The Hall-effect sensor is connected to pin 2 which uses interrupt 0.
      // Configured to trigger on a FALLING state change (transition from HIGH
      // state to LOW state)
      attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
      if (EEPROM.read(0) != 0xFF){
      EEPROM.put(1,totalMilliLitres);
    }
    }
    /**
     * Main program loop
     */
    void loop()
    {
       
       if((millis() - oldTime) > 1000)    // Only process counters once per second
      { 
        // Disable the interrupt while calculating flow rate and sending the value to
        // the host
        detachInterrupt(sensorInterrupt);
            
        // Because this loop may not complete in exactly 1 second intervals we calculate
        // the number of milliseconds that have passed since the last execution and use
        // that to scale the output. We also apply the calibrationFactor to scale the output
        // based on the number of pulses per second per units of measure (litres/minute in
        // this case) coming from the sensor.
        flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
        
        // Note the time this processing pass was executed. Note that because we've
        // disabled interrupts the millis() function won't actually be incrementing right
        // at this point, but it will still return the value it was set to just before
        // interrupts went away.
        oldTime = millis();
        
        // Divide the flow rate in litres/minute by 60 to determine how many litres have
        // passed through the sensor in this 1 second interval, then multiply by 1000 to
        // convert to millilitres.
        flowMilliLitres = (flowRate / 60) * 1000;
        
        // Add the millilitres passed in this second to the cumulative total
        totalMilliLitres += flowMilliLitres;
          
        unsigned int frac;
        
        // Print the flow rate for this second in litres / minute
        Serial.print("Flow rate: ");
        Serial.print(int(flowRate));  // Print the integer part of the variable
        Serial.print("L/min");
        Serial.print("\t");       // Print tab space
    
        // Print the cumulative total of litres flowed since starting
        Serial.print("Output Liquid Quantity: ");        
        Serial.print(totalMilliLitres);
        Serial.println("mL"); 
        Serial.print("\t");       // Print tab space
      Serial.print(totalMilliLitres/1000);
      Serial.print("L");
        EEPROM.get(1,totalMilliLitres);
        // Reset the pulse counter so we can start incrementing again
        pulseCount = 0;
        
        // Enable the interrupt again now that we've finished sending output
        attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
      }
    }
    
    /*
    Insterrupt Service Routine
     */
    void pulseCounter()
    {
      // Increment the pulse counter
      pulseCount++;
    }
    
    
    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    unfortunately not;
    i need to store in arduino eeprom and iam using this sensor

    0_1531062888197_Steel-Water-Flow-Sensor-.jpg

    Troubleshooting

  • cannot save water meter in arduino EEPROM
    A ahmedhodhod

    hello Friends
    any one can help me in how to store total of liters count in arduino eeprom ;Problem When arduino mega has turned off ; the stored value of liters returns to 0

    Troubleshooting
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular