Cum se păstrează datele în arduino

Plăcile familiei de carduri Arduino au mai multe tipuri de memorie. În primul rând, este un RAM static (memorie de acces aleatoriu), care este folosit pentru stocarea variabilelor în timpul execuției programului. În al doilea rând, este memorie flash. în care sunt stocate schițele pe care le-ați scris. În al treilea rând, e EEPROM. care pot fi utilizate pentru stocarea permanentă a informațiilor. Primul tip de memorie este volatil, pierde toate informațiile după rebootul Arduino. Cele două tipuri de informații stochează memoria până când este suprascrisă de cea nouă, chiar și după oprirea alimentării. Ultimul tip de memorie - EEPROM - vă permite să scrieți date, să le stocați și să le citiți dacă este necesar. Vom lua în considerare această memorie acum.







1 Descrierea memoriei EEPROM

EEPROM reprezintă o memorie programabilă numai pentru citire care poate fi redată electric. și anume memorie reprogramabilă separată numai pentru citire. Datele din această memorie pot fi stocate timp de decenii după ce alimentarea este oprită. Numărul ciclurilor de rescriere este de ordinul a câtorva milioane de ori.

Cantitatea de memorie EEPROM din Arduino este destul de limitată:
  • pentru placi bazate pe un microcontroler ATmega328 (de exemplu, Arduino UNO și Nano), cantitatea de 1 kB de memorie,
  • pentru plăcile pe ATmega168 și ATmega8 - 512 octeți,
  • pe ATmega2560 și ATmega1280 - 4 KB.

2 Biblioteca EEPROM

Pentru a lucra cu EEPROM pentru Arduino, este scrisă o bibliotecă specială, care este inclusă în ID-ul Arduino în mod implicit. Biblioteca conține următoarele opțiuni.

permite utilizarea identificatorului "EEPROM" ca matrice pentru a scrie date în memorie și a le citi din memorie.

Pentru a activa biblioteca în schiță, o conectăm cu directiva #include EEPROM.h.

3 Scrierea numerelor întregi în EEPROM

Să punem două numere întregi în memoria EEPROM și apoi să le citim de pe EEPROM și să le scoatem la portul serial. Cu numere de la 0 la 255 nu există probleme, ocupă doar 1 octet de memorie și folosind funcția EEPROM.write () sunt scrise în celula corectă.







Dacă numărul este mai mare de 255, apoi folosind operatorii highByte () și lowByte (), trebuie să îl împărțiți în octeți și să scrieți fiecare octet în celulă. Numărul maxim este 65536 (sau 2 16).

A se vedea, celula monitor port serial ieșiri simplu 0 valoare mai mică de 255. Celulele 1 și 2 sunt stocate un număr mare de 789. In aceasta celula una stochează multiplicatoare de preaplin 3, iar celula 2 - lipsă numărul 21 (adică, 789 = 3 x 256 + 21).

Cum se păstrează datele în arduino
Scriind numere întregi la Euprom Arduino

Pentru a reasambla un număr mare, analizat în octeți, este un cuvânt de funcționare (). int val = cuvânt (hi, low), unde "hi" și "low" sunt valorile octelor înalte și joase ale numărului "val".

În toate celelalte celule care nu au fost înregistrate de noi, numerele 255 sunt stocate.

4 Scrieți numerele cu puncte plutitoare și șiruri de caractere la EEPROM

Pentru a scrie numere în virgulă mobilă și șiruri de caractere, trebuie să utilizați metoda EEPROM.put (). și pentru citire - EEPROM.get ().

În rutina setup (), mai întâi scriem un număr de punct floating "f". Apoi treceți la numărul de celule de memorie care ocupă tipul "float" și scrieți un șir de caractere "char" cu o capacitate de 20 de celule.

În rutina buclă (), citim toate locațiile de memorie și încercăm să le decodificăm mai întâi ca tip "float", apoi ca tip "char" și ieșim rezultatul în portul serial.

Cum se păstrează datele în arduino
Scrieți numere în virgulă mobilă în arduino EEPROM

Se poate observa că valoarea din celulele de la 0 la 3 a fost corect definită ca număr de punct floating și începând cu a patra ca șir.

5 Lucrul cu EEPROM ca matrice

O opțiune foarte convenabilă este accesarea celulelor de memorie ca elemente ale unei matrice EEPROM. În această schiță, în rutina de configurare (), vom scrie mai întâi datele în primele 4 octeți, iar în rutina buclă (), vom citi datele din toate celulele în fiecare minut și le vom extrage în portul serial.

Cum se păstrează datele în arduino
Lucrul cu celulele de memorie Edurom Arduino ca și cu elementele de matrice







Articole similare

Trimiteți-le prietenilor: