Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Como usar a memória EEPROM do Arduino

Imprimir
Avaliação do Usuário: / 10
PiorMelhor 

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:

#include<EEPROM.h>
 
void setup() {
 for(int i=0;i<512;i++) {
 EEPROM.write(i,0);
 }
}
 
void loop() {
}

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” é:

#include<EEPROM.h>
 
char palavra[] = "seucurso";
 
void setup() {
 for(int i=0;i<sizeof(palavra);i++) {
 EEPROM.write(i,palavra[i]);
 }
}
 
void loop() {
}

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:

#include<EEPROM.h>
 
int posicao = 0;
byte valor;
 
void setup()
{
 Serial.begin(9600);
}
 
void loop()
{
 valor = EEPROM.read(posicao);
 
 Serial.print(posicao);
 Serial.print("\t");
 Serial.write(valor);
 Serial.println();
 posicao++;
 if (posicao == 512)
 posicao = 0;
 delay(500);
}

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.


 

Comentários  

 
+1 #3 Você é único!Julio Cesar 21-04-2015 10:09
Procurei na internet ul tutorial igual ao seu. não achei um sequer. O seu tem exemplos práticos e "SEPARADOS" de escrita e leitura, isso facilita o aprendizado. A maioria (todos) é sempre tudo junto e misturado tornando a compreensão do código muito complexa pra quem não tem muita prática. Muito obrigado!
Citar
 
 
+2 #2 Projeto final de cursogabriele 14-10-2014 21:14
gostaria de saber como fazer para gravar uma senha de 4 dígitos de mais ou menos 5 pessoas no PIC18F4550 pois meu instrutor mandou colocar só que não sabemos como mexer na memoria EEPROM tenho ate semana quivem
por favor me ajuda
Citar
 
 
+2 #1 parabenspaulo 16-10-2013 11:26
vc e o cara. tutorial simples bonito e pega . um 10
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: