Problem beim schreiben in eeprom

@noiasca
Danke das du mal drüber geschaut hast !
Aber so funktioniert es auch nicht, er merkt nicht das noch kein pin gespeichert ist.
Er geht sofort zur pin eingabe und dort kann ich 5 zahlen eingeben und jeder weitere druck einer taste setzt irgend etwas ingang das ständig die zahlen ändert.

Und natürlich hat combie recht mit seinen aussagen. Das seh ich doch genauso !
Aber mir fehlt das wissen um diese wundervolle Konstruktion zu ändern :frowning:

@combie
Ja, alles zusammen gerechnet werden 3 sachen gespeichert. Vollkommen richtig.

  1. Die Telefonnummer
  2. Der Pin
  3. Und auswahl ob sms 1 oder telefon 2 gewählt wurde

Aber beim Start eines Jungfräulichen Gerätes existiert nichts von alle dem.
Der Pin soll jetzt eingegeben werden und gespeichert werden.
Aber "Telefonnummer" und "auswahl" existieren doch noch garnicht und werden später erst eingegeben.

Ja habe ich auf 32 geändert.
Beim start gibt es nur am seriellen monitor "Pin Auslesen:"
Weil der speicher ja leer ist kann er dahinter ja nix zeigen.
Trotzdem springt er zur normalen Pin eingabe nicht zur Pin ersteingabe.

In der Pin eingabe kann ich nun 10 zahlen eingeben die er mir auch anzeigt.
Wenn 10 zahlen im display stehen und ich eine weitere taste drücke verändern sich die 10 zahlen durch eine art umrechnung würde ich sagen.

Vielleicht liest er beim start schon was falsches weil ich das eeprom so lösche:

 for (int i = 0 ; i < EEPROM.length() ; i++)
    {
    EEPROM.write(i, 0);
    }

Wenn Du bei jedem Start den ganzen EEPROM überschreibst, wirst Du nicht lange Freude an Deinem Arduino haben. Die Anzahl Schreibzyklen ist begrenzt.

Gruß Tommy

weil ich das eeprom so lösche

Das würde ich gar nicht machen!

Übrigens:
Ein gelöschtes EEPROM ist mit 0xFF gefüllt

jetzt hab' ich oben geschrieben, dass ich einen Stellen-Zähler eingeführt habe, und dann hab ich die Stellen gar nicht erhöht. blöd (ich).

so hab versucht das zu ergänzen.
mal einen Initialpin von 3333 ins eeprom gepacthed,
und wenn ich nun A0 auf 5V gebe
kommt auch tatsächlich die Aufforderung zur PIN-Eingabe.
mit einer Brücke zwischen D2/D8 gebe ich 4 dreier ein,
mit einer Brücke zwischen D5/D6 kann ich es bestätigen

und der nächste Menüpunkt kommt.

Gebe ich einen falschen PIN und bestätige, kommt "FALSCHER PIN"

ja ist noch nicht rund, und du kannst im Prinzip endlos zahlen eingeben solange du das nicht bestätigst, aber die dargestellte Methode läuft definitiv und es liegt nun an dir, das in deinen anderen Programmteilen zu integrieren.

Aufpassen, ich musste die I2C Adresse des Displays ändern und ich habe auch die Baudrate von Serial auf 115200 erhöht.

sketch_dec17a.zip (5.58 KB)

Ich glaube ich habs hin bekommen :slight_smile:

Alle Read und Write sind ersetzt.
Pin2 wird nun gespeichert.
Er geht beim start zum richtigen eingabemenü.
Er akzeptiert nur 4 stellen bei der eingabe.

Die erläuterungen noch ein bischen ergänzt.

sketch_dec17b.zip (5.46 KB)

Hmmm 3 mal runter geladen und kein kommentar !

@noiasca
Dein code hat mir richtig weiter geholfen.
So das dieses Projekt jetzt auch abgeschlossen ist.
Vielen dank dafür !!!

Hohoho bis ich das umgesetzt habe bin ich 100 jahre alt :slight_smile:
Oder ich zerschiess mir das ganze Konstrukt.
Aber das mit dem (F( werde ich gleich mal machen sollte keine probleme machen.

Total-Newby:
Hohoho bis ich das umgesetzt habe bin ich 100 jahre alt :slight_smile:

Na in dem 1 Jahr wirst Du das doch noch schaffen :wink:

Gruß Tommy