Você está na página 1de 1

sexta-feira, 23 de novembro de 2012

Como salvar um dado Float na EEPROM do Arduino.

Wellington Cássio Faria


Engenharia da Computação
INATEL - Instituto Nacional de Telecomunicações
wellingtonf@gec.inatel.br
http://www.ebah.com.br/user/AAAAAMypUAH/wellington-cassio-faria

Introdução:

Esses tempos quando estava tentando salvar um dado(Temperatura) na


EEPROM, deparei com a limitação de 1 byte por endereço, podendo
salvar números de 0 255 por endereço, já um dado float tem 4 bytes.
Então resolvi o problema com seguinte algoritmo que o ocupa dois
endereços de memória para casa dado float. (considerando duas casas
decimais)

Exemplo: Salvar 3 dados float


Dado 1 p=0 (ocupa posição 0 e 1)
Dado 2 p=2 (ocupa posição 2 e 3)
Dado 3 p=4 (ocupa posição 4 e 5)
A posição para cada dado tem que ser posição do ultimo dado + 2.

Programação:
void gravar(float x,int p) //X valor a ser salvo P posição na memória
{

EEPROM.write (p,int(x));
EEPROM.write (p+1,int((x-int(x))*100));
}

float ler(int p)
{
return float(EEPROM.read(p))+ float(EEPROM.read(p+1))/100;
}

Você também pode gostar