Spisu treści:

Inicjalizacja ustawień Arduino EEPROM: 5 kroków
Inicjalizacja ustawień Arduino EEPROM: 5 kroków

Wideo: Inicjalizacja ustawień Arduino EEPROM: 5 kroków

Wideo: Inicjalizacja ustawień Arduino EEPROM: 5 kroków
Wideo: Arduino. Zapisywanie i odczytywanie zmiennych na karcie SD jak w pamięci EEPROM. 2024, Listopad
Anonim
Image
Image
Co to jest pamięć EEPROM?
Co to jest pamięć EEPROM?

Cześć wszystkim, Każde Arduino ma małą wbudowaną pamięć o nazwie EEPROM. Możesz użyć tego do przechowywania ustawień swojego projektu, w którym wybrane wartości będą przechowywane między cyklami zasilania i będą tam następnym razem, gdy włączysz Arduino. Mam fajną sztuczkę, która nauczy Cię, jak zainicjować zestaw domyślnych wartości podczas pierwszego uruchomienia, więc trzymaj się, aby dowiedzieć się, jak to zrobić.

Krok 1: Co to jest EEPROM?

Co to jest pamięć EEPROM?
Co to jest pamięć EEPROM?

EEPROM to niewielka pamięć, której wartości są zachowywane nawet wtedy, gdy płyta Arduino jest wyłączona. Działa jak mały dysk twardy, dzięki czemu możesz przechowywać parametry przy następnym uruchomieniu urządzenia. W zależności od typu płytki Arduino, na każdej z nich dostępna będzie inna ilość pamięci, na przykład Uno ma 1024 bajty, Mega ma 4096 bajtów, a LilyPad ma 512 bajtów.

Należy zauważyć, że wszystkie EEPROM mają ograniczoną liczbę cykli zapisu. Atmel określa oczekiwaną żywotność około 100 000 cykli zapisu/kasowania pamięci EEPROM w Arduino. Może to brzmieć jak wiele zapisów, ale osiągnięcie tego limitu może być łatwe, jeśli czytasz i piszesz w pętli. Gdy lokalizacja zostanie zapisana i usunięta zbyt wiele razy, może zacząć stawać się niewiarygodna. Może nie zwracać poprawnych danych lub zwracać wartości z sąsiedniego bitu.

Krok 2: Importuj bibliotekę

Importuj bibliotekę
Importuj bibliotekę
Importuj bibliotekę
Importuj bibliotekę
Importuj bibliotekę
Importuj bibliotekę

Aby wykorzystać tę pamięć, najpierw dołączamy dostarczoną przez Arduino bibliotekę. Biblioteka udostępnia dwie metody: odczyt i zapis dla odpowiednich akcji. Funkcja read akceptuje adres, z którego chcemy czytać, podczas gdy funkcja write akceptuje zarówno adres, jak i wartość, którą chcemy zapisać.

W naszym przykładzie celem jest przygotowanie tablicy ustawień przy każdym uruchomieniu Arduino, więc zaczynamy od zdefiniowania tablicy, której będziemy używać do przechowywania i zdefiniowania adresów dla każdego z ustawień, które chcemy przechowywać. W chipie, w którym mamy dostępne 1024 bajty, lokalizacje adresów będą wynosić od 0 do 1023.

Krok 3: Ustaw flagę inicjalizacji

Ustaw flagę inicjalizacji
Ustaw flagę inicjalizacji

Sztuczka dla początkowego ustawienia wartości domyślnych ustawień polega na użyciu jednego z adresów jako wskaźnika, czy ustawienia zostały zainicjowane, czy nie. Użyłem do tego ostatniej lokalizacji adresu, ponieważ często nie jest ona używana do niczego innego. Funkcja loadSettings najpierw sprawdzi tę lokalizację, czy wartość tam zapisana jest znakiem „T”, a jeśli nie, przejdzie do ustawiania przez ustawienie, zapisując początkowe wartości dla każdego z nich. Po zakończeniu ustawi teraz wartość lokalizacji, w której śledzimy zainicjowane ustawienia, na znak „T”, a następnym razem, gdy włączymy Arduino, nie będziemy już inicjować wartości, ale zamiast tego wczytamy zapisane dane do nasza tablica.

Krok 4: Aktualizacja ustawień

Aktualizacja ustawień
Aktualizacja ustawień

Do aktualizacji wartości możemy użyć funkcji zapisu, tak jak przy inicjalizacji, ale lepszym sposobem jest użycie dostarczonej funkcji aktualizacji. Funkcja ta najpierw sprawdza, czy wartość, którą próbujemy zapisać, jest tą samą wartością, która jest już w EEPROM, a jeśli tak, to nie aktualizuje. W ten sposób stara się zminimalizować liczbę operacji zapisu, aby przedłużyć żywotność EEPROM.

Krok 5: Ciesz się

Cieszyć się!
Cieszyć się!
Cieszyć się!
Cieszyć się!

Mam nadzieję, że ten Instruktaż był dla ciebie pomocny i że udało ci się czegoś nauczyć. Kod źródłowy jest dostępny na mojej stronie GitHub, a link znajduje się poniżej. Jeśli masz jakieś sugestie, zostaw je w komentarzach i nie zapomnij zasubskrybować mojego kanału YouTube, aby uzyskać więcej podobnych filmów.

Zalecana: