Hvordan bruke EEPROM -bibliotek i Arduino

Hvordan bruke EEPROM -bibliotek i Arduino
I Arduino -programmering når en skisse lastes opp til Arduino -brettet, blir den der igjen og lagres i Arduino til den er slettet eller en annen skisse lastes opp. Disse dataene lagres i EEPROM innebygd i Arduino. Bruken av EEPROM og biblioteket blir forklart i denne følgende konteksten.

Eeprom av Arduino

Dette leste bare minnet annet enn lagring gir muligheten til å redigere innholdet i skissen ved å bruke funksjonene. Tilsvarende ble dette minnet designet for å unngå problemer med å slette data som ble oppfanget i fortiden. EEPROM -størrelsene på forskjellige Arduino -tavler er nevnt nedenfor:

Kontroller Størrelse
Arduino Uno, Arduino Nano, Arduino Mini (ATMEGA328) 1024 byte
Arduino Nano (ATMEGA168) 512 byte
Arduino Mega (ATMEGA2560) 4096 byte

Forkortelsen EEPROM står for "elektronisk slettbar permanent lest minne". Det er 8 typer funksjoner som kan utføres ved hjelp av EEPROM -biblioteket. Dette biblioteket kommer allerede med Arduino IDE -programvaren, så det er ikke nødvendig å installere biblioteket:

  • Skriv funksjon av EEPROM
  • Les funksjon av EEPROM
  • Sett funksjon av EEPROM
  • Få funksjon av EEPROM
  • Oppdateringsfunksjon av EEPROM

Skriv funksjon av EEPROM

Når dataene skal lagres i en hvilken som helst adresse, kan det gjøres ved å bruke Eeprom.skrive() funksjon. Dataene vil bli lagret til de er slettet eller oppdatert.

I koden først blir biblioteket for minnet initialisert og deretter er variabelen for adresse erklært, og i løkken er EEPROM.skriv () -funksjonen brukes til å skrive til verdien på adressen.

Etter hver iterasjon endres adressen og den samme verdien legges til alle adressene til EEPROM. Tilsvarende lagret dataene ved hjelp av skrivefunksjonen.

Programmet vil kjøre til adressene blir lik den totale lengden på EEPROM og lengden på minnet varierer fra brett til styre. I Arduino Uno er det 1 kilo byte, så programmet vil kjøre når alle 1000 adressene har gitt verdien av 200.

#inkludere
int adresse = 0;
int -verdi = 200;
void setup ()
Serie.Begynn (9600);

void loop ()
Eeprom.skriv (adresse, verdi);
Serie.print ("Denne adressen:");
Serie.println (adresse);
Serie.print ("har verdi av");
Serie.println (verdi);
Serie.println ();
adresse = adresse + 1;
if (adresse == EEPROM.lengde ())
adresse = 0;

forsinkelse (500);

Produksjon

Les funksjon av EEPROM

Å lese alle data fra hvilken som helst adresse på minnet Eeprom.lese() funksjon brukes. For ytterligere å beskrive arbeidet med EEPROM.Les () Funksjon Det er gitt et eksempelkode.

Siden vi i det forrige programmet har gitt verdien av 200 til hver adresse på minnet, så når vi leser hver adresse på minnet ved hjelp av EEPROM.Les () -funksjonen Den viser samme utgang:

#inkludere
int adresse = 0;
byteverdi;
void setup ()
Serie.Begynn (9600);

void loop ()
verdi = EEPROM.lese (adresse);
Serie.print ("Denne adressen:");
Serie.println (adresse);
Serie.print ("har verdi av");
Serie.println (verdi);
Serie.println ();
adresse = adresse + 1;
if (adresse == EEPROM.lengde ())
adresse = 0;

forsinkelse (500);

Produksjon

Sett funksjon av EEPROM

For å lagre dataene i form av en matrise eller dataene er av float -type, så Eeprom.sette() funksjon brukes. For å forstå bruken av EEPROM.PUT () FUNKSJON Det forklares videre ved hjelp av et enkelt Arduino -program.

I koden først lagres verdien som har float -datatype i adressen 0 i minnet, og deretter konstrueres en struktur av navnedataene som har en byte -type verdi, en float -type verdi og en tegnverdi.

