Obsah:
Video: Vstavaná EEPROM vášho Arduina: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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ť?
Č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:
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:
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:
Stolný pinball s využitím technológie Evive- vstavaná forma na báze Arduina: 18 krokov (s obrázkami)
Stolový pinball s využitím technológie Evive- integrovaná platforma založená na Arduine: Ďalší víkend, ďalšia vzrušujúca hra! A tentokrát to nie je nikto iný ako obľúbená arkádová hra všetkých - Pinball! Tento projekt vám ukáže, ako si vyrobíte svoj vlastný automat Pinball ľahko doma. Všetko, čo budete potrebovať, sú komponenty z celého sveta
Vstavaná doska univerzálneho rozhrania - ovládanie USB/Bluetooth/WIFI: 6 krokov
Vstavaná doska univerzálneho rozhrania - ovládanie USB/Bluetooth/WIFI: Často sa stretávam s tým, že na základe údajového listu zariadenia vytváram knižnice pre nové vstavané moduly úplne od začiatku. Pri generovaní knižnice zisťujem, že sa zasekávam v cykle kódu, kompilácie, programovania a testovania, keď zaisťujem, aby veci fungovali a boli bez chýb. Často ide o
EAL- Vstavaná vnútorná klíma: 5 krokov
Vstavaná vnútorná klíma EAL: Pre náš školský projekt sme mali za úlohu integrovať arduino do automatizovaného systému. Rozhodli sme sa vyrobiť snímač vnútornej klímy, ktorý dokáže v interiéri snímať teplotu, vlhkosť a úroveň decibelov. Do skrinky sme vyvŕtali niekoľko otvorov,
Sprievodca uspaním vášho Arduina: 5 krokov
Návod na uspanie vášho Arduina: Niekedy sme v situácii, ktorá vyžaduje, aby sme Arduino dali na miesto, kde nie je možné zapojiť ho do elektrickej siete. Stáva sa to často, keď sa pokúšame zaznamenať informácie na vzdialenom webe, alebo potrebujeme, aby bolo vaše Arduino aktívne
Zásuvka do vášho Arduina: 6 krokov (s obrázkami)
Zásuvka k vášmu Arduinu: V elektronike existuje stará tradícia, ak je časť drahá alebo má tendenciu fúkať, urobte ju vymeniteľnou vložením do zásuvky. Niekedy to ide príliš ďaleko, ako pri koncových obvodoch, ktoré sú stále na proto doske, kde je všetko v zásuvke.