Spisu treści:
Wideo: Wbudowana pamięć EEPROM Arduino: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
W tym artykule przyjrzymy się wewnętrznej pamięci EEPROM w naszych płytach Arduino. Co to jest EEPROM, który niektórzy z was mogą powiedzieć? EEPROM to programowalna pamięć tylko do odczytu, którą można wymazywać elektrycznie.
Jest to forma pamięci nieulotnej, która może zapamiętywać rzeczy przy wyłączonym zasilaniu lub po zresetowaniu Arduino. Piękno tego rodzaju pamięci polega na tym, że dane wygenerowane w szkicu możemy przechowywać w bardziej trwały sposób.
Dlaczego miałbyś używać wewnętrznej pamięci EEPROM? W sytuacjach, w których dane, które są unikalne dla danej sytuacji, wymagają bardziej trwałego domu. Na przykład przechowywanie unikalnego numeru seryjnego i daty produkcji komercyjnego projektu opartego na Arduino – funkcja szkicu może wyświetlić numer seryjny na wyświetlaczu LCD lub dane można odczytać, przesyłając „szkic usługi”. Lub może być konieczne zliczanie niektórych zdarzeń i nie pozwalanie użytkownikowi na ich zresetowanie – na przykład licznik kilometrów lub licznik cykli pracy.
Krok 1: Jaki rodzaj danych można przechowywać?
Wszystko, co można przedstawić jako bajty danych. Jeden bajt danych składa się z ośmiu bitów danych. Bit może być włączony (wartość 1) lub wyłączony (wartość 0) i doskonale nadaje się do przedstawiania liczb w postaci binarnej. Innymi słowy, liczba binarna może używać tylko zer i jedynek do reprezentowania wartości. Tak więc binarny jest również znany jako „base-2”, ponieważ może używać tylko dwóch cyfr.
W jaki sposób liczba binarna zawierająca tylko dwie cyfry może reprezentować większą liczbę? Używa wielu zer i jedynek. Zbadajmy liczbę binarną, powiedzmy 10101010. Ponieważ jest to liczba o podstawie 2, każda cyfra reprezentuje 2 do potęgi x, od x=0 wzwyż.
Krok 2:
Zobacz, jak każda cyfra liczby binarnej może reprezentować liczbę o podstawie 10. Tak więc powyższa liczba binarna reprezentuje 85 przy podstawie 10 – wartość 85 jest sumą wartości przy podstawie 10. Inny przykład – 11111111 w systemie binarnym równa się 255 w bazie 10.
Krok 3:
Teraz każda cyfra w tej liczbie binarnej wykorzystuje jeden „bit” pamięci, a osiem bitów tworzy bajt. Ze względu na wewnętrzne ograniczenia mikrokontrolerów w naszych płytach Arduino, w pamięci EEPROM możemy przechowywać tylko liczby 8-bitowe (jeden bajt).
Ogranicza to wartość dziesiętną liczby do zakresu od zera do 255. Od Ciebie zależy, w jaki sposób dane mogą być reprezentowane w tym zakresie liczb. Niech Cię to nie zniechęci – liczby ułożone we właściwy sposób mogą reprezentować prawie wszystko! Jest jedno ograniczenie, na które należy zwrócić uwagę – liczba odczytów lub zapisów w pamięci EEPROM. Według producenta Atmela, pamięć EEPROM wystarcza na 100 000 cykli odczytu/zapisu (patrz karta katalogowa).
Krok 4:
Teraz znamy nasze bity i bajty, ile bajtów można przechowywać w mikrokontrolerze naszego Arduino? Odpowiedź różni się w zależności od modelu mikrokontrolera. Na przykład:
- Płyty z procesorem Atmel ATmega328, takie jak Arduino Uno, Uno SMD, Nano, Lilypad itp. – 1024 bajty (1 kilobajt)
- Płyty z procesorem Atmel ATmega1280 lub 2560, np. z serii Arduino Mega – 4096 bajtów (4 kilobajty)
- Płyty z Atmel ATmega168, takie jak oryginalny Arduino Lilypad, stary Nano, Diecimila itp – 512 bajtów.
Jeśli nie masz pewności, spójrz na indeks sprzętu Arduino lub zapytaj dostawcę płytki. Jeśli potrzebujesz więcej pamięci EEPROM niż to, co jest dostępne w twoim mikrokontrolerze, rozważ użycie zewnętrznej pamięci EEPROM I2C.
W tym momencie rozumiemy teraz, jakiego rodzaju dane i ile można przechowywać w pamięci EEPROM naszego Arduino. Teraz nadszedł czas, aby to wprowadzić w życie. Jak wspomniano wcześniej, na nasze dane jest skończona ilość miejsca. W poniższych przykładach użyjemy typowej płytki Arduino z ATmega328 z 1024 bajtami pamięci EEPROM.
Krok 5:
Aby korzystać z EEPROM, wymagana jest biblioteka, więc w swoich szkicach używaj następującej biblioteki:
#zawiera "EEPROM.h"
Reszta jest bardzo prosta. Do przechowania fragmentu danych wykorzystujemy następującą funkcję:
EEPROM.zapis(a, b);
Parametr a to pozycja w EEPROM do przechowywania liczby całkowitej (0~255) danych b. W tym przykładzie mamy 1024 bajty pamięci, więc wartość a wynosi od 0 do 1023. Aby pobrać fragment danych jest równie prosty, użyj:
z = EEPROM.odczyt(a);
Gdzie z jest liczbą całkowitą do przechowywania danych z pozycji EEPROM a. Zobaczmy teraz przykład.
Krok 6:
Ten szkic utworzy losowe liczby z zakresu od 0 do 255, zapisze je w pamięci EEPROM, a następnie pobierze i wyświetli na monitorze szeregowym. Zmienna EEsize to górna granica rozmiaru pamięci EEPROM, więc (na przykład) będzie to 1024 dla Arduino Uno lub 4096 dla Mega.
// Demonstracja wewnętrznej pamięci EEPROM Arduino
#włączać
int zz; int EErozmiar = 1024; // rozmiar w bajtach pamięci EEPROM twojej płyty
pusta konfiguracja()
{ Szeregowy.początek(9600); randomSeed(analogRead(0)); } void loop() { Serial.println("Zapisywanie liczb losowych…"); for (int i = 0; i < EErozmiar; i++) { zz=losowo(255); EEPROM.write(i, zz); } Serial.println(); for (int a=0; a < EEsize; a++) { zz = EEPROM.read(a); Serial.print("Pozycja EEPROM: "); druk.seryjny(a); Serial.print("zawiera"); Serial.println(zz); opóźnienie(25); } }
Pojawi się wyjście z monitora szeregowego, jak pokazano na obrazku.
Więc masz to, kolejny przydatny sposób przechowywania danych za pomocą naszych systemów Arduino. Chociaż nie jest to najbardziej ekscytujący samouczek, z pewnością jest przydatny.
Ten post został dostarczony przez pmdway.com – wszystko dla producentów i entuzjastów elektroniki, z darmową dostawą na całym świecie.
Zalecana:
PRZENOŚNY ZASILACZ MINI WIELO NAPIĘCIOWY Z USB, LATARKĄ, TESTEREM KOMPONENTÓW I WBUDOWANĄ ŁADOWARKĄ: 6 kroków
PRZENOŚNY ZASILACZ MINI WIELO NAPIĘCIOWY Z USB, LATARKĄ, TESTEREM KOMPONENTÓW I WBUDOWANĄ ŁADOWARKĄ: Witam w mojej pierwszej instrukcji! Dzięki tej instrukcji możesz przekształcić podejrzany / tani powerbank solarny (z kilkoma dodatkowymi częściami) w coś użytecznego. Coś, z czego możesz korzystać na co dzień, tak jak ja, bo to naprawdę świetne w użyciu! Większość z
Wbudowana szafka.: 4 kroki
Wbudowana szafka: W błogiej aurze trzymanie rzeczy w środku jest czymś, co jest jak ogromny plusk podniecenia. Nazwa „Lock of Lock” jest naprawdę wciągającą częścią moich codziennych artykułów, która jest wszechobecna ze względu na swój charakter, ale co robi? Proste
Wbudowana choinka z nadrukiem 3D LED: 10 kroków (ze zdjęciami)
Wbudowana choinka z nadrukiem 3D LED: Jest to choinka drukowana w 3D z wbudowanymi adresowalnymi diodami LED w środku. Możliwe jest więc zaprogramowanie diod LED na ładne efekty świetlne i wykorzystanie wydrukowanej struktury 3D jako dyfuzora. Drzewo jest podzielone na 4 etapy i element bazowy (drzewo
Zmień zwykłą pamięć USB w bezpieczną pamięć USB: 6 kroków
Zmień zwykłą pamięć USB w bezpieczną pamięć USB: W tej instrukcji dowiemy się, jak zamienić zwykłą pamięć USB w bezpieczną pamięć USB. Wszystko ze standardowymi funkcjami systemu Windows 10, nic specjalnego i nic dodatkowego do kupienia. Czego potrzebujesz: pamięć USB lub pendrive. Gorąco polecam getti
Wbudowana uniwersalna karta interfejsu - sterowanie USB/Bluetooth/WIFI: 6 kroków
Embedded Universal Interface Board - Sterowanie USB/Bluetooth/WIFI: Często stwierdzam, że od podstaw tworzę biblioteki dla nowych wbudowanych modułów na podstawie arkusza danych urządzenia. Podczas generowania biblioteki utknąłem w cyklu kodu, kompilacji, programowania i testowania, upewniając się, że wszystko działa i jest wolne od błędów. Często com