EEPROM von Arduino
Diese LES -Speicherspeicher außer dem Speicher gibt die Möglichkeit, den Inhalt der Skizze mit ihren Funktionen zu bearbeiten. In ähnlicher Weise wurde dieses Gedächtnis entwickelt, um das Problem der Schwierigkeit zu vermeiden, Daten zu löschen, die in der Vergangenheit abgefangen wurden. Die EEPROM -Größen verschiedener Arduino -Boards werden unten erwähnt:
Regler | Größe |
---|---|
Arduino Uno, Arduino Nano, Arduino Mini (atmega328) | 1024 Bytes |
Arduino Nano (atmega168) | 512 Bytes |
Arduino Mega (atmega2560) | 4096 Bytes |
Das Akronym EEPROM steht für „Electronical Lobable Permanent Read Only Memory“. Es gibt 8 Arten von Funktionen, die mit der EEPROM -Bibliothek durchgeführt werden können. Diese Bibliothek wird bereits mit der Arduino IDE -Software geliefert, sodass die Bibliothek nicht installiert werden muss:
Schreiben Sie die Funktion von EEPROM
Wenn die Daten in jeder Adresse gespeichert werden sollen, kann sie durch die Verwendung der verwendet werden Eeprom.schreiben() Funktion. Die Daten werden gespeichert, bis sie gelöscht oder aktualisiert werden.
Im Code wird zuerst die Bibliothek für den Speicher initialisiert und dann die Variable für die Adresse deklariert und in der Schleife das EEPROM.Die Funktion write () wird verwendet, um in den Wert der Adresse zu schreiben.
Nach jeder Iteration ändert sich die Adresse und der gleiche Wert wird zu allen Adressen des EEPROM hinzugefügt. In ähnlicher Weise wurden die mit der Schreibfunktion gespeicherten Daten gespeichert.
Das Programm wird ausgeführt, bis die Adressen gleich der Gesamtlänge des EEPROM werden und die Länge des Speichers von Board zu Board variiert. In Arduino Uno sind es 1 Kilo -Bytes, sodass das Programm ausgeführt wird, wenn alle 1000 Adressen den Wert von 200 gegeben haben.
#enthalten
int address = 0;
int value = 200;
void setup ()
Serie.Beginnen Sie (9600);
void Loop ()
Eeprom.Schreiben (Adresse, Wert);
Serie.print ("diese Adresse:");
Serie.println (Adresse);
Serie.print ("hat Wert von");
Serie.println (Wert);
Serie.println ();
Adresse = Adresse + 1;
if (Adresse == EEPROM.Länge())
Adresse = 0;
Verzögerung (500);
Ausgang
Funktion von EEPROM lesen
Um Daten aus einer Adresse des Speichers zu lesen, die Eeprom.lesen() Funktion wird verwendet. Um die Arbeit des EEPROM weiter zu beschreiben.Read () Funktion Ein Beispielcode wird angegeben.
Seit im vorherigen Programm haben wir den Wert von 200 für jede Adresse des Speichers gegeben. Wenn wir also jede Adresse des Speichers mit dem EEPROM lesen.Read () Funktion Es zeigt die gleiche Ausgabe an:
#enthalten
int address = 0;
Bytewert;
void setup ()
Serie.Beginnen Sie (9600);
void Loop ()
Wert = eeprom.lesen (Adresse);
Serie.print ("diese Adresse:");
Serie.println (Adresse);
Serie.print ("hat Wert von");
Serie.println (Wert);
Serie.println ();
Adresse = Adresse + 1;
if (Adresse == EEPROM.Länge())
Adresse = 0;
Verzögerung (500);
Ausgang
Funktion des EEPROM geben
Um die Daten in Form eines Arrays zu speichern, oder die Daten sind vom Typ Float, dann die Eeprom.setzen() Funktion wird verwendet. Um die Verwendung von EEPROM zu verstehen.put () Funktion Es wird weiterhin mit einem einfachen Arduino -Programm erklärt.
Im Code wird zuerst der Wert mit dem Float -Datentyp in der Adresse 0 des Speichers gespeichert, und dann wird eine Struktur aus den Namensdaten erstellt, die einen Byte -Typ -Wert, einen Float -Typ -Wert und einen Zeichenwert haben.
Die Größe für die gesamte Struktur beträgt 12 Bytes mit 4 Bytes für die Ganzzahl- und Float -Typwerte und 8 Bytes für den Zeichenwert.
Die Adresse für den Float -Typ wird als Null initialisiert, während die Adresse für die Struktur nach dem nächsten Byte nach dem Float -Wert gefunden wird.
#enthalten
Strukturdaten
Float Value1;
Bytewert2;
Char Word [8];
;
void setup ()
Serie.Beginnen Sie (9600);
float f = 967.817;
int eeaddress = 0;
Eeprom.put (eeaddress, f);
Serie.print ("diese Adresse:");
Serie.println (eeaddress);
Serie.print ("hat float -Wert von");
Serie.println (f);
Serie.println ();
Datenwerte =
2.65,
89,
"Hallo!"
;
eeaddress += sizeof (float);
Eeprom.put (eeaddress, Werte);
Serie.print ("diese Adresse:");
Serie.print (eeaddress);
Serie.print ('\ t');
Serie.print ("hat Struktur mit den Informationen:");
Serie.println ();
Serie.println (Werte.Wert1);
Serie.println (Werte.Wert2);
Serie.println (Werte.Wort);
void Loop ()
Ausgang
Funktion von EEPROM erhalten
Um die in Float -Datentypen gespeicherten Daten oder in Form von Struktur abzurufen, wird die GET -Funktion verwendet. Diese Funktion unterscheidet sich von der einfachen Les- und Schreibfunktion. Das Beispiel für die Verwendung von Eeprom.erhalten() Funktion zur Verfügung gestellt, die ein klares Konzept der Funktion ergibt:
#enthalten
void setup ()
float f = 0.00;
int eeaddress = 0;
Serie.Beginnen Sie (9600);
Serie.print ("read float from eeprom:");
Eeprom.Get (eeaddress, f);
Serie.println (f, 4);
strukturvalues ();
Strukturdaten
Float Value1;
Bytewert2;
Char Word [8];
;
void strukturvalues ()
int eeaddress = sizeof (float);
Datenwerte;
Eeprom.get (eeaddress, Werte);
Serie.println ("Struktur von eeprom lesen:");
Serie.println (Werte.Wert1);
Serie.println (Werte.Wert2);
Serie.println (Werte.Wort);
void Loop ()
Hier im Code ein Float -Wert und ein im Arduino -Speicher gespeicherter Strukturwert wird abgerufen, der zuvor mit dem EEPROM gespeichert wurde.put () Funktion.
Ausgang
Aktualisieren Sie die Funktion von EEPROM
Wenn Daten unter einer Adresse aktualisiert werden müssen, die Eeprom.aktualisieren() Funktion wird verwendet. Diese Funktion wird nur verwendet, wenn bereits einige Daten zu der jeweiligen Adresse vorhanden sind. In ähnlicher Weise aktualisiert diese Funktion nur die Daten, wenn sie sich von zuvor gespeicherten Daten unterscheidet.
#enthalten
int address = 4;
int Wert;
int value1 = 300;
void setup ()
Serie.Beginnen Sie (9600);
Wert = eeprom.lesen (Adresse);
Serie.print ("diese Adresse:");
Serie.println (Adresse);
Serie.print ("zuvor Wert von");
Serie.println (Wert);
Serie.println ();
Eeprom.Update (Adresse, Wert1);
Serie.print ("diese Adresse:");
Serie.println (Adresse);
Serie.print ("aktualisierter Wert von");
Serie.println (value1);
Serie.println ();
void Loop ()
Im Beispielcode werden die Daten in der Adresse 4 aktualisiert, da der vorherige Wert an dieser Adresse 44 betrug. Die Daten der Adresse 4 wurden von 44 auf 300 geändert.
Zu Demonstrationszwecken das EEPROM.Read () -Funktion wird verwendet, um die in der Adresse 4 gespeicherten Daten abzurufen, und dann wird in der Adresse 4 ein aktualisierter Wert unter Verwendung des EEPROM gespeichert.UPDATE () Funktion.
Ausgang
Abschluss
Bibliotheken in der Arduino -Programmierung werden hauptsächlich verwendet, um einige zusätzliche Funktionen der Hardware zu erhalten. Das EEPROM ist der Gedächtnis des Arduino -Boards, auf das mit dem EEPROM zugegriffen werden kann.H Bibliothek. Durch die Verwendung seiner Funktionen können die im Arduino gespeicherten Daten bearbeitet oder gelöscht werden. In diesem Artikel werden fünf Hauptfunktionen erläutert, mit denen die Daten von Arduino bearbeitet oder gelöscht werden können.