Boa tarde! 
Tenho um controle de iluminação, que programa a quantidade de lux, para que a lampada acenda quando atingir ou ficar abaixo deste nível...gostaria de gravar este ajuste na EEPROM para que se desligasse e ligasse o arduino ele permanecesse nesta configuração, e quando eu quiser alterar este valor, que grave "por cima" do valor anterior e na próxima ligação mostre o novo valor configurado...
Na programação declarei a variável que vou configurar o lux como MIN , addr = 0 e no void setup coloquei o comando MIN = EEPROM.read(addr); e no void loop o comando EEPROM.write(addr, MIN); além de ter declarado a biblioteca no inicio do programa... este valor de MIn aparece em um display lcd e geralmente o numero dele é em centenas...não sei se por isso não esta funcionando do jeito certo...

Exibições: 336

Responder esta

Respostas a este tópico

Boa tarde ROL,

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.

Assim fica mais fácil tentarmos entender sua dificuldade.

RV

Boa tarde RV,

pelo que vi aqui agora, meu numero esta acima de 255, então quando regulo até 255 ele funciona perfeitamente, acima de 255 ele não retorna o valor programado... teria que fazer esta gravação na EEPROM em partes?

Uma variável que permite dados acima de 255, tem comprimento de  2 ou mais bytes.

Daí precisa de uma rotina correta para gravar na EEPROM.

Faça o que recomendei:

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo 
com o seu sketch.

Assim fica mais fácil tentarmos entender sua dificuldade.

RV

Sim, em partes.

Pq EEPROM.read(addr); lê apenas bytes.

Vc precisa quebrar sua informação em 2 bytes.

Para isso pode usar:

https://www.arduino.cc/reference/en/language/functions/bits-and-byt...

https://www.arduino.cc/reference/en/language/functions/bits-and-byt...

Para quebrar em 2 e 

"Parte baixa"+256*"parte alta" para fazer virar um int novamente.

Dica:

Não fique escrevendo constantemente em loop na eeprom. Ela queima ! Ela tem uma vida útil limitada para escritas. Escreva somente quando entender necessário. Por ex quando o valor mudou e se passou 1 segundo. Coisa assim.

Ref:

https://www.arduino.cc/en/Reference/EEPROMRead

Um tutorial CLIQUE AQUI com exemplo

Abs.

CK

Depois de todas as dicas que já lhe foram dadas, você pode usar o comando Update ao invés de Write, pois só vai gravar o valor na Eprom se o mesmo for diferente do anterior já gravado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço