Eeprom immer wieder ausgeben

Hallo, miteinander, vielleicht kann mir jemmand dabei helfen wo mein fehler liegt.

Versuche schon einige zeit ein kleines teilprogram zum laufen zu bringen aber irgendwo mach ich da ein fehler,

es geht darum den eeprom alle 500ms auszulesen und über serialmonitor auszugebe, bis ich einen neuen bustaben eingeb der dann auch alle 500ms ausgegeben wird.

vielleicht jemmand ein hinweis wie es richtig gemacht wird, so funktioniert es nicht.

#include <EEPROM.h>

int adresse = 0;
char buchstabe;

void setup()
{
  Serial.begin(9600);
}
void loop() {

  if (Serial.available()) {
    buchstabe = Serial.read();
    EEPROM.update(adresse, buchstabe);
  }
  buchstabe = EEPROM.read(adresse);
  Serial.print(buchstabe);
  delay(500);
}

Wenn du Buchstaben meinst/sagst, dann solltest du auch nur Buchstaben speichern.

#include <EEPROM.h>

const int adresse = 0;


void setup()
{
  Serial.begin(9600);
}

void serialEvent()
{
 char buchstabe = Serial.read();
 if (isalpha(buchstabe)) EEPROM[adresse] = buchstabe;
}

void loop() 
{
  Serial.print((char)EEPROM[adresse]);
  delay(500);
}

Wenn du im seriellen Monitor "kein Zeilenende" einstellst, dann funktioniert es wohl auch eher so, wie du dir das vorstellst.

Wenn du aber eine andere Einstellung gewählt hast, also "Neue Zeile", "Zeilenumbruch (CR)" oder "Sowohl NL als auch CR", dann werden diese Zeichen ebenfalls übertragen und im EEPROM gespeichert.

Medolino73:
bis ich einen neuen bustaben eingeb der dann auch alle 500ms ausgegeben wird.

Dir ist bekannt, dass der EEPROM nur eine begrenzte Anzahl Schreibzyklen hat?

Wenn Du das laufend machen willst, solltest Du über FRAM nachdenken.

Gruß Tommy

1000 Dank Combie, das war mein fehler, jetzt funktioniert es