Oi pessoal, estou fazendo uma página para o arduino onde irei inserir dois números de telefone...mas ai vem .....

- para gravar na eeprom, cada "espaço" aceita um byte (0 a 255) então penso em ler o numero de uma variável e dividir em pedaços

ex... 981110222 seria 

val1 = 98

val2 = 11

val3 = 10 ... etc

e gravar na eeprom e depois ler isso, juntar e passar para uma variável....

Alguem tem alguma ideia de como fazer isso ou algo melhor????

Obrigado

Exibições: 453

Responder esta

Respostas a este tópico

Sérgio, eu fiz algo parecido dessa mesma forma que você está pensando. Só que eu gravava o IP da Wiznet5100 na EEPROM. Dessa forma o usuário poderia acessar o arduino pelo browser e alterar o ip para usar em qualquer rede. Pode fazer como vc citou que funciona legal.

Eu fiz esses 2 métodos pra gravar dados float na EEPROM, so que o dados float ocupa 4 byte, então cuidado so pra alocar as posições corretas. 

void setFloatEEPROM(int posicao, float valor){ //grava na eeprom, chame o metodos e passe a posição e o valor
float num = valor;
float *P_num = #
byte *P_num2 = (byte*)P_num;
byte a = *P_num2;
byte b = *(P_num2 + 1);
byte c = *(P_num2 + 2);
byte d = *(P_num2 + 3);
EEPROM.write(posicao, a);
EEPROM.write(posicao+1, b);
EEPROM.write(posicao+2, c);
EEPROM.write(posicao+3, d);
}

float getFloatEEPROM(int posicao){//faz a leitura do valor e retorna em float
byte a = EEPROM.read(posicao);
byte b = EEPROM.read(posicao+1);
byte c = EEPROM.read(posicao+2);
byte d = EEPROM.read(posicao+3);
float result = 0;
float *P_num = &result;
byte *P_num2 = (byte*)P_num;
*P_num2 = (byte) a;
*P_num2++;
*P_num2 = (byte) b;
*P_num2++;
*P_num2 = (byte) c;
*P_num2++;
*P_num2 = (byte) d;
return (float)result;
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço