Obsah:

Vestavěná EEPROM vašeho Arduina: 6 kroků
Vestavěná EEPROM vašeho Arduina: 6 kroků

Video: Vestavěná EEPROM vašeho Arduina: 6 kroků

Video: Vestavěná EEPROM vašeho Arduina: 6 kroků
Video: Arduino: Základy 01 | Seznámení s Arduinem [sub] 2024, Listopad
Anonim
Vestavěná EEPROM vašeho Arduina
Vestavěná EEPROM vašeho Arduina

V tomto článku prozkoumáme interní EEPROM v našich deskách Arduino. Co je to EEPROM, který někteří z vás možná říkají? EEPROM je elektricky vymazatelná programovatelná paměť pouze pro čtení.

Je to forma energeticky nezávislé paměti, která si pamatuje věci při vypnutém napájení nebo po resetování Arduina. Krása tohoto druhu paměti spočívá v tom, že můžeme data generovaná v náčrtu ukládat trvaleji.

Proč byste používali interní EEPROM? V situacích, kdy data, která jsou pro danou situaci jedinečná, vyžadují trvalejší domov. Například uložení jedinečného sériového čísla a data výroby komerčního projektu založeného na Arduinu-funkce náčrtu by mohla zobrazit sériové číslo na LCD displeji, nebo by se data dala přečíst nahráním „servisního náčrtu“. Nebo možná budete muset počítat určité události a nedovolit uživateli, aby je resetoval-například počítadlo kilometrů nebo počítadlo provozních cyklů.

Krok 1: Jaký druh dat lze uložit?

Jaký druh dat lze uložit?
Jaký druh dat lze uložit?

Cokoli, co lze reprezentovat jako bajty dat. Jeden bajt dat se skládá z osmi bitů dat. Bit může být buď zapnutý (hodnota 1) nebo vypnutý (hodnota 0) a je ideální pro reprezentaci čísel v binární formě. Jinými slovy, binární číslo může k reprezentaci hodnoty používat pouze nuly a jedničky. Binární číslo je tedy také známé jako „základna-2“, protože může používat pouze dvě číslice.

Jak může binární číslo s pouhým použitím dvou číslic představovat větší číslo? Používá spoustu jedniček a nul. Podívejme se na binární číslo, řekněme 10101010. Protože se jedná o číslo na bázi 2, každá číslice představuje 2 k síle x od x = 0 dále.

Krok 2:

obraz
obraz

Podívejte se, jak každá číslice binárního čísla může představovat číslo 10. Binární číslo výše tedy představuje 85 v základně-10-hodnota 85 je součtem hodnot základny-10. Další příklad - 11111111 v binárním formátu se rovná 255 v základu 10.

Krok 3:

Nyní každá číslice v tomto binárním čísle využívá jeden „bit“paměti a osm bitů tvoří bajt. Vzhledem k interním omezením mikrokontrolérů v našich deskách Arduino můžeme do EEPROM ukládat pouze 8bitová čísla (jeden bajt).

To omezuje desetinnou hodnotu čísla na hodnotu mezi nulou a 255. Je pak na vás, jak se vaše data v daném číselném rozsahu zobrazují. Nenechte se tím odradit - čísla uspořádaná správným způsobem mohou představovat téměř cokoli! Je třeba dbát na jedno omezení - kolikrát můžeme číst nebo zapisovat do EEPROM. Podle výrobce Atmel je EEPROM dobrá na 100 000 cyklů čtení/zápisu (viz datový list).

Krok 4:

Nyní známe své bity a bajty, kolik bajtů lze uložit do mikrokontroléru našeho Arduina? Odpověď se liší v závislosti na modelu mikrokontroléru. Například:

  • Desky s Atmel ATmega328, jako Arduino Uno, Uno SMD, Nano, Lilypad atd. - 1024 bajtů (1 kilobajt)
  • Desky s Atmel ATmega1280 nebo 2560, jako je řada Arduino Mega - 4096 bajtů (4 kilobajty)
  • Desky s Atmel ATmega168, jako je původní Arduino Lilypad, stará Nano, Diecimila atd. - 512 bajtů.

Pokud si nejste jisti, podívejte se na hardwarový index Arduino nebo se zeptejte svého dodavatele desky. Pokud potřebujete více úložiště EEPROM, než jaké je k dispozici u vašeho mikrokontroléru, zvažte použití externí I2C EEPROM.

V tomto okamžiku nyní chápeme, jaký druh dat a kolik lze uložit do naší EEPROM naší Arduino. Nyní je na čase to uvést do praxe. Jak již bylo zmíněno dříve, pro naše data existuje omezené množství prostoru. V následujících příkladech použijeme typickou desku Arduino s ATmega328 s 1024 bajty úložiště EEPROM.

Krok 5:

K použití EEPROM je nutná knihovna, proto ve svých skicách použijte následující knihovnu:

#include "EEPROM.h"

Zbytek je velmi jednoduchý. K uložení kusu dat používáme následující funkci:

EEPROM.write (a, b);

Parametr a je pozice v EEPROM pro uložení celého čísla (0 ~ 255) dat b. V tomto příkladu máme 1024 bajtů paměťového úložiště, takže hodnota a je mezi 0 a 1023. K získání části dat je stejně jednoduché, použijte:

z = EEPROM.read (a);

Kde z je celé číslo pro uložení dat z pozice EEPROM a. Nyní k ukázce.

Krok 6:

obraz
obraz

Tato skica vytvoří náhodná čísla mezi 0 a 255, uloží je do EEPROM, poté je načte a zobrazí na sériovém monitoru. Proměnná EEsize je horní limit velikosti vaší EEPROM, takže (například) by to bylo 1024 pro Arduino Uno nebo 4096 pro Mega.

// Interní ukázka EEPROM Arduina

#zahrnout

int zz; int EEsize = 1024; // velikost v bajtech EEPROM vaší desky

neplatné nastavení ()

{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Zápis náhodných čísel …"); for (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); pro (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("pozice EEPROM:"); Serial.print (a); Serial.print ("obsahuje"); Serial.println (zz); zpoždění (25); }}

Zobrazí se výstup ze sériového monitoru, jak je znázorněno na obrázku.

Tady to máte, další užitečný způsob ukládání dat s našimi systémy Arduino. Ačkoli to není nejzajímavější tutoriál, je to určitě užitečné.

Tento příspěvek vám přinesl web pmdway.com - vše pro výrobce a nadšence do elektroniky s doručením zdarma po celém světě.

Doporučuje: