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
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.