Skip to main content

Korištenje EEPROM-a

Što ovaj primjer prikazuje​

Brisanje, upisivanje i ponovno čitanje EEPROM emulacije na ESP32, koja zadržava podatke kad se napajanje ukloni. Skica briše 128 bajtova, upisuje u njih vrijednosti od 0 do 127, zatim ih ponovno čita i prikazuje na zaslonu i u Serial Monitoru. Potreban vam je samo USB kabel.

Ovaj primjer koristi i biblioteku EEPROM (EEPROM.h) iz arduino-esp32, koja nije dio biblioteke Inkplate i dolazi uz paket pločice ESP32.

Primjer koda​

Select Board
Inkplate7SPECTRA_EEPROM_Usage.ino
#include "EEPROM.h" // Include ESP32 EEPROM library
#include "Inkplate.h" // Include Inkplate library to the sketch

#define EEPROM_SIZE 128 // How much data to write to EEPROM in this example

Inkplate inkplate; // Create object on Inkplate library and set library to work in monochrome mode

void setup() {
Serial.begin(115200); // Init serial monitor to display what's happening
inkplate.begin(); // Init library (you should call this function ONLY ONCE)
inkplate.setTextColor(INKPLATE_BLACK); // Set text color to black

// Init EEPROM library with 128 of EEPROM size.
EEPROM.begin(EEPROM_SIZE);

inkplate.setTextSize(3); // Set text size
Serial.println("Cleaning EEPROM..."); // Print message on serial monitor
clearEEPROM(); // Clear user EEPROM data
delay(500); // Wait a little bit...

Serial.println("Writing data to EEPROM..."); // Print message on serial monitor
writeEEPROM(); // Write some data to EEPROM
delay(500); // Wait a little bit...

inkplate.println("Reading data from EEPROM:\n"); // Print message on the screen
inkplate.println("Reding data from EEPROM..."); // Print message on the Sserial Monitor
inkplate.setTextSize(1); // Use smaller text so everything can fit on display
printEEPROM(); // Read data from EEPROM and display it on screen
delay(500); // Wait a little bit...

}

void loop() {
// Empty...
}

// Function for clearing EEPROM data
void clearEEPROM()
{
for(int i=0;i<EEPROM_SIZE;i++){
EEPROM.write(i,0);
}
EEPROM.commit();
}

// Function writes data to EEPROM
void writeEEPROM()
{
for(int i=0;i<EEPROM_SIZE;i++){
EEPROM.write(i,i);
}
EEPROM.commit();
}

// Function reads back previously written data and displays it on serial monitor and screen.
void printEEPROM()
{
for(int i=0;i<EEPROM_SIZE;i++){
inkplate.print(EEPROM.read(i), DEC);
Serial.print(EEPROM.read(i), DEC);
if(i != EEPROM_SIZE -1)
{
inkplate.print(", ");
Serial.print(", ");
}
}
inkplate.display();
}

Komentar pored Inkplate inkplate; spominje monokromatski način rada; Inkplate 7SPECTRA ima samo šestobojni način rada, a konstruktor ne prima način rada. Redak označen kao poruka za Serial Monitor ispisuje se na zaslonu, a njegov je tekst u skici napisan kao „Reding".

Korištene funkcije​

Inkplate()returns None

Stvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.

ReturnsKonstruktor; nema povratne vrijednosti.

inkplate.begin()returns void

Inicijalizira biblioteku, periferne jedinice i frame buffer. Pozovite je jednom u setup().

ReturnsNišta.

inkplate.setTextColor(uint16_t c)returns void

Postavlja boju teksta, ovdje INKPLATE_BLACK.

ReturnsNišta.

inkplate.setTextSize(uint8_t s)returns void

Postavlja povećanje teksta: 3 za dva retka naslova, zatim 1 da stane svih 128 vrijednosti.

ReturnsNišta.

inkplate.println(text)returns size_t

Ispisuje tekst u frame buffer i prelazi u sljedeći redak.

ReturnsBroj ispisanih bajtova.

inkplate.print(value, format)returns size_t

Ispisuje tekst ili broj u frame buffer, kao Serial.print(). DEC ispisuje broj u decimalnom zapisu.

ReturnsBroj ispisanih bajtova.

inkplate.display(bool _leaveOn = 0)returns void

Šalje cijeli frame buffer na zaslon i osvježava ga.

ReturnsNišta.

EEPROM.begin(size_t size)returns bool

Biblioteka EEPROM iz paketa pločice ESP32: rezervira zadani broj bajtova EEPROM-a za korištenje, ovdje 128.

Returnstrue u slučaju uspjeha.

EEPROM.write(int address, uint8_t value)returns void

Biblioteka EEPROM: upisuje jedan bajt na adresu. Promjena se čuva u memoriji dok ne pozovete commit().

ReturnsNišta.

EEPROM.commit()returns bool

Biblioteka EEPROM: trajno pohranjuje upisane bajtove.

Returnstrue u slučaju uspjeha.

EEPROM.read(int address)returns uint8_t

Biblioteka EEPROM: čita jedan bajt s adrese.

ReturnsPohranjeni bajt.

Serial.begin(115200)returns void

Funkcija jezgre Arduina: pokreće serijski port na 115200 baud.

ReturnsNišta.

Serial.println(text)returns size_t

Funkcija jezgre Arduina: ispisuje redak u Serial Monitor.

ReturnsBroj ispisanih bajtova.

Serial.print(value, format)returns size_t

Funkcija jezgre Arduina: ispisuje tekst ili broj u Serial Monitor bez prijelaza u novi redak.

ReturnsBroj ispisanih bajtova.

delay(ms)returns void

Funkcija jezgre Arduina: čeka zadani broj milisekundi, ovdje 500.

ReturnsNišta.

Što očekivati​

Uz Serial Monitor postavljen na 115200 baud, skica ispisuje:

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
Cleaning EEPROM...
Writing data to EEPROM...
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127

Na zaslonu se velikim crnim tekstom prikazuju Reading data from EEPROM: i Reding data from EEPROM..., a zatim malim tekstom isti popis vrijednosti od 0 do 127.

🔗Otvorite cijeli primjer

examples/Inkplate7SPECTRA/Advanced/Other/Inkplate7SPECTRA_EEPROM_Usage

→