Jak używać biblioteki EEPROM w Arduino

Jak używać biblioteki EEPROM w Arduino
W programowaniu Arduino, gdy szkic jest przesyłany na tablicę Arduino, pozostaje tam i jest przechowywany w Arduino, dopóki nie zostanie usunięty lub inny szkic zostanie przesłany. Dane te są przechowywane w EEPROM zbudowanym w Arduino. Korzystanie z EEPROM i jego biblioteki zostało wyjaśnione w następującym kontekście.

Eeprom of Arduino

Ta odczyt tylko pamięć inna niż pamięć daje opcję edytowania zawartości szkicu za pomocą jego funkcji. Podobnie pamięć ta została zaprojektowana w celu uniknięcia problemu trudności w usuwaniu danych, które zostały przechwycone w przeszłości. Rozmiary EEPROM różnych tablic Arduino są wspomniane poniżej:

Kontroler Rozmiar
Arduino Uno, Arduino Nano, Arduino Mini (ATMEGA328) 1024 bajtów
Arduino Nano (Atmega168) 512 bajtów
Arduino Mega (Atmega2560) 4096 bajtów

Akronim EEPROM oznacza „elektronicznie wymazującą stałą pamięć tylko do odczytu”. Istnieje 8 rodzajów funkcji, które można wykonać za pomocą biblioteki EEPROM. Ta biblioteka jest już wyposażona w oprogramowanie Arduino IDE, więc nie ma potrzeby instalowania biblioteki:

  • Funkcja zapisu EEPROM
  • Czytaj funkcję EEPROM
  • Umieść funkcję EEPROM
  • Uzyskaj funkcję EEPROM
  • Aktualizacja funkcji EEPROM

Funkcja zapisu EEPROM

Gdy dane mają być zapisane na dowolnym adresie, można to zrobić za pomocą EEPROM.pisać() funkcjonować. Dane będą przechowywane do momentu usunięcia lub aktualizacji.

W kodzie najpierw biblioteka pamięci jest inicjowana, a następnie zmienna dla adresu jest zadeklarowana, aw pętli, EEPROM.Funkcja zapisu () służy do zapisu do wartości na adresie.

Po każdej iteracji zmienia się adres i ta sama wartość jest dodawana do wszystkich adresów EEPROM. Podobnie dane zapisane za pomocą funkcji zapisu.

Program będzie działał, aż adresy stanie się równe całkowitej długości EEPROM, a długość pamięci różni się w zależności od planszy. W Arduino uno jest to 1 kilogramy bajtów, więc program będzie działał, gdy wszystkie 1000 adresów nadano wartość 200.

#włączać
adres INT = 0;
wartość int = 200;
void setup ()
Seryjny.rozpocząć (9600);

void Loop ()
EEPROM.zapisz (adres, wartość);
Seryjny.drukuj („ten adres:”);
Seryjny.println (adres);
Seryjny.druk („ma wartość”);
Seryjny.println (wartość);
Seryjny.println ();
Adres = adres + 1;
if (adres == eeprom.długość())
Adres = 0;

opóźnienie (500);

Wyjście

Czytaj funkcję EEPROM

Aby odczytać dowolne dane z dowolnego adresu pamięci EEPROM.Czytać() Zastosowana jest funkcja. Aby dalej opisać działanie EEPROM.odczyt () funkcja podano przykładowy kod.

Ponieważ w poprzednim programie podaliśmy wartość 200 na każdy adres pamięci, więc kiedy odczytujemy każdy adres pamięci za pomocą EEPROM.funkcja odczytu () Wyświetla to samo wyjście:

#włączać
adres INT = 0;
Wartość bajtów;
void setup ()
Seryjny.rozpocząć (9600);

void Loop ()
wartość = EEPROM.odczyt (adres);
Seryjny.drukuj („ten adres:”);
Seryjny.println (adres);
Seryjny.druk („ma wartość”);
Seryjny.println (wartość);
Seryjny.println ();
Adres = adres + 1;
if (adres == eeprom.długość())
Adres = 0;

opóźnienie (500);

Wyjście

Umieść funkcję EEPROM

Aby przechowywać dane w postaci tablicy lub danych jest typu pływaka, a następnie EEPROM.umieścić() Zastosowana jest funkcja. Aby zrozumieć użycie EEPROM.Put () funkcja jest dalej wyjaśniana za pomocą prostego programu Arduino.

W kodzie najpierw wartość posiadająca typ danych pływakowych jest przechowywany w adresie 0 pamięci, a następnie konstrukcja jest konstruowana z danych nazwy, która ma wartość typu bajtów, wartość typu pływaka i wartość znaku.

Rozmiar dla całej struktury wynosi 12 bajtów z 4 bajtami dla wartości liczb całkowitych i pływaków oraz 8 bajtów dla wartości znakowej.

Adres dla typu zmiennoprzecinkowego jest inicjowany jako zero, podczas gdy adres struktury znajduje.

#włączać
Dane struktury
float value1;
BYTE VALITE2;
słowo char [8];
;
void setup ()
Seryjny.rozpocząć (9600);
float f = 967.817;
int eeaddress = 0;
EEPROM.Put (eeaddress, f);
Seryjny.drukuj („ten adres:”);
Seryjny.println (eeaddress);
Seryjny.druk („ma wartość zmiennoprzecinkową”);
Seryjny.println (f);
Seryjny.println ();
Wartości danych =
2.65,
89,
"Cześć!"
;
eeaddress += sizeof (float);
EEPROM.Put (eeaddress, wartości);
Seryjny.drukuj („ten adres:”);
Seryjny.wydruku (eeaddress);
Seryjny.print ('\ t');
Seryjny.druk („ma strukturę o informacji:”);
Seryjny.println ();
Seryjny.println (wartości.wartość1);
Seryjny.println (wartości.wartość2);
Seryjny.println (wartości.słowo);

void Loop ()

Wyjście

Uzyskaj funkcję EEPROM

Aby pobrać dane przechowywane w typach danych zmiennoprzecinkowych lub w formie struktury, używana jest funkcja GET. Ta funkcja różni się od prostej funkcji odczytu i zapisu. Przykład użycia EEPROM.Dostawać() Funkcja, która da jasną koncepcję funkcji:

#włączać
void setup ()
float f = 0.00;
int eeaddress = 0;
Seryjny.rozpocząć (9600);
Seryjny.print („odczyt float z EEPROM:”);
EEPROM.Get (eeaddress, f);
Seryjny.println (f, 4);
StructureValues ​​();

Dane struktury
float value1;
BYTE VALITE2;
słowo char [8];
;
void structionValues ​​()
int eeaddress = sizeof (float);
wartości danych;
EEPROM.Get (eeaddress, wartości);
Seryjny.println („Przeczytaj strukturę EEPROM:”);
Seryjny.println (wartości.wartość1);
Seryjny.println (wartości.wartość2);
Seryjny.println (wartości.słowo);

void Loop ()

Tutaj, w kodzie, wartość zmiennoprzecinka i wartość struktury przechowywana w pamięci Arduino jest pobierana, która była wcześniej przechowywana za pomocą EEPROM.Put () funkcja.

Wyjście

Aktualizacja funkcji EEPROM

Gdy dane na dowolnym adresie wymagają aktualizacji EEPROM.aktualizacja() Zastosowana jest funkcja. Ta funkcja jest używana tylko wtedy, gdy są już pewne dane na odpowiednim adresie. Podobnie ta funkcja aktualizuje dane tylko wtedy, gdy różni się od wcześniej zapisanych danych.

#włączać
adres INT = 4;
wartość int;
int value1 = 300;
void setup ()
Seryjny.rozpocząć (9600);
wartość = EEPROM.odczyt (adres);
Seryjny.drukuj („ten adres:”);
Seryjny.println (adres);
Seryjny.druk („wcześniej wartość”);
Seryjny.println (wartość);
Seryjny.println ();
EEPROM.aktualizacja (adres, wartość1);
Seryjny.drukuj („ten adres:”);
Seryjny.println (adres);
Seryjny.drukuj („zaktualizowana wartość”);
Seryjny.println (wartość 1);
Seryjny.println ();

void Loop ()

W przykładowym kodzie dane na adres 4 są aktualizowane, ponieważ poprzednia wartość na tym adresie wynosiła 44. Dane adresu 4 zostały zmienione z 44 na 300.

Do celów demonstracyjnych EEPROM.Funkcja read () służy do pobierania danych przechowywanych w adresie 4, a następnie zaktualizowana wartość jest przechowywana w adresie 4 za pomocą EEPROM.Funkcja aktualizacji ().

Wyjście

Wniosek

Biblioteki w programowaniu Arduino są najczęściej używane do uzyskania dodatkowych funkcjonalności sprzętu do interfejsu. EEPROM to pamięć płyty Arduino, do której można uzyskać dostęp za pomocą EEPROM.Biblioteka H. Korzystając z jego funkcji, dane przechowywane w Arduino można edytować lub usunąć. Ten zapis wyjaśnia pięć głównych funkcji, których można użyć do edycji lub usuwania danych Arduino.