RuiViana

Teste_FOM

Oct 24th, 2016
147
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <EEPROM.h>
  2. //#include <DS3231.h>
  3. //DS3231  rtc(SDA, SCL);
  4. //Time  t;
  5. float E = 0.00f;
  6. float R = 0.00f;
  7. float U = 1.00f;
  8. float D = 0.00f;
  9. float Y;
  10. byte addr = 0;
  11. byte A_1a = 0;
  12. float leitura;
  13. int i;
  14. //-------------------------------
  15. void setup()
  16. {
  17.   Serial.begin(9600);
  18.   EEPROM.get(addr, E);
  19.   addr += sizeof(float);
  20.   EEPROM.get(addr, Y);
  21.   addr += sizeof(float);
  22.   EEPROM.get(addr, D);
  23.   leitura = E;
  24.   Y = E * 10;
  25.   addr = 0;
  26. }
  27. //-------------------------------
  28. void loop()
  29. {
  30.   //t = rtc.getTime();
  31.  
  32.   if ( A_1a == 1)                               //Se não for a 1a vez faça as condicoes
  33.   {
  34.     for (i = 20; i >= 0; i--)
  35.     {
  36.       R = (U * 0.10);
  37.       Y = (Y + R);
  38.       delay(1000);
  39.     }
  40.     Serial.print("i ");
  41.     Serial.println(i);
  42.     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
  43.  
  44.     //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
  45.     //sensor.
  46.  
  47.     Serial.print("E ");   Serial.println(E, 5);
  48.     Serial.print("Y ");   Serial.println(Y, 5);
  49.     Serial.print("R/Y ");   Serial.println((R / Y), 5);
  50.  
  51.     if (i <= 0)
  52.     {
  53.       //      Serial.print("E ");
  54.       //      Serial.println(E, 5);
  55.      // EEPROM.put(addr, E);
  56.       addr += sizeof(float);
  57.      // EEPROM.put(addr, Y);
  58.       addr += sizeof(float);
  59.      // EEPROM.put(addr, (R / Y));
  60.       addr = 0;
  61.        Serial.print("20X ");
  62.     }
  63.    
  64.   }
  65.   else                                      // Se for a 1a vez
  66.   {
  67.     Serial.print("E ");   Serial.println(E, 5);
  68.     Serial.print("Y ");   Serial.println(Y, 5);
  69.     Serial.print("D ");   Serial.println(D, 5);
  70.     A_1a = 1;                               // Informe que nao e + 1a vez
  71.   }
  72. }
RAW Paste Data