Buscar

Como salvar um dado Float na EEPROM do Arduino

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

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; 
}

Continue navegando