Obsah:

Vstavaná EEPROM vášho Arduina: 6 krokov
Vstavaná EEPROM vášho Arduina: 6 krokov

Video: Vstavaná EEPROM vášho Arduina: 6 krokov

Video: Vstavaná EEPROM vášho Arduina: 6 krokov
Video: Ардуино и внешняя EEPROM 24C128 2024, November
Anonim
Vstavaná EEPROM vášho Arduina
Vstavaná EEPROM vášho Arduina

V tomto článku sa budeme zaoberať vnútornou EEPROM v našich doskách Arduino. Čo je to EEPROM, ktorú niektorí z vás môžu hovoriť? EEPROM je elektricky vymazateľná programovateľná pamäť iba na čítanie.

Je to forma energeticky nezávislej pamäte, ktorá si dokáže zapamätať veci po vypnutí napájania alebo po resetovaní Arduina. Krása tohto druhu pamäte je v tom, že údaje generované v skici môžeme ukladať trvalejšie.

Prečo by ste používali internú EEPROM? V situáciách, kde údaje, ktoré sú jedinečné pre danú situáciu, vyžadujú trvalejší domov. Napríklad uloženie jedinečného sériového čísla a dátumu výroby komerčného projektu založeného na Arduino-funkcia náčrtu môže zobraziť sériové číslo na LCD displeji alebo je možné údaje načítať nahraním „servisného náčrtu“. Alebo budete musieť určité udalosti spočítať a nedovoliť používateľovi ich resetovať-napríklad počítadlo kilometrov alebo počítadlo prevádzkových cyklov.

Krok 1: Aký druh údajov je možné uložiť?

Aký druh údajov je možné uložiť?
Aký druh údajov je možné uložiť?

Čokoľvek, čo môže byť reprezentované ako bajty údajov. Jeden bajt údajov tvorí osem bitov údajov. Bit môže byť buď zapnutý (hodnota 1) alebo vypnutý (hodnota 0) a je ideálny na reprezentáciu čísel v binárnej forme. Inými slovami, binárne číslo môže na reprezentáciu hodnoty používať iba nuly a jednotky. Binárne číslo je teda tiež známe ako „základňa-2“, pretože môže používať iba dve číslice.

Ako môže binárne číslo, ktoré používa iba dve číslice, predstavovať väčšie číslo? Používa veľa jednotiek a núl. Pozrime sa na binárne číslo, povedzme 10101010. Keďže ide o číslo 2, každá číslica predstavuje 2 až mocninu x od x = 0 ďalej.

Krok 2:

Obrázok
Obrázok

Pozrite sa, ako každá číslica binárneho čísla môže predstavovať číslo 10. Vyššie uvedené binárne číslo teda predstavuje 85 v základni-10-hodnota 85 je súčtom hodnôt základne-10. Ďalší príklad - 11111111 v binárnom formáte sa rovná 255 v základe 10.

Krok 3:

Teraz každá číslica v tomto binárnom čísle používa jeden „bit“pamäte a osem bitov tvorí bajt. Vzhľadom na vnútorné obmedzenia mikrokontrolérov v našich doskách Arduino môžeme do EEPROM uložiť iba 8-bitové čísla (jeden bajt).

To obmedzuje desatinnú hodnotu čísla na hodnotu medzi nulou a 255. Potom je na vás, ako sa rozhodnete reprezentovať svoje údaje v tomto číselnom rozsahu. Nenechajte sa odradiť - čísla usporiadané správnym spôsobom môžu predstavovať takmer čokoľvek! Je potrebné dbať na jedno obmedzenie - koľkokrát môžeme čítať alebo písať do EEPROM. Podľa výrobcu Atmel je EEPROM dobrá na 100 000 cyklov čítania/zápisu (pozri technický list).

Krok 4:

Teraz poznáme svoje bity a bajty, koľko bajtov je možné uložiť do mikrokontroléra nášho Arduina? Odpoveď sa líši v závislosti od modelu mikrokontroléra. Napríklad:

  • Dosky s procesorom Atmel ATmega328, ako napríklad Arduino Uno, Uno SMD, Nano, Lilypad atď. - 1024 bajtov (1 kilobajt)
  • Dosky s procesorom Atmel ATmega1280 alebo 2560, ako napríklad séria Arduino Mega - 4096 bajtov (4 kilobajty)
  • Dosky s Atmel ATmega168, ako napríklad pôvodný Arduino Lilypad, staré Nano, Diecimila atď. - 512 bajtov.

Ak si nie ste istí, pozrite sa na hardvérový index Arduino alebo sa obráťte na svojho dodávateľa dosky. Ak potrebujete viac úložiska EEPROM, než aké je k dispozícii s vašim mikrokontrolérom, zvážte použitie externej pamäte EEPROM I2C.

V tomto mieste teraz chápeme, aký druh údajov a koľko je možné uložiť do našej EEPROM našej Arduino. Teraz je načase uviesť to do praxe. Ako už bolo uvedené vyššie, pre naše údaje existuje obmedzený priestor. V nasledujúcich príkladoch použijeme typickú dosku Arduino s ATmega328 s 1024 bajtmi úložiska EEPROM.

Krok 5:

Na používanie EEPROM je potrebná knižnica, preto vo svojich náčrtoch použite nasledujúcu knižnicu:

#include "EEPROM.h"

Ostatné je veľmi jednoduché. Na ukladanie údajov používame nasledujúcu funkciu:

EEPROM.write (a, b);

Parameter a je pozícia v EEPROM na uloženie celého čísla (0 ~ 255) údajov b. V tomto prípade máme 1024 bajtov pamäte, takže hodnota a je medzi 0 a 1023. Na získanie jedného údaja je rovnako jednoduché použiť:

z = EEPROM.read (a);

Kde z je celé číslo na uloženie údajov z pozície EEPROM a. Teraz vidieť príklad.

Krok 6:

Obrázok
Obrázok

Tento náčrt vytvorí náhodné čísla od 0 do 255, uloží ich do EEPROM a potom ich získa a zobrazí na sériovom monitore. Premenná EEsize je horná hranica veľkosti vašej EEPROM, takže (napríklad) by to bolo 1024 pre Arduino Uno alebo 4096 pre Mega.

// Interná ukážka EEPROM Arduino

#zahrnúť

int zz; int EEsize = 1024; // veľkosť v bajtoch EEPROM vašej dosky

neplatné nastavenie ()

{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Zapisovanie náhodných čísel …"); pre (int i = 0; i <EEsize; i ++) {zz = náhodný (255); EEPROM.write (i, zz); } Serial.println (); pre (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("Pozícia EEPROM:"); Serial.print (a); Serial.print ("obsahuje"); Serial.println (zz); oneskorenie (25); }}

Zobrazí sa výstup zo sériového monitora, ako je znázornené na obrázku.

Takže tu to máte, ďalší užitočný spôsob ukladania údajov v našich systémoch Arduino. Aj keď to nie je najvzrušujúcejší návod, je určite užitočný.

Tento príspevok vám prináša pmdway.com - všetko pre výrobcov a nadšencov elektroniky s bezplatným doručením do celého sveta.

Odporúča: