So verwenden Sie Arduino EEPROM zum Speichern von Daten zwischen Leistungszyklen

| Von

arduino-eeprom-Daten speichern

Wussten Sie, dass das Arduino Daten speichern kann, wenn es ausgeschaltet ist? Nicht die im Flash-Speicher gespeicherte Abbildung. Ich bespreche variable Daten im EEPROM. Begleiten Sie mich, wenn ich Ihnen verrate, wie Sie es überprüfen und kontaktieren können und was es für Ihre Jobs tun kann.

Wenn Sie neu bei Arduino sind, sollten Sie sich unseren Anfängerleitfaden ansehen.

Was ist EEPROM?

EEPROM bedeutet elektrisch löschbarer programmierbarer Festwertspeicher Es ist eine Art nichtflüchtiger Speicher. Machen Sie sich keine Sorgen, wenn Sie nichts davon erkennen. Es speichert lediglich Daten trotz des Stromausfalls (im Gegensatz zu RAM, das Strom benötigt, um jede Art von Informationen zu speichern).

EEPROM-Beispielaufnahme

EEPROM wird zu einer Vielzahl von Prozessoren weiterentwickelt, wie zum Beispiel die feldprogrammierbare Eingangsauswahl (FPGA), die im Matrix Creator Pi HAT verwendet wird. Alle Arduinos haben EEPROM angeboten, aber die Fähigkeit variiert je nach Modell. Sehen Sie sich unseren Einkaufsführer an, um weitere Informationen zu jedem Board zu erhalten.

Wie funktioniert es genau?

EEPROM ist elektrisch losgeworden und auch unter Verwendung von programmiert Tunnelbau Fowler-Nordheim Sie müssen nicht die technologischen Details kennen, um es verwenden zu können. Die Standardeigenschaft ist, dass Elektrizität verwendet wird, um die binäre Information (was binär ist) zu ändern. Es kann digital überprüft, gelöscht und neu geschrieben werden.

Glücklicherweise ist die Arduino-Sprache macht es sehr einfach, Daten zu ändern, ohne dass Sie ein Informatik-Niveau benötigen.

EEPROM-Nahaufnahme

Lebensdauer

Obwohl es einfach ist, EEPROM im Arduino zu verwenden, hat es eine begrenzte Lebensdauer. EEPROM ist für 100.000 Lese-/Löschzyklen definiert. Dies bedeutet, dass Sie 100.000 Mal Informationen erstellen und dann löschen/neu schreiben können, bevor das EEPROM mit Sicherheit instabil wird. In Wahrheit, Atmel (die Hersteller des Arduino „Chip“) Halbleiter können eine höhere oder niedrigere Zyklenvielfalt bewältigen, abhängig von den Toleranzen jeder einzelnen CPU.

EEPROM-Nahaufnahme

Sobald ein Ort viel zu oft geschrieben und auch gelöscht wurde, kann er beginnen, unzuverlässig zu werden. Möglicherweise werden nicht die richtigen Informationen oder der Wert eines angrenzenden Bits zurückgegeben.

Dies mag wie eine große Menge erscheinen, aber diese Einschränkung kann praktisch sein, wenn sowohl die Analyse als auch das programmgesteuerte Komponieren (in a Schleife , beispielsweise). Das Auschecken von Informationen baut das Silizium nicht ab, nur komponieren tut Sie können Informationen aus dem EEPROM so oft wie Sie möchten ohne Bedenken auschecken!

Beachten Sie, dass sich diese Einschränkung auf jeden Speicherbereich bezieht. Ihr Arduino hat möglicherweise 1.000 oder mehr Speicherorte im EEPROM. Wenn Sie also viel zu oft an einem Ort komponieren, wird nur dieser Ort beeinflusst und keiner der anderen. Später werde ich diskutieren auf Nivellierung setzen , die den EEPROM-Aufwand reduzieren kann, indem Daten gleichmäßig verteilt werden – etwas, das SSDs nutzen.

Wofür ist es nützlich?

EEPROM ist unglaublich vorteilhaft für Ihre Arduino-Aufgaben. Da es die Daten auch beim Abschalten der Stromversorgung berücksichtigt, können Sie den Zustand des Arduino speichern. Möglicherweise konstruieren Sie einen Laserturm, der sich an seine Position erinnert oder wie viel „Munition“ noch vorhanden ist. Sie können damit Ihre Geräte steuern und auch protokollieren, wie oft Ihr Haushaltsgerät aktiviert wurde.

EEPROM ist ideal für Dinge wie Einstellungen oder Highscores geeignet. Wenn Sie routinemäßig komplizierte Daten erstellen möchten, ziehen Sie vielleicht ein Ethernet-Shield (mit integriertem SD-Slot) oder einen Raspberry Pi in Betracht.

EEPROM-Nahaufnahme

Lesen und schreiben

Nun, da die Theorie das Mittel ist, schauen wir uns an, wie Sie einige Daten überprüfen und schreiben können! Binden Sie zunächst die Bibliothek ein (dies umfasst die Arduino-IDE):

#include <EEPROM.h>

Erstellen Sie derzeit einige Daten:

EEPROM.write(0, 12);

Daraus ergibt sich die Zahl 12 zum EEPROM-Speicherort 0 Jede Komposition dauert 3,3 Millisekunden ( Frau , 1000ms = 1 2.). Benachrichtigung, wie Sie keine Briefe verfassen können ( verkohlen , nur die Zahlen von Null bis 255 sind erlaubt. Aus diesem Grund ist EEPROM perfekt für Einstellungen oder hohe Bewertungen, aber nicht so hilfreich für Spielernamen oder Wörter. Es ist möglich, Text auf diese Weise zu speichern (Sie können jeden Buchstaben des Alphabets einer Zahl zuordnen), dennoch benötigen Sie zahlreiche Speicherbereiche – einen Bereich für jeden Buchstaben.

So überprüfen Sie diese Daten:

EEPROM.read(0);

Null ist die Adresse, die Sie zuvor kontaktiert haben. Wenn Sie noch nie eine Adresse kontaktiert haben, wird sie mit Sicherheit den optimalen Wert zurückgeben ( 255 .

Es gibt einige etwas nützlichere Ansätze. Behaupten Sie, Sie wollten eine Dezimalstelle oder eine Zeichenfolge speichern:

EEPROM.put(2,"12.67");

Dadurch werden die Daten an mehreren Stellen erstellt – etwas, das sehr einfach selbst zu erstellen wäre, aber dennoch hilfreich. Sie müssen weiterhin die Anzahl der kontaktierten Stellen im Auge behalten, damit Sie Ihre Daten nicht versehentlich überschreiben! Sie müssen die verwenden erhalten Methode, um diese Informationen wieder herzustellen:

float f = 0.00f;
EEPROM.get(2, f);

Der Wert von get wird im Float gespeichert f Variable. Beachten Sie, wie dies mit initialisiert wird 0,00 f als wert. Das f ermöglicht dem Compiler zu verstehen, dass Sie möglicherweise eine große Zahl in dieser Variablen speichern möchten, sodass während der Sammlung einige zusätzliche Einstellungen vorgenommen werden.

Das EEPROM-Dokumente auf der Arduino-Website hat tolle Angebote zusätzliche Instanzen.

Verschleißausgleich

Put on Progressing ist eine Methode, die verwendet wird, um den Verschleiß zu verringern und die Lebensdauer des EEPROM zu erhöhen. Wenn Sie nur ein kleines Projekt warten, müssen Sie sich möglicherweise nicht darum kümmern.

EEPROM-Nahaufnahme

Der einfachste Punkt, den Sie tun können, um die Lebensdauer des EEPROM zu schützen, besteht darin, Ihre Kontakte auf einen bestimmten Bereich zu beschränken. Sie können dies tun, indem Sie die Adresse zunächst überprüfen, und wenn der Wert, den Sie schreiben möchten, derzeit vorhanden ist, müssen Sie sie nicht erneut erstellen (denken Sie daran, dass die Überprüfung der Daten nicht schadet). Hier ist genau, wie Sie das tun würden:

int safeWrite(int data, address) {
if(EEPROM.read(address) != data) {
EEPROM.write(address, data);
}
}

Das ist eher ein einfacher kleiner Code, aber er hilft nur Ganzzahlen! Anstatt das Rad neu zu erfinden, verwenden Sie die in der Arduino EEPROM-Sammlung eingebaute Funktion:

EEPROM.update(address, val);

Diese Methode hat genau die gleiche Signatur wie die erstellen -Methode, obwohl sie die Anzahl der erforderlichen Schreibvorgänge drastisch reduzieren kann!

Wenn Sie viele Daten komponieren müssen und sich Sorgen über das Tragen des Silikons machen, können Sie die Anzahl der Kompositionen im Auge behalten, obwohl dies noch mehr Informationen verwendet. Hier ist eine grobe Umsetzung in Pseudocode :

var address = 0
var writeCount = 0
if(writeCount > 75,000)
writeCount = 0
address += 1
EEPROM.write(address, data)

Sie müssen Adresse und writeCount im EEPROM speichern (und auch writeCount muss auf jeden Fall auf die Adresspositionen aufgeteilt werden). In den meisten Fällen wird dieses Maß an Sicherheit nicht erforderlich sein. Arduinos sind auch so günstig, dass es einfacher ist, ein Backup zu kaufen!

Sie müssen jetzt genug erkennen, um einige erstaunliche Projekte zu machen. Lass es uns wissen, wenn du etwas Großartiges machst! Können Sie alle Werkzeuge auf den Bildern anerkennen? Hinterlassen Sie uns eine unten aufgeführte Bemerkung!

Nun, da die Theorie aus dem Weg ist, schauen wir uns an, wie man Daten liest und auch schreibt! Sie müssen immer noch im Auge behalten, wie viele Bereiche dies geschrieben hat, damit Sie Ihre Informationen nicht versehentlich überschreiben! Sie können dies tun, indem Sie die Adresse zunächst überprüfen, und auch wenn der Wert, den Sie schreiben möchten, derzeit vorhanden ist, müssen Sie ihn nicht erneut erstellen (denken Sie daran, dass das Auschecken von Daten nicht schadet). Wenn Sie viele Daten schreiben müssen und besorgt sind, dass das Silizium abgenutzt wird, können Sie verfolgen, wie viele Erstellungen Sie ausführen, obwohl dies mehr Daten verbraucht.[

Klicken Sie, um diesen Beitrag zu bewerten!
[Gesamt: 0 Durchschnitt: 0]

Andere verwandte Artikel

10 seltsamste Himbeer-Pi-Projekte

In jedem von uns steckt ein verrückter Forscher, und der Raspberry Pi ermöglicht es Ihrem inneren Verrückten, herauszukommen und zu…

So bauen Sie Ihren eigenen PC

Dieses Handbuch kann als kostenloses PDF heruntergeladen und installiert werden. Laden Sie diese Daten jetzt herunter. Zögern Sie nicht, dies…

Schreibe einen Kommentar