Sisukord:

Teie Arduino sisseehitatud EEPROM: 6 sammu
Teie Arduino sisseehitatud EEPROM: 6 sammu

Video: Teie Arduino sisseehitatud EEPROM: 6 sammu

Video: Teie Arduino sisseehitatud EEPROM: 6 sammu
Video: Контроллер температуры мобильного телефона с модулем WIFI DT 06 | Программирование LDmicro-Roboremo 2024, November
Anonim
Teie Arduino sisseehitatud EEPROM
Teie Arduino sisseehitatud EEPROM

Selles artiklis uurime meie Arduino tahvlite sisemist EEPROM -i. Mida EEPROM mõned teist võivad öelda? EEPROM on elektriliselt kustutatav programmeeritav kirjutuskaitstud mälu.

See on püsimälu vorm, mis mäletab asju, kui toide on välja lülitatud või pärast Arduino lähtestamist. Sellise mälu ilu seisneb selles, et saame visandis loodud andmeid püsivamalt salvestada.

Miks peaksite kasutama sisemist EEPROM -i? Olukordades, kus olukorrale ainuomased andmed vajavad püsivamat kodu. Näiteks kaubandusliku Arduino-põhise projekti kordumatu seerianumbri ja tootmiskuupäeva salvestamine-visandi funktsioon võib seerianumbrit kuvada LCD-ekraanil või andmeid saab lugeda teenusvisandi üleslaadimisega. Või peate loendama teatud sündmused ja mitte lubama kasutajal neid lähtestada-näiteks läbisõidumõõdik või töötsükli loendur.

Samm: milliseid andmeid saab salvestada?

Milliseid andmeid saab salvestada?
Milliseid andmeid saab salvestada?

Kõik, mida saab esitada andmebaitidena. Üks bait andmeid koosneb kaheksast andmebittist. Bitt võib olla sisse lülitatud (väärtus 1) või välja lülitatud (väärtus 0) ja sobib ideaalselt numbrite esitamiseks binaarses vormis. Teisisõnu, binaararv võib väärtuse esitamiseks kasutada ainult nulle ja üksikuid. Seega on binaarne tuntud ka kui „baas-2”, kuna see võib kasutada ainult kahte numbrit.

Kuidas saab binaarne number, mis kasutab ainult kahte numbrit, kujutada suuremat arvu? See kasutab palju üksikuid ja nulle. Uurime kahendarvu, näiteks 10101010. Kuna see on baas-2 arv, tähistab iga number 2 x-i astmeni, alates x = 0.

2. samm:

Pilt
Pilt

Vaadake, kuidas kahendnumbri iga number võib kujutada 10-põhist numbrit. Seega kujutab ülaltoodud binaararv baas-10-s 85-väärtus 85 on baas-10 väärtuste summa. Teine näide - 11111111 binaarses võrdub alusega 10 255.

3. samm:

Nüüd kasutab selle kahendnumbri iga number ühte "bitti" mälu ja kaheksa bitti moodustavad baidi. Meie Arduino tahvlite mikrokontrollerite sisemiste piirangute tõttu saame EEPROM-is salvestada ainult 8-bitiseid numbreid (üks bait).

See piirab arvu kümnendväärtuse vahemiku nullist kuni 255. Seejärel on teie otsustada, kuidas teie andmeid selle numbrivahemikuga esitada. Ärge laske sellel end heidutada - õigesti paigutatud numbrid võivad esindada peaaegu kõike! Tuleb arvestada ühe piiranguga - mitu korda saame EEPROM -i lugeda või kirjutada. Tootja Atmeli sõnul sobib EEPROM 100 000 lugemis-/kirjutamistsükli jaoks (vt andmelehte).

4. samm:

Nüüd teame oma bitti ja baiti, kui palju baite saab meie Arduino mikrokontrollerisse salvestada? Vastus varieerub sõltuvalt mikrokontrolleri mudelist. Näiteks:

  • Lauad Atmel ATmega328 -ga, näiteks Arduino Uno, Uno SMD, Nano, Lilypad jne - 1024 baiti (1 kilobait)
  • Lauad, millel on Atmel ATmega1280 või 2560, näiteks Arduino Mega seeria - 4096 baiti (4 kilobaiti)
  • Lauad Atmel ATmega168 -ga, näiteks originaalne Arduino Lilypad, vana Nano, Diecimila jne - 512 baiti.

Kui te pole milleski kindel, vaadake Arduino riistvaraindeksit või küsige plaadi tarnijalt. Kui vajate rohkem EEPROM -i salvestusruumi kui see, mis on saadaval teie mikrokontrolleriga, kaaluge välise I2C EEPROM -i kasutamist.

Siinkohal mõistame nüüd, milliseid andmeid ja kui palju saab meie Arduino EEPROM -i salvestada. Nüüd on aeg see teoks teha. Nagu varem arutatud, on meie andmete jaoks piiratud hulk ruumi. Järgmistes näidetes kasutame tüüpilist Arduino plaati koos ATmega328 -ga, millel on 1024 baiti EEPROM -i salvestusruumi.

5. samm:

EEPROMi kasutamiseks on vaja raamatukogu, seega kasutage oma visandites järgmist raamatukogu:

#include "EEPROM.h"

Ülejäänud on väga lihtne. Andmete salvestamiseks kasutame järgmist funktsiooni:

EEPROM.write (a, b);

Parameeter a on asukoht EEPROMis andmete täisarvu (0 ~ 255) salvestamiseks. Selles näites on meil 1024 baiti mälusalvestust, seega on a väärtus vahemikus 0 kuni 1023. Andmetüki toomine on sama lihtne, kasutage järgmist:

z = EEPROM.lugemine (a);

Kus z on täisarv EEPROMi positsiooni andmete salvestamiseks a. Nüüd näite vaatamiseks.

6. samm:

Pilt
Pilt

See visand loob juhuslikke numbreid vahemikus 0 kuni 255, salvestab need EEPROM -i, seejärel otsib ja kuvab need jadamonitoril. Muutuv EE -suurus on teie EEPROM -i suuruse ülempiir, seega (näiteks) oleks see Arduino Uno puhul 1024 või Mega puhul 4096.

// Arduino sisemine EEPROM -i demonstratsioon

#kaasake

int zz; int EEsize = 1024; // teie plaadi EEPROM -i baitide suurus

tühine seadistus ()

{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Juhuslike numbrite kirjutamine …"); jaoks (int i = 0; i <EEsize; i ++) {zz = juhuslik (255); EEPROM.write (i, zz); } Serial.println (); jaoks (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("EEPROMi positsioon:"); Seeriatrükk (a); Serial.print ("sisaldab"); Seeria.println (zz); viivitus (25); }}

Ilmub jadamonitori väljund, nagu pildil näidatud.

Siin on see veel üks kasulik viis andmete salvestamiseks meie Arduino süsteemidega. Kuigi see pole kõige põnevam õpetus, on see kindlasti kasulik.

Selle postituse tõi teile pmdway.com - kõik tegijatele ja elektroonikahuvilistele, tasuta kohaletoimetamine kogu maailmas.

Soovitan: