Hoe Om Data In Arduino Te Stoor

INHOUDSOPGAWE:

Hoe Om Data In Arduino Te Stoor
Hoe Om Data In Arduino Te Stoor

Video: Hoe Om Data In Arduino Te Stoor

Video: Hoe Om Data In Arduino Te Stoor
Video: You can learn Arduino in 15 minutes. 2024, November
Anonim

Arduino-borde het verskillende soorte geheue. Eerstens is dit statiese RAM (ewekansige toegangsgeheue) wat gebruik word om veranderlikes op te slaan tydens programuitvoering. Tweedens is dit die geheue wat die sketse wat u geskryf het, stoor. En derdens is dit 'n EEPROM wat gebruik kan word om inligting permanent op te slaan. Die eerste soort geheue is wisselvallig, dit verloor alle inligting nadat die Arduino weer begin is. Die tweede twee soorte geheue stoor inligting totdat dit met 'n nuwe een oorskryf word, selfs nadat die stroom uitgeskakel is. Die laaste tipe geheue - EEPROM - laat toe dat data geskryf, gestoor en gelees word soos nodig. Ons sal hierdie geheue nou bespreek.

Stoor data in EEPROM Arduino
Stoor data in EEPROM Arduino

Nodig

  • - Arduino;
  • - rekenaar.

Instruksies

Stap 1

EEPROM staan vir Electrically Erasable Programmable Read-Only Memory, m.a.w. elektries uitwisbare leesalleen geheue. Die data in hierdie geheue kan tien jaar gestoor word nadat die krag afgeskakel is. Die aantal herskrywingsiklusse is 'n paar miljoen keer aan die orde.

Die hoeveelheid EEPROM-geheue in Arduino is taamlik beperk: vir borde gebaseer op die ATmega328-mikrobeheerder (byvoorbeeld Arduino UNO en Nano) is die hoeveelheid geheue 1 KB, vir ATmega168- en ATmega8-borde - 512 bytes, vir ATmega2560 en ATmega1280 - 4 KB.

Stap 2

Om met die EEPROM vir Arduino te werk, is 'n spesiale biblioteek geskryf wat standaard in die Arduino IDE opgeneem is. Die biblioteek bevat die volgende funksies.

lees (adres) - lees 1 byte van EEPROM; adres - die adres waarvandaan die data gelees word (sel vanaf 0);

skryf (adres, waarde) - skryf die waarde (1 byte, getal van 0 tot 255) in die geheue by die adresadres;

update (adres, waarde) - vervang die waarde by adres as die ou inhoud daarvan verskil van die nuwe;

kry (adres, data) - lees die gegewe tipe data uit die geheue by die adres;

sit (adres, data) - skryf data van die gespesifiseerde tipe in die geheue by die adres;

EEPROM [adres] - hiermee kan u die "EEPROM" -identifiseerder gebruik as 'n skikking om data na te skryf en uit die geheue te lees.

Om die biblioteek in die skets te gebruik, sluit ons dit in by die #include EEPROM.h richtlijn.

Stap 3

Kom ons skryf twee heelgetalle aan die EEPROM en lees dit dan uit die EEPROM en voer dit uit na die seriële poort.

Daar is geen probleme met getalle van 0 tot 255 nie, hulle beslaan slegs 1 byte geheue en word op die gewenste plek geskryf met behulp van die EEPROM.write () -funksie.

As die getal groter is as 255, moet die operator highByte () en lowByte () deur bytes gedeel word en elke byte moet in sy eie sel geskryf word. Die maksimum aantal in hierdie geval is 65536 (of 2 ^ 16).

Kyk, die seriële poortmonitor in sel 0 vertoon eenvoudig 'n getal van minder as 255. In selle 1 en 2 word 'n groot getal 789 gestoor. (dws 789 = 3 * 256 + 21). Om 'n groot getal weer saam te stel, ontleed in bytes, is daar die woord () -funksie: int val = word (hi, low), waar hi en low die waardes van die hoë en die lae byte is.

In alle ander selle wat ons nog nooit neergeskryf het nie, word die getalle 255 gestoor.

Skryf heelgetalle na EEPROM Arduino
Skryf heelgetalle na EEPROM Arduino

Stap 4

Gebruik die EEPROM.put () -metode om getalle en stringe van drywende punte te skryf, en gebruik EEPROM.get () om te lees.

In die instelprosedure () skryf ons eers die drywingsgetal f. Dan beweeg ons volgens die aantal geheueselle wat die vlottersoort beslaan, en skryf 'n tekenreeks met 'n kapasiteit van 20 selle.

In die loop () -prosedure sal ons alle geheueselle lees en probeer om dit eers te ontsyfer as 'float'-tipe, en dan as' char 'tipe, en die resultaat na die seriële poort uit te voer.

U kan sien dat die waarde in selle 0 tot 3 korrek gedefinieer is as 'n drywende puntgetal, en begin vanaf die 4de - as 'n string.

Die resulterende waardes ovf (oorloop) en nan (nie 'n getal nie) dui aan dat die getal nie korrek na 'n drywende puntgetal omgeskakel kan word nie. As u presies weet watter tipe data geheue selle gebruik, sal u geen probleme ondervind nie.

Skryf drywende nommers en snare na EEPROM Arduino
Skryf drywende nommers en snare na EEPROM Arduino

Stap 5

'N Baie handige kenmerk is om na geheueselle as elemente van 'n EEPROM-skikking te verwys. In hierdie skets, in die setup () -prosedure, skryf ons eers die data in die eerste 4 grepe, en in die loop () -prosedure, lees ons elke minuut data uit alle selle en voer dit na die seriële poort uit.

Aanbeveel: