Esse Bug está me deixando Louco, Salvando FLOAT na EEPROM

Olá @maikoherrmann82 ,
apesar de uma variável float ocupar 4 bytes na memoria, ao salva-la na EEPROM
não podemos salva-la e recupera-la byte a byte, o valor recuperado não representará um valor float.
Experimente usar EEPROM.put(address, data) e EEPROM.get(address, data) ao inves de
EEPROM.write(address, data) e EEPROM.read(address, data).
Ao gravar varias posições de EEPROM, o endereço deve ser incrementado de 4 em 4 bytes.

Rode este código:

#include <EEPROM.h> // incluir a biblioteca

const byte addr3 = 14;
float coef = 8.49;
float coef2 = 0;
void setup() {

  Serial.begin(9600);
}

void loop() {

  delay(500);
  Serial.println("Imprimindo Variavel coef");
  Serial.println(coef);
  delay(500);

  Serial.println("Gravando EEprom ADDR3");
  EEPROM.put (addr3, coef);

  delay(500);

  EEPROM.get(addr3,coef2);
  Serial.println(coef2);

  delay(5500);

}

RV mineirin

1 Like