Hogyan tárolhatók az arduino adatok?

Az Arduino kártya családjának táblái számos típusú memóriával rendelkeznek. Először is, ez egy statikus RAM (véletlen hozzáférésű memória), amelyet a változók tárolására használnak a programfuttatás alatt. Másodszor, ez flash memória. amelyben a megírt vázlatokat tárolják. Harmadszor, ez EEPROM. amely az információk tartós tárolásához használható. Az első típusú memória ingadozó, az Arduino újraindítása után elveszti az összes információt. A második két típusú memória tárolja az információt, amíg az új, még a tápellátás kikapcsolása után is felülírja. Az utolsó típusú memória - EEPROM - lehetővé teszi az adatok írását, tárolását és szükség esetén olvasását. Most megfontoljuk ezt a memóriát.

1 Az EEPROM memória leírása

Az EEPROM az elektromosan törölhető programozható, csak olvasható memóriát jelenti. azaz elektromosan törölhető, átprogramozható, csak olvasható memória. Az adatok ebben a memóriában évtizedekig tárolhatók az áramellátás kikapcsolása után. Az újraírási ciklusok száma több millió alkalommal történik.

Az Arduino-ban található EEPROM memória mennyisége meglehetősen korlátozott:
  • az ATmega328 mikrokontrolleren (pl. Arduino UNO és Nano) alapuló lemezek esetén a memória mennyisége 1 KB,
  • az ATmega168 és ATmega8 - 512 byte lemezek esetében,
  • ATmega2560 és ATmega1280 - 4 KB.

2 EEPROM könyvtár

Az Arduino EEPROM használatához speciális könyvtárat kell írni, amely alapértelmezésben szerepel az Arduino IDE-ben. A könyvtár a következő opciókat tartalmazza.

lehetővé teszi, hogy az "EEPROM" azonosítót tömbként írja le az adatokat a memóriába és olvassa el őket a memóriából.

A vázlat könyvtárának engedélyezéséhez az #include EEPROM.h direktíva segítségével kapcsoljuk össze.

3 Egész számok írása EEPROM-ba

Írjunk két egész számot az EEPROM memóriába, majd olvassuk el az EEPROM-ból, és továbbítsuk őket a soros portra. A számok 0-255 nincsenek problémák, az általuk elfoglalt csak egy byte memória és via EEPROM.write () függvény vannak írva a kívánt sejtben.

Ha a szám nagyobb, mint 255, akkor használja highByte szereplők () és LowByte () meg kell osztani bájt és írni minden bájt egy sejtben. A maximális szám 65536 (vagy 2 16).

Lásd, soros port monitor sejt egyszerűen kimenetek 0 értéke kisebb, mint 255. A sejteket az 1. és 2. tároljuk nagyszámú 789. Ebben a cellában egy tárolja túlfolyó szorzó 3, és a sejt 2 - hiányzó számot 21 (azaz 789 = 3 × 256 + 21).

Hogyan tárolhatók az arduino adatok?
Egész számok írása az Eeprom Arduino-hoz

Nagyszámú újbóli összeszerelés, bájtban értelmezve egy függvényszó (). int val = szó (hi, low), ahol "hi" és "low" a "val" szám magas és alacsony byte-jainak értékei.

Minden olyan cellában, amelyet nem regisztráltunk, a 255-es számok tárolódnak.

4 Írja le a lebegőpontos számokat és karakterláncokat az EEPROM-nak

Lebegőpontos számok és karakterláncok írásához az EEPROM.put () metódust kell használnia. és az olvasáshoz - EEPROM.get ().

A setup () rutinban először egy "f" lebegőpontos számot kell írni. Ezután lépjen a "float" típusú memóriakártyák számára, és írjon egy 20 karakteres kapacitású "char" karaktert.

A folyamat loop () fog olvasni az összes memória sejtek, és próbálja megfejteni őket először, mint egyfajta „float”, majd egyfajta „char”, és az eredményt, hogy a soros port.

Hogyan tárolhatók az arduino adatok?
Lebegőpontos számok írása az Arduino EEPROM-ban

Látható, hogy a 0 és 3 közötti cellákban lévő érték helyesen lett meghatározva lebegőpontos számként, és a negyediként kezdődik stringként.

5 Az EEPROM mint tömb használata

Egy nagyon kényelmes megoldás az, ha a memóriakártyákat az EEPROM-tömb elemeként kívánja elérni. Ebben a vázlatokban a setup () rutinban először írjuk az adatokat az első 4 bájtba, és a loop () rutinban minden percben elolvassuk az összes cellából származó adatokat, és azokat a soros portra továbbítjuk.

Hogyan tárolhatók az arduino adatok?
Arduino EEPROM memóriakártyák használata tömb elemekkel

Kapcsolódó cikkek