Mais uma vez estou aqui perguntando algo, rsrs.
Montei um voltimetro com arduino, mas as vezes preciso gravar o valor que ele esta exibindo no LCD na memoria EEPROM, sei que e possivel mas nao sei como. Preciso gravar numero com 2 casas decimais. Alguem pode me ajudar?
Achei algo do tipo na biblioteca do arduino mas ele so grava valor exato e quando coloco decimal nao funciona.
EEPROMs não gravam números decimais, pois ela não conhece "tipos de dados", apenas bytes sem qualquer representação. Você é quem tem que fazer o tratamento disto no seu código.
Uma maneira é gravar 2 números inteiros: um para a parte inteira e outro para a parte decimal. Gravação e leitura são momentos distintos para cada um e seu código é quem faz a soma deles.
Só de curiosidade, qual IC de EEPROM você está usando?
AlxDroidDev:
Só de curiosidade, qual IC de EEPROM você está usando?
EEPROM interna.
O exemplo funciona... mas apenas um quarto... daí ser importante saber como é que ele está a verificar a escrita na EEPROM. Ainda assim, nada como fazer isso como deve ser.
taravolt = 3.94;
int inteiro = (int)taravolt;
int decimal = (int)(taravolt * 100);
para gravar na EEPROM os bytes de um float
union FLOAT_tag {byte b[4]; float val;} FLOAT_Union;
FLOAT_Union.val = 3.34; // Aqui recebe o valor de float;
EEPROM.write(0, FLOAT_Union.b[0]); // Aqui grava cada um dos bytes do FLOAT
EEPROM.write(1, FLOAT_Union.b[1]);
EEPROM.write(2, FLOAT_Union.b[2]);
EEPROM.write(3, FLOAT_Union.b[3]);