Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Ahoj všichni, Každé Arduino má malou vestavěnou paměť s názvem EEPROM. Můžete to použít k uložení nastavení pro váš projekt, kde budou zvolené hodnoty zachovány mezi cykly napájení a budou tam příště, když zapnete Arduino. Mám skvělý trik, který vás naučí, jak můžete při prvním spuštění inicializovat sadu výchozích hodnot, takže se držte, abyste zjistili, jak.
Krok 1: Co je EEPROM?
EEPROM je malé paměťové úložiště, jehož hodnoty jsou uchovávány, i když je deska Arduino vypnutá. Funguje to jako malý pevný disk, takže si můžete uložit parametry pro příští zapnutí zařízení. V závislosti na typu desky Arduino budete mít na každém k dispozici jiné množství úložiště, takže například Uno má 1024 bajtů, Mega má 4096 bajtů a LilyPad má 512 bajtů.
Je důležité si uvědomit, že všechny paměti EEPROM mají omezený počet cyklů zápisu. Atmel uvádí životnost EEPROM na Arduinu přibližně 100 000 cyklů zápisu/vymazání. Může to znít jako hodně zápisů, ale může být snadné dosáhnout tohoto limitu, pokud čtete a píšete ve smyčce. Jakmile je místo mnohokrát zapsáno a vymazáno, může začít být nespolehlivé. Nemusí vrátit správná data nebo vrátit hodnotu ze sousedního bitu.
Krok 2: Importujte knihovnu
Abychom mohli tuto paměť používat, nejprve zahrneme poskytnutou knihovnu od Arduina. Knihovna poskytuje dvě metody: čtení a zápis pro příslušné akce. Funkce čtení přijímá adresu, ze které chceme číst, zatímco funkce zápis přijímá adresu i hodnotu, kterou chceme zapsat.
V našem příkladu je cílem mít při každém spuštění Arduina připravenou řadu nastavení, takže začneme definováním pole, které použijeme pro úložiště, a definováním adres pro každé nastavení, které chceme uložit. V čipu, kde máme k dispozici 1 024 bajtů, bude umístění adresy od 0 do 1023.
Krok 3: Nastavte příznak inicializace
Trik pro počáteční nastavení výchozích hodnot pro nastavení je použít jednu z adres jako indikátor, zda bylo nastavení inicializováno nebo ne. Použil jsem k tomu poslední umístění adresy, protože se často nepoužívá na nic jiného. Funkce loadSettings nejprve zkontroluje toto umístění, pokud je zde uložená hodnota tvořena znakem „T“, a pokud ne, přejde k nastavení nastavením a pro každý z nich zapíše počáteční hodnoty. Jakmile je hotovo, nyní nastaví hodnotu místa, kde sledujeme inicializovaná nastavení, na znak „T“a příště, když zapneme Arduino, již nebudeme inicializovat hodnoty, ale místo toho načteme uložená data do naše pole.
Krok 4: Aktualizace nastavení
Pro aktualizaci hodnot můžeme buď použít funkci write, jak jsme ji měli při inicializaci, ale lepší způsob je použít poskytnutou funkci aktualizace. Tato funkce dělá, že nejprve zkontroluje, zda hodnota, kterou se pokoušíme uložit, je stejná jako v EEPROM, a pokud ano, neaktualizuje se. Tím se pokusí minimalizovat počet operací zápisu, aby se prodloužila životnost paměti EEPROM.
Krok 5: Užijte si to
Doufám, že vám tento Instructable pomohl a že jste se něco naučili. Zdrojový kód je k dispozici na mé stránce GitHub a odkaz je níže. Pokud máte nějaké návrhy, zanechte je prosím v komentářích a nezapomeňte se přihlásit k odběru mého kanálu YouTube pro další podobná videa.