Baixe o app para aproveitar ainda mais
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; }
Compartilhar