O
microcontrolador no Arduino possui uma memória EEPROM,
Electrically-Erasable Programmable Read-Only Memory, em português
memória programável somente para leitura apagável eletricamente.
Essa
é uma memória que armazena dados mesmo sem alimentação elétrica e esses
dados podem ser gravados e apagados, mas essas operações podem ser
feitas por um número de vezes limitado, algo entre 100.000 e 1.000.000
de vezes.
Os microcontroladores ATmega328 possuem EEPROM de 1024 bytes, o ATmega168 e o Atmega8 possuem 512 bytes.
Essa
memória é importante quando necessitamos armazenar, por exemplo,
configurações do equipamento, que devem ser mantidas mesmo depois que
ele seja desligado, para que no próximo uso as configurações não tenham
que ser refeitas.
A gravação na EEPROM é feita utilizando-se a biblioteca EEPROM.h e enviando-se byte a byte para a memória.
Um código exemplo para se preencher a memória EEPROM com o número zero é o que segue:
Com
esse código preenchemos apenas uma vez, durante a execução da função
setup(), a memória EEPROM disponível com zeros. No caso estou usando um
microcontrolador ATmega168, de 512 bytes.
Esse exemplo pode ser utilizado para limpar (zerar) a memória.
A
função EEPROM.write() recebe dois parâmetros, o primeiro a posição da
memória, de 0 até o máximo disponível, e o byte a ser guardado.
Um exemplo para guardar a palavra “seucurso” é:
Esse código acima grava a palavra seucurso a partir da primeira posição a memória EEPROM, ou seja, zero.
Para
ler a memória EEPROM é mais simples ainda, basta usar a função
EEPROM.read() e passar como parâmetro a posição de memória a ser lida:
Com
esse exemplo, lemos uma posição da EEPROM e enviamos via porta serial
para o PC, dessa forma podemos ver o resultado abrindo o Serial Monitor do Arduino.
Note que a leitura é feita byte a byte e quando chegamos ao final da memória voltamos ao início novamente.
0 comentários:
Postar um comentário