Hirdetés
Tudta, hogy az Arduino tárolhatja az adatokat, amikor ki van kapcsolva? Nem a flash memóriában tárolt vázlat. A EEPROM változó adatairól beszélek. Csatlakozzon hozzám, amikor megmutatom, hogyan kell olvasni és írni, és mit tehet a projektjeiben.
Ha még nem ismeri az Arduino-t, kérjük, nézd meg a mi oldalainkat kezdő útmutató Az Arduino használatának első lépése: Útmutató kezdőknekAz Arduino egy nyílt forráskódú elektronikai prototípus-felépítés, amely rugalmas, könnyen használható hardveren és szoftveren alapul. Művészeknek, tervezőknek, amatőröknek és interaktív tárgyak vagy környezetek létrehozásának érdeklődőinek szánták. Olvass tovább .
Mi az EEPROM?
Az EEPROM jelentése elektromosan törölhető programozható, csak olvasható memória. Ez egyfajta nem felejtõ memória. Ne aggódjon, ha nem érti, mit jelent ez. Egyszerűen tárolja az adatokat, még ha nincs áram is (ellentétben a RAM Gyors és piszkos útmutató a RAM-hoz: Mit kell tudniA RAM minden számítógép kulcsfontosságú eleme, de zavaró lehet. Könnyen érthető fogalom szerint bontjuk le. Olvass tovább
, amelynek villamos energiára van szüksége az adatok megőrzéséhez).Az EEPROM rengeteg processzorba van beépítve, mint például a FPGA, a Mátrix Teremtő Mátrix készítő a Raspberry Pi Review-hozA Matrix Creator egy svájci kések a Pi számára, 15 érzékelővel, kommunikációs protokollokkal, RGB LED-ek gyűrűjével, mikrofon-tömbjével és még sok mindenrel! Olvass tovább Pi HAT. Minden Arduinóban elérhető EEPROM, de a kapacitás típusonként változik. Győződjön meg róla, hogy megnézi a mi oldalt vásárlási útmutató Arduino vásárlási útmutató: Melyik táblát szerezze be?Olyan sokféle Arduino tábla van odakint, bocsánatot kapnak a zavarodásra. Melyiket vásárolja meg a projektjéhez? Segítsen nekünk ezzel az Arduino vásárlási útmutatóval! Olvass tovább további részleteket az egyes táblákon.
Hogyan működik?
Az EEPROM-ot elektronikusan törli és programozza a Fowler-Nordheim alagút. Használatához nem kell ismernie a műszaki részleteket. Az alapfeltétel az, hogy a villamos energiát a bináris adatok megváltoztatásához használják (mi a bináris Mi a bináris? [Technológia magyarázata]Mivel a bináris annyira alapvető fontosságú a számítógépek létezéséhez, furcsanak tűnik, hogy még soha nem foglalkoztunk a témával - tehát ma azt gondoltam, hogy röviden áttekintjük, mi a bináris ... Olvass tovább ). Elektronikusan olvasható, törölhető és újraírható.
Szerencsére a Arduino nyelv megkönnyíti az adatok megváltoztatását, mindezt számítógéptudományi fokozat nélkül.
Várható élettartam
Noha az EEPROM könnyen használható az Arduinóban, élettartama korlátozott. Az EEPROM 100 000 olvasási / törlési ciklust kezel. Ez azt jelenti, hogy 100 000-szer tud írni, majd törölni / újraírni az adatokat, mielőtt az EEPROM instabillá válik. A valóságban, Atmel (az Arduino „Chip” gyártója) félvezetők nagyobb vagy kisebb ciklusszámot kezelhetnek, az egyes processzorok tűréseitől függően.
Ha egy helyet sokszor írtak és töröltek, az megbízhatatlanná válhat. Lehet, hogy nem adja vissza a helyes adatokat, vagy visszaadja az értéket egy szomszédos bitből.
Ez soknak tűnik, mintha sok írás lenne, de könnyedén elérheti ezt a korlátot, ha programozottan olvasunk és írunk (a hurok, például). Az adatok olvasása nem rontja a szilíciumot, csak az írás teszi. Az EEPROM adatait félelem nélkül olvashatja el, amennyit csak akar.
Fontos megjegyezni, hogy ez a korlátozás minden memóriahelyre vonatkozik. Lehet, hogy Arduino 1000 vagy több memóriahelye elérhető az EEPROM-ban, így ha túl sokszor ír egy helyre, akkor csak az a hely érinti, és a többinek nem. Később megvitatom kopáskiegyenlítés, amely csökkentheti az EEPROM kopását az adatok egyenletes elosztása révén - olyasmi, ami SSD Hogyan lehet becsülni az SSD hátralévő élettartamát?Az SSD-k élettartama korlátozott az írási ciklusok miatt (bár ez az élettartam sokkal hosszabb, mint gondolnád). Így becsülheti meg, milyen közel állsz a végéhez. Olvass tovább kihasználni.
Mire hasznos?
Az EEPROM hihetetlenül hasznos az Arduino projekteknél. Mivel az adatokra még az áramkimaradás után is emlékszik, tárolhatja az Arduino államát. Talán felépíthetsz egy lézer torony Pew Pew! Hogyan készítsünk egy lézer tornyot egy Arduino-valUnatkozol? Lehet egy lézer-torony is. Olvass tovább ami emlékszik a helyzetére vagy mennyi „lőszer” maradt. Használhatja irányítsd a készülékeidet Vezérlő készülékek egy Arduino-tól: Az otthoni automatizálás kezdeteLegutóbb megmutattam neked néhány módot, amellyel az Arduino projektek beszédét vezérelhetők a SiriProxy, az OS X segítségével beépített kimondható elemek és néhány Automator szkript, vagy akár dedikált hangfelismerő hardver Forgács. ÉN... Olvass tovább , és jelentkezzen be, hogy hányszor aktiválta a készüléket.
Az EEPROM a legmegfelelőbb olyan beállításokhoz, mint a beállítások vagy a magas pontszámok. Ha rendszeresen szeretne összetett adatokat írni, akkor fontolja meg a Ethernet pajzs Adja meg Arduino Projektének saját mini-webszerverét, Ethernet pajzsgalEgy ideje megmutattam neked, hogyan állítson be internetes vezérlő rendszert Arduino készülékéhez - de ennek az USB-kapcsolaton keresztül fenn kellett maradnia a számítógéphez, hogy fenntartsák az internetkapcsolatot ... Olvass tovább (beépített SD nyílással) vagy a Raspberry Pi Raspberry Pi: A nem hivatalos bemutatóLegyen szó jelenlegi Pi tulajdonosról, aki többet szeretne megtudni, vagy ennek a hitelkártya méretű eszköznek a lehetséges tulajdonosai, ez nem egy útmutató, amelyet hiányozni szeretne. Olvass tovább .
Olvass és írj
Most, hogy az elmélet nem megfelelő, nézzük meg, hogyan lehet adatokat olvasni és írni! Először is vegye fel a könyvtárat (ez az Arduino IDE-hez tartozik):
#include
Írjon néhány adatot:
EEPROM.write (0, 12);
Ez írja a számot 12 az EEPROM helyre 0. Minden írás 3,3 milliszekundumot vesz igénybe (Kisasszony, 1000 ms = 1 másodperc). Figyelje meg, hogy nem lehet betűket írni (faszén), csak nulla és 255 közötti szám megengedett. Ez az oka annak, hogy az EEPROM ideális beállításokhoz vagy magas pontszámokhoz, de nem olyan jó játékosnevekhez vagy szavakhoz. Ezzel a módszerrel szöveget tárolhat (az ábécé minden egyes betűjét egy számra leképezheti), azonban több memóriahelynek kell lennie - mindegyik betű számára egy helyen.
Az adatok elolvasása a következő:
EEPROM.read (0);
Nulla az a cím, amelyet korábban írtál. Ha még nem írt egy címre korábban, akkor a maximális értéket adja vissza (255).
Van néhány, kissé hasznosabb módszer. Tegyük fel, hogy tizedesjegyet vagy karakterláncot szeretne tárolni:
EEPROM.put (2, "12,67");
Ez több helyre írja az adatokat - olyasmit, amit könnyen meg lehet írni, de ennek ellenére praktikus. Még mindig nyomon kell követnie, hogy hány helyre írta ezt, így véletlenül nem írja felül az adatait! Használnia kell a kap módszer ezeknek az adatoknak a visszakeresésére:
úszó f = 0,00f; EEPROM.get (2, f);
A get-től kapott érték az úszóba kerül f változó. Figyelje meg, hogy miként inicializálja ezt 0.00f mint érték. Az f tudatja a fordítóval, hogy érdemes nagy számot tárolni ebben a változóban, ezért beállít néhány további konfigurációt az összeállítás során.
Az EEPROM dokumentáció a Arduino weboldal sokkal több példával rendelkezik.
Viseljen szintezőt
A kopáskiegyenlítés egy olyan technika, amely csökkenti a kopást és növeli az EEPROM élettartamát. Ha csak egy kis projekten dolgozik, akkor nem kell, hogy ezzel aggódjon.
Az EEPROM élet megőrzése érdekében a legegyszerűbb dolog az, ha korlátozza írásait egy adott helyre. Ezt megteheti úgy, hogy először elolvassa a címet, és ha az írni kívánt érték már megvan, akkor nem kell újra írni (ne feledje, az adatok olvasása nem árt). Így tenné meg ezt:
int safeWrite (int adatok, cím) {if (EEPROM.read (cím)! = adatok) {EEPROM.write (cím, adatok); } }
Ez egy egyszerű bit bit, azonban csak egész számokra működik! A kerék feltalálása helyett használja az Arduino EEPROM könyvtárba beépített funkciót:
EEPROM.update (cím, val);
Ennek a módszernek pontosan ugyanaz az aláírása, mint a ír módszer, bár drasztikusan csökkentheti a szükséges írások számát!
Ha sok adatot kell írnia, és aggódik a szilícium kopása miatt, akkor nyomon tudja követni, hogy hány írást ír, bár ez több adatot igényel. Ez egy durva megvalósítás itt pszeudokódját:
var címe = 0. var writeCount = 0, ha (writeCount> 75 000) writeCount = 0 cím + = 1 EEPROM.write (cím, adatok)
A címet és az WriteCount-t az EEPROM-ban kell tárolnia (és a writeCount-ot fel kell osztani a címek helyére). Az esetek többségében ilyen szintű védelemre nincs szükség. Az Arduinos is olcsók, ezért könnyebben megvásárolhatja a biztonsági másolatot!
Most már eleget kell tudnia ahhoz, hogy fantasztikus projekteket készítsen. Tudassa velünk, ha elkészít valamit! Meg tudja ismerni a képek összes eszközét? Hagyj nekünk egy megjegyzést alább!
Joe számítógépes ismeretek diplomáját szerezte az Egyesült Királyság Lincolni Egyetemen. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran találkozhat fényképezéssel vagy videó készítésével.