Estou tentando gravar na Eprom , qual erro, não consigo ler , aguem pode ajuda ?

#include <EEPROM.h>
int memoria, conteudo, comando;
String cpID = “”, cpIDEPROM = “”, cpADM = “”;

void setup(){
Serial.begin(9600); // Inicialização da comunicação serial
// for (int i = 0 ; i < EEPROM.length() ; i++) {// Limpa e EEPROM
// EEPROM.write(i, 0);
// }
escreveString(1,“585-150-229-94-DL-07-09-2019”); // 245 190 239 63
escreveString(2,“665-140-239-75-DL-04-06-2019”);
escreveString(3,“735-120-259-96-DL-08-08-2019”);
escreveString(4,“985-110-269-67-DL-01-09-2019”);
}

void loop(){
cpID = “”;
cpIDEPROM = “”;
if(Serial.available()>0){ // verifica o que foi digitado (1, 2, 3 ou 4)
cpID = “735-120-259-96-DL-08-08-2019”; // Valor Fornecido para variável …substring(0,10);
int comando = Serial.parseInt(); // Infromando no Serial a posição de leitura na Eprom( 1, 2, 3 ou 4 ).
cpIDEPROM = leString(comando); // Lendo a EPROM
Serial.print(EEPROM.length()); Serial.print(" - “); Serial.println(comando);
Serial.print(cpIDEPROM); Serial.print(” - “); Serial.println(cpID);
if( cpIDEPROM == cpID ){ // Comparando o conteudo na EPROM com a variavbel cpID. <== não está correto
Serial.println(” OK , Acesso permitido “);
}else{
Serial.println(” ");
}
}
}
//-------------------------------------------------------------------
void escreveString(int enderecoBase, String mensagem){ // Salva a string nos endereços de forma sequencial
if (mensagem.length()>EEPROM.length() || (enderecoBase+mensagem.length())>EEPROM.length() ){ // verificamos se a string cabe na memória a partir do endereço desejado
Serial.println (“A String não cabe na EEPROM”); // Caso não caiba mensagem de erro é mostrada
} else { // Caso seja possível armazenar
for (int i = 0; i<mensagem.length(); i++){
EEPROM.write(enderecoBase,mensagem*); // Escrevemos cada byte da string de forma sequencial na memória*

  • enderecoBase++; // Deslocamos endereço base em uma posição a cada byte salvo*
  • }*
  • EEPROM.write(enderecoBase,’\0’); // Salvamos marcador de fim da string*
  • }*
    }
    //---------------------------------------------------------------------
    String leString(int enderecoBase){
  • String mensagem="";*
  • if (enderecoBase>EEPROM.length()){ // Se o endereço base for maior que o espaço de endereçamento da EEPROM retornamos uma string vazia*
  • return mensagem;*
  • } else { // Caso contrário, lemos byte a byte de cada endereço e montamos uma nova String*
  • char pos;*
  • do{*
  • pos = EEPROM.read(enderecoBase);// Leitura do byte com base na posição atual*
  • enderecoBase++; // A cada leitura incrementamos a posição a ser lida*
  • mensagem = mensagem + pos; // Montamos string de saídaa*
  • }*
  • while (pos != ‘\0’); // Fazemos isso até encontrar o marcador de fim de string*
  • }*
  • return mensagem; // Retorno da mensagem*
    }
    codigoEEPROM.txt (3.13 KB)

Já viste isto??

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

O Problema deve estar na logica

Afaste-se do "botão denunciar ou moderador" :slight_smile:

Bob.