Tartalomjegyzék:

Az Arduino beépített EEPROM -ja: 6 lépés
Az Arduino beépített EEPROM -ja: 6 lépés

Videó: Az Arduino beépített EEPROM -ja: 6 lépés

Videó: Az Arduino beépített EEPROM -ja: 6 lépés
Videó: Minitel - The Rise & Fall of a National Tech Treasure 2024, Július
Anonim
Az Arduino beépített EEPROM -ja
Az Arduino beépített EEPROM -ja

Ebben a cikkben megvizsgáljuk az Arduino táblák belső EEPROM -ját. Mit mondhat EEPROM egyesek közül? Az EEPROM egy elektromosan törölhető, programozható, csak olvasható memória.

Ez a nem felejtő memória egy formája, amely képes kikapcsolni vagy az Arduino alaphelyzetbe állítása után emlékezni a dolgokra. Az ilyen típusú memória szépsége abban rejlik, hogy a vázlaton belül generált adatokat tartósabban tárolhatjuk.

Miért használja a belső EEPROM -ot? Azokban a helyzetekben, amikor a helyzetre jellemző adatoknak tartósabb otthonra van szükségük. Például egy kereskedelmi Arduino-alapú projekt egyedi sorozatszámának és gyártási dátumának tárolása-a vázlat egy funkciója megjelenítheti a sorozatszámot egy LCD-n, vagy az adatok olvashatók egy „szolgáltatási vázlat” feltöltésével. Vagy előfordulhat, hogy számolnia kell bizonyos eseményeket, és nem engedheti meg a felhasználónak, hogy visszaállítsa azokat-például kilométer-számlálót vagy működési ciklusszámlálót.

1. lépés: Milyen típusú adatokat lehet tárolni?

Milyen típusú adatok tárolhatók?
Milyen típusú adatok tárolhatók?

Bármi, ami adat bájtként ábrázolható. Egy bájtnyi adat nyolc bitből áll. A bit lehet bekapcsolt (1. érték) vagy kikapcsolt (0 érték), és tökéletes számok bináris formában történő ábrázolására. Más szóval, egy bináris szám csak nullákat és egyeseket használhat az érték ábrázolására. Így a bináris „alap-2” néven is ismert, mivel csak két számjegyet használhat.

Hogyan jelenthet egy bináris szám, amely csak két számjegyet használ, nagyobb számot? Sok egyet és nullát használ. Vizsgáljunk meg egy bináris számot, mondjuk 10101010. Mivel ez egy 2-es alapszám, minden számjegy 2-t jelent x hatványáig, x = 0-tól kezdve.

2. lépés:

Kép
Kép

Nézze meg, hogy a bináris szám minden számjegye hogyan jelenthet egy 10-es számot. Tehát a fenti bináris szám 85-öt jelent a 10-es bázisban-a 85-ös érték az alap-10-es értékek összege. Egy másik példa - a bináris 11111111 a 10 bázis 255 -ösével egyenlő.

3. lépés:

Most a bináris szám minden számjegye egy „bit” memóriát használ, és nyolc bit bájt. Az Arduino táblákon található mikrokontrollerek belső korlátai miatt csak 8 bites számokat (egy bájt) tárolhatunk az EEPROM-ban.

Ez korlátozza a szám tizedes értékét nulla és 255 közé. Ezután Ön dönti el, hogy az adatok hogyan jeleníthetők meg ezzel a számtartománnyal. Ne hagyja magát elriasztani - a megfelelően elrendezett számok szinte bármit jelenthetnek! Egy korlátozással kell számolni - az EEPROM olvasási vagy írási száma. A gyártó Atmel szerint az EEPROM 100 000 olvasási/írási ciklusra alkalmas (lásd az adatlapot).

4. lépés:

Most már tudjuk a bitjeinket és a bájtjainkat, hány bájt tárolható az Arduino mikrokontrollerében? A válasz a mikrokontroller modelljétől függően változik. Például:

  • Táblák Atmel ATmega328 -mal, például Arduino Uno, Uno SMD, Nano, Lilypad stb. - 1024 bájt (1 kilobájt)
  • Az Atmel ATmega1280 vagy 2560 típusú táblák, például az Arduino Mega sorozat - 4096 bájt (4 kilobájt)
  • Táblák Atmel ATmega168 -mal, mint például az eredeti Arduino Lilypad, régi Nano, Diecimila stb. - 512 bájt.

Ha bizonytalan, nézze meg az Arduino hardverindexet, vagy kérdezze meg az alaplap beszállítóját. Ha több EEPROM tárolóra van szüksége, mint amennyi a mikrokontrollerével elérhető, fontolja meg a külső I2C EEPROM használatát.

Ezen a ponton most megértjük, hogy milyen adatok és mennyi tárolható az Arduino EEPROM -jában. Most itt az ideje, hogy ezt cselekedjék. Amint azt korábban tárgyaltuk, véges mennyiségű hely áll rendelkezésre az adataink számára. A következő példákban egy tipikus Arduino kártyát fogunk használni az ATmega328 -mal, 1024 bájt EEPROM tárhellyel.

5. lépés:

Az EEPROM használatához könyvtár szükséges, ezért használja a következő könyvtárat a vázlatokban:

#include "EEPROM.h"

A többi nagyon egyszerű. Adatok tárolásához a következő funkciót használjuk:

EEPROM.write (a, b);

Az a paraméter az EEPROM pozíciója az adatok b (0 ~ 255) egész számának tárolására. Ebben a példában 1024 bájt memóriát tárolunk, tehát a értéke 0 és 1023 között van. Egy adat lekérése ugyanolyan egyszerű, használja:

z = EEPROM.read (a);

Ahol z egész szám az EEPROM pozícióból származó adatok tárolására a. Most, hogy lássunk egy példát.

6. lépés:

Kép
Kép

Ez a vázlat véletlenszerű számokat hoz létre 0 és 255 között, tárolja őket az EEPROM -ban, majd lekéri és megjeleníti a soros monitoron. Az EEsize változó az EEPROM méretének felső határa, tehát (például) ez 1024 lenne Arduino Uno esetén, vagy 4096 Mega esetén.

// Arduino belső EEPROM bemutató

#befoglalni

int zz; int EEsize = 1024; // a méret az alaplap EEPROM -jában

üres beállítás ()

{Serial.begin (9600); randomSeed (analógRead (0)); } void loop () {Serial.println ("Véletlen számok írása …"); for (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Sorozat.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("EEPROM pozíció:"); Sorozatnyomat (a); Serial.print ("tartalmaz"); Soros.println (zz); késleltetés (25); }}

A soros monitor kimenete megjelenik, amint az a képen is látható.

Tehát itt van, egy másik hasznos módszer az adatok tárolására Arduino rendszereinkkel. Bár nem a legizgalmasabb oktatóanyag, mindenképpen hasznos.

Ezt a bejegyzést a pmdway.com hozta neked - mindent a gyártóknak és az elektronika rajongóinak, ingyenes szállítással világszerte.

Ajánlott: