RuiViana

SalvaFloat_FOM

Oct 18th, 2016
166
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //http://pastebin.com/e2rbGtmN
  2. #include <EEPROM.h>
  3. #include <DS3231.h>
  4. DS3231  rtc(SDA, SCL);
  5. Time  t;
  6. float E = 0.00f;
  7. float R;
  8. float U;
  9. float Y;
  10. byte addr = 0;
  11. byte A_1a = 0;
  12. //-------------------------------
  13. void setup()
  14. {
  15.   Serial.begin(9600);
  16.   EEPROM.get(addr, E);
  17. }
  18. //-------------------------------
  19. void loop()
  20. {
  21.   if ( A_1a == 1)                               //Se não for a 1a vez faça as condicoes
  22.   {
  23.     t = rtc.getTime();
  24.     if (millis() >= 1000)
  25.     {
  26.       R = (U * 0.07676);
  27.       Y = (Y + R);
  28.     }
  29.     E = Y / 10;   // O problema está aqui, quando o sistema for reiniciado, preciso que E já comece do valor da eeprom, porém apenas uma
  30.     //vez, pois se eu fizer isso: E= (Y/10)+A; ela sempre vai somar a eeprom na equação, e vai alterar o valor lido pelo
  31.     //sensor.
  32.     if (t.sec == 59)
  33.     {
  34.       EEPROM.put(addr, E);
  35.     }
  36.   }
  37.   else                                      // Se for a 1a vez
  38.   {
  39.     Serial.println(E);                      // mostre o valor de E
  40.     A_1a = 1;                               // Informe que nao e + 1a vez
  41.   }
  42. }
RAW Paste Data