Størrelsen for hele strukturen er 12 byte som har 4 byte for heltall- og float -typen verdier og 8 byte for karakterverdien.

Adressen for flottørtypen initialiseres som null, mens adressen for strukturen er etter neste byte som ble funnet etter floatverdien.

#inkludere
strukturdata
flyteverdi1;
byte -verdi2;
char ord [8];
;
void setup ()
Serie.Begynn (9600);
Float F = 967.817;
int eAddress = 0;
Eeprom.put (eeaddress, f);
Serie.print ("Denne adressen:");
Serie.println (eAddress);
Serie.print ("har flyteverdi på");
Serie.println (f);
Serie.println ();
Dataverdier =
2.65,
89,
"Hallo!""
;
eAddress += sizeof (float);
Eeprom.put (eAddress, verdier);
Serie.print ("Denne adressen:");
Serie.trykk (eAddress);
Serie.print ('\ t');
Serie.print ("har struktur som har informasjonen:");
Serie.println ();
Serie.println (verdier.verdi1);
Serie.println (verdier.verdi2);
Serie.println (verdier.ord);

void loop ()

Produksjon

Få funksjon av EEPROM

For å hente dataene som er lagret i Float Data -typer eller i form av struktur, brukes GET -funksjonen. Denne funksjonen er forskjellig fra den enkle lese- og skrivefunksjonen. Eksemplet for bruk av Eeprom.få() Funksjon gitt som vil gi et klart konsept av funksjonen:

#inkludere
void setup ()
FLOAT F = 0.00;
int eAddress = 0;
Serie.Begynn (9600);
Serie.trykk ("Les float from Eeprom:");
Eeprom.få (eeaddress, f);
Serie.println (f, 4);
structurevalues ​​();

strukturdata
flyteverdi1;
byte -verdi2;
char ord [8];
;
void structurevalues ​​()
int eAddress = sizeof (float);
Dataverdier;
Eeprom.få (eAddress, verdier);
Serie.Println ("Lesstruktur fra Eeprom:");
Serie.println (verdier.verdi1);
Serie.println (verdier.verdi2);
Serie.println (verdier.ord);

void loop ()

Her i koden blir en flyteverdi og en strukturverdi lagret i Arduino -minnet hentet som tidligere ble lagret ved hjelp av EEPROM.PUT () FUNKSJON.

Produksjon

Oppdateringsfunksjon av EEPROM

Når data om en adresse må oppdateres Eeprom.Oppdater() funksjon brukes. Denne funksjonen brukes bare når det allerede er noen data om den respektive adressen. Tilsvarende oppdaterer denne funksjonen bare dataene hvis den er forskjellig fra tidligere lagrede data.

#inkludere
int -adresse = 4;
int verdi;
int verdi1 = 300;
void setup ()
Serie.Begynn (9600);
verdi = EEPROM.lese (adresse);
Serie.print ("Denne adressen:");
Serie.println (adresse);
Serie.print ("tidligere verdi av");
Serie.println (verdi);
Serie.println ();
Eeprom.oppdatering (adresse, verdi1);
Serie.print ("Denne adressen:");
Serie.println (adresse);
Serie.print ("oppdatert verdi av");
Serie.println (verdi1);
Serie.println ();

void loop ()

I eksempelkoden blir dataene på adressen 4 oppdatert ettersom den forrige verdien på denne adressen var 44. Dataene til adresse 4 ble endret fra 44 til 300.

For demonstrasjonsformål Eeprom.Les () -funksjonen brukes til å hente dataene som er lagret i adresse 4, og deretter lagres en oppdatert verdi i adresse 4 ved å bruke EEPROM.OPPDATERING () Funksjon.

Produksjon

Konklusjon

Biblioteker i Arduino -programmering brukes stort sett for å få noen ekstra funksjonaliteter i maskinvaren. EEPROM er minnet om Arduino -styret som kan nås ved hjelp av EEPROM.H bibliotek. Ved å bruke funksjonene, kan dataene som er lagret i Arduino redigeres eller slettes. Denne oppskrivningen forklarer fem hovedfunksjoner som kan brukes til å redigere eller slette dataene til Arduino.