
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03

W arduino brakuje eepromu. Ta instrukcja dodaje jeden i pozwala przechowywać wartości w pamięci nieulotnej, która przetrwa aktualizację oprogramowania układowego arduino.
Krok 1: Deska do krojenia chleba

Oto kilka naprawdę dobrych instrukcji: https://www.hobbytronics.co.uk/arduino-external-eeprom Właśnie je zastosowałem. Zdjęcie pokazuje układ płytek. piny 1 do 4 i pin 7 są uziemione. pin 8 jest podłączony do zasilania 3,3V na odpowiedniej płytce. Przewody żółty (pin 6) i biały (pin 5) podłączone do pinów i2c SDA (dane) i SCL (zegar) na odpowiedniej płytce (o numerach 21 i 20).
Krok 2: Czas kodu

Oto kilka fragmentów kodu, których używam w moich szkicach. Najpierw umieść nagłówki biblioteki Wire gdzieś w górnej części szkicu: /* Użyj EEPROM 24LC256 do zapisania ustawień */ #include Następnie dodaj kilka funkcji do odczytu i zapisu bajtów z EEPROM (zależy mi tylko na pojedynczych bajtach, ale jest funkcja zapisu strony w chipie). Zauważ, że istnieje makrodefinicja 0x50.. jest to adres chipa na magistrali i2c (możesz podłączyć więcej niż jedną rzecz i2c do magistrali i2c i wybrać, z którą chcesz rozmawiać, zmieniając adres). /* Te dwie funkcje pomagają nam pisać do układu 24LC256 EEPROM */ #define EEPROM_ADDR 0x50 void EEPROM_write(unsigned int addr, byte data) { int rdata = data; Wire.beginTransmission(EEPROM_ADDR); Wire.write((int)(addr >> 8); // MSB Wire.write((int)(addr & 0xFF)); // LSB Wire.write(rdata); Wire.endTransmission(); //Serial.print("zapis EEPROM: adres: "); //Serial.print(addr); //Serial.print(" "); //Serial.println(dane); opóźnienie(5); } byte EEPROM_read(unsigned int addr) { bajt danych = 0xFF; Wire.beginTransmission(EEPROM_ADDR); Wire.write((int)(addr >> 8); // MSB Wire.write((int)(addr & 0xFF)); // LSB Wire.endTransmission(); Wire.requestFrom(EEPROM_ADDR, 1); if (Wire.available()) dane = Wire.read(); //Serial.print("Odczyt EEPROM: adres: "); //Serial.print(addr); //Serial.print(" "); //Serial.println(dane); opóźnienie(5); dane zwrotne; } Możesz odkomentować wiersze Serial.print(…), jeśli chcesz zobaczyć wyniki debugowania. W funkcji arduinos setup() uruchamiasz bibliotekę przewodów i możesz wczytać wartości początkowe. Tutaj odczytałem dwa bajty (flagi i max_cc), dwa słowa (lean_min i lean_max) oraz tablicę słów sd_max[3]: // odczytaj wartości zapisane w EEPROM Wire.begin(); flagi=EEPROM_odczyt(0); max_cc=EEPROM_odczyt(1); lean_min=słowo(EEPROM_read(3), EEPROM_read(2)); lean_max=słowo(EEPROM_read(5), EEPROM_read(4)); for(int j=0;j<3;j) { sd_max[j]=słowo(EEPROM_odczyt(7 j*2), EEPROM_odczyt(6 j*2)); } Oto fragment kodu, który zapisuje je w EEPROM: EEPROM_write(0, flags); EEPROM_write(1, max_cc); EEPROM_write(2, lowByte(lean_min)); EEPROM_write(3, highByte(lean_min)); EEPROM_write(4, lowByte(lean_max)); EEPROM_write(5, highByte(lean_max)); for(int j=0;j<3;j) { EEPROM_write(6 j*2, lowByte(sd_max[j])); EEPROM_write(7 j*2, highByte(sd_max[j])); } To naprawdę o tym.
Krok 3: Podłącz go

Podłącz go do jakiejś płyty veroboard, aby przykręcić ją do obudowy i wykonać zadania.
Zalecana:
Odczytywanie i zapisywanie danych do zewnętrznej pamięci EEPROM za pomocą Arduino: 5 kroków

Odczytywanie i zapisywanie danych do zewnętrznej pamięci EEPROM za pomocą Arduino: EEPROM to skrót od Electricly Erasable Programmable Read-Only Memory. EEPROM jest bardzo ważny i użyteczny, ponieważ jest nieulotną formą pamięci. Oznacza to, że nawet gdy płyta jest wyłączona, układ EEPROM nadal zachowuje program, który
Dodawanie niestandardowych płytek do Arduino IDE: 3 kroki

Dodawanie niestandardowych płytek do Arduino IDE: Wersja 1.6.4 Arduino IDE wprowadziła oficjalną obsługę dodawania płytek zgodnych z arduino innych firm do Arduino Board Manager. Ta obsługa dodawania to świetna wiadomość, ponieważ umożliwia użytkownikom szybkie dodawanie niestandardowych tablic za pomocą jednego kliknięcia
Karta pamięci wykonana z pamięci CMOS EPROM: 6 kroków (ze zdjęciami)

Karta pamięci wykonana z CMOS EPROM: Instrukcja stworzona przeze mnie pomoże Ci zbudować ogromną pojemność pamięci, która przyda się do wielu projektów i pomiarów. Karta pamięci nadaje się do wielokrotnego użytku i może być znacznie bardziej realiable w porównaniu z kartami flash i innymi
Dodawanie gotowej pamięci do Cisco 871: 7 kroków

Dodawanie gotowej pamięci do Cisco 871: Routery z serii Cisco 800 zyskują na popularności wraz ze spadkiem ich cen – ale aktualizacje Cisco są nadal skandalicznie wyższe od kosztów. W lipcu aktualizacja pamięci o 128 MB wynosiła ponad 500 USD. Na szczęście z kilkoma popularnymi, kilkuletnimi memami towarowymi
Dodawanie nieograniczonej pamięci do EVO T20 z NT4e w celu stworzenia użytecznego komputera: 7 kroków

Dodanie nieograniczonej pamięci do EVO T20 z NT4e w celu stworzenia użytecznego komputera: Cienkie komputery Compaq EVO T20 można kupić za mniej niż 50 USD i są to w zasadzie ograniczone minikomputery, które przy odrobinie wolnego oprogramowania i pewnej konfiguracji można przekształcić w użyteczny cichy komputer stacjonarny niskiego napięcia. Główny problem