Inhaltsverzeichnis:

Initialisierung der Arduino EEPROM-Einstellungen - Gunook
Initialisierung der Arduino EEPROM-Einstellungen - Gunook

Video: Initialisierung der Arduino EEPROM-Einstellungen - Gunook

Video: Initialisierung der Arduino EEPROM-Einstellungen - Gunook
Video: Der einfache Einstieg in Arduino & Co. 24: EEPROM, das Gedächtnis des Arduinos 2024, Juli
Anonim
Image
Image
Was ist ein EEPROM?
Was ist ein EEPROM?

Hallo allerseits, Jeder Arduino hat einen kleinen eingebauten Speicher namens EEPROM. Sie können dies verwenden, um Einstellungen für Ihr Projekt zu speichern, bei denen die ausgewählten Werte zwischen den Einschaltzyklen beibehalten werden und beim nächsten Einschalten des Arduino vorhanden sind. Ich habe einen coolen Trick, der Ihnen beibringt, wie Sie bei Ihrem ersten Lauf eine Reihe von Standardwerten initieren können, also bleiben Sie dran, um herauszufinden, wie.

Schritt 1: Was ist ein EEPROM?

Was ist ein EEPROM?
Was ist ein EEPROM?

Ein EEPROM ist ein winziger Speicher, dessen Werte auch dann erhalten bleiben, wenn das Arduino-Board ausgeschaltet ist. Dies funktioniert wie eine kleine Festplatte, sodass Sie Ihre Parameter für das nächste Mal speichern können, wenn Sie das Gerät einschalten. Je nach Art des Arduino-Boards steht Ihnen auf jedem unterschiedlich viel Speicherplatz zur Verfügung, so hat beispielsweise das Uno 1024 Byte, das Mega 4096 Byte und das LilyPad 512 Byte.

Es ist wichtig zu beachten, dass alle EEPROMs eine begrenzte Anzahl von Schreibzyklen haben. Atmel gibt für das EEPROM auf dem Arduino eine Lebenserwartung von rund 100.000 Schreib-/Löschzyklen an. Dies mag nach vielen Schreibvorgängen klingen, aber es kann leicht sein, diese Grenze zu erreichen, wenn Sie in einer Schleife lesen und schreiben. Sobald ein Standort zu oft geschrieben und gelöscht wurde, kann er unzuverlässig werden. Möglicherweise werden nicht die richtigen Daten oder der Wert eines benachbarten Bits zurückgegeben.

Schritt 2: Importieren Sie die Bibliothek

Importieren Sie die Bibliothek
Importieren Sie die Bibliothek
Importieren Sie die Bibliothek
Importieren Sie die Bibliothek
Importieren Sie die Bibliothek
Importieren Sie die Bibliothek

Um diesen Speicher zu nutzen, binden wir zunächst die vom Arduino bereitgestellte Bibliothek ein. Die Bibliothek bietet zwei Methoden: Lesen und Schreiben für die entsprechenden Aktionen. Die Lesefunktion akzeptiert die Adresse, von der wir lesen möchten, während die Schreibfunktion sowohl die Adresse als auch den Wert akzeptiert, den wir schreiben möchten.

In unserem Beispiel besteht das Ziel darin, bei jedem Start des Arduino ein Array von Einstellungen bereit zu haben. Daher definieren wir zunächst das Array, das wir zum Speichern verwenden werden, und definieren die Adressen für jede der Einstellungen, die wir speichern möchten. In einem Chip, auf dem 1024 Bytes verfügbar sind, liegen die Adresspositionen zwischen 0 und 1023.

Schritt 3: Setzen Sie das Initialisierungs-Flag

Setzen Sie das Initialisierungs-Flag
Setzen Sie das Initialisierungs-Flag

Der Trick bei der Ersteinstellung von Vorgabewerten für die Einstellungen besteht darin, eine der Adressen als Indikator dafür zu verwenden, ob die Einstellungen initialisiert wurden oder nicht. Ich habe dafür den letzten Adressstandort verwendet, da er oft für nichts anderes verwendet wird. Die Funktion loadSettings prüft zuerst an dieser Stelle, ob der dort gespeicherte Wert ein „T“-Zeichen enthält, und wenn nicht, geht sie von Einstellung zu Einstellung und schreibt die Anfangswerte für jeden von ihnen. Sobald dies erledigt ist, wird der Wert des Ortes, an dem wir die initialisierten Einstellungen verfolgen, auf das Zeichen "T" gesetzt und beim nächsten Einschalten des Arduino werden wir die Werte nicht mehr initialisieren, sondern stattdessen die gespeicherten Daten einlesen unser Array.

Schritt 4: Aktualisieren der Einstellungen

Aktualisieren der Einstellungen
Aktualisieren der Einstellungen

Zum Aktualisieren der Werte können wir entweder die Schreibfunktion wie bei der Initialisierung verwenden, aber besser ist es, die bereitgestellte Aktualisierungsfunktion zu verwenden. Diese Funktion überprüft zunächst, ob der zu speichernde Wert derselbe ist, der sich bereits im EEPROM befindet, und wenn dies der Fall ist, wird sie nicht aktualisiert. Dadurch wird versucht, die Anzahl der Schreibvorgänge zu minimieren, um die Lebensdauer des EEPROM zu verlängern.

Schritt 5: Viel Spaß

Genießen!
Genießen!
Genießen!
Genießen!

Ich hoffe, dass dieses Instructable für Sie hilfreich war und dass Sie es geschafft haben, etwas zu lernen. Der Quellcode ist auf meiner GitHub-Seite verfügbar und der Link ist unten. Wenn Sie Vorschläge haben, hinterlassen Sie diese bitte in den Kommentaren und vergessen Sie nicht, meinen YouTube-Kanal für weitere ähnliche Videos zu abonnieren.

Empfohlen: