Kazalo:

Vgrajen EEPROM vašega Arduina: 6 korakov
Vgrajen EEPROM vašega Arduina: 6 korakov

Video: Vgrajen EEPROM vašega Arduina: 6 korakov

Video: Vgrajen EEPROM vašega Arduina: 6 korakov
Video: M#1: Настройка ПЛК Outseal Mega с отладочной платой ATmega128 | Аутсил Дев. ПЛК Мега 2024, November
Anonim
Vgrajen EEPROM vašega Arduina
Vgrajen EEPROM vašega Arduina

V tem članku bomo preučili notranji EEPROM na naših ploščah Arduino. Kaj morda govorijo EEPROM nekateri od vas? EEPROM je električno izbrisljiv programirljiv pomnilnik samo za branje.

To je oblika nehlapnega spomina, ki si lahko zapomni stvari z izklopljenim napajanjem ali po ponastavitvi Arduina. Lepota tovrstnega pomnilnika je v tem, da lahko trajno hranimo podatke, ustvarjene v skici.

Zakaj bi uporabili notranji EEPROM? V primerih, ko podatki, ki so edinstveni za določeno situacijo, potrebujejo stalnejši dom. Na primer shranjevanje edinstvene serijske številke in datuma izdelave komercialnega projekta, ki temelji na Arduinu-funkcija skice bi lahko prikazala serijsko številko na LCD-prikazovalniku ali pa bi podatke lahko prebrali z nalaganjem „skice storitve“. Ali pa boste morda morali prešteti določene dogodke in ne dovolite, da jih uporabnik ponastavi-na primer števec kilometrov ali števec ciklov delovanja.

1. korak: Kakšno vrsto podatkov je mogoče shraniti?

Kakšne vrste podatkov je mogoče shraniti?
Kakšne vrste podatkov je mogoče shraniti?

Vse, kar je lahko predstavljeno kot bajti podatkov. En bajt podatkov je sestavljen iz osmih bitov podatkov. Bit je lahko vklopljen (vrednost 1) ali izklopljen (vrednost 0) in je kot nalašč za predstavitev števil v binarni obliki. Z drugimi besedami, binarno število lahko za prikaz vrednosti uporablja samo ničle in enote. Tako je binarno ime znano tudi kot "base-2", saj lahko uporablja samo dve števki.

Kako lahko binarno število samo z dvema števkama predstavlja večje število? Uporablja veliko enot in nič. Preglejmo binarno število, recimo 10101010. Ker je to osnovno število 2, vsaka številka predstavlja 2 do moči x, od x = 0 naprej.

2. korak:

Slika
Slika

Oglejte si, kako lahko vsaka številka binarnega števila predstavlja osnovno številko 10. Torej zgornje binarno število predstavlja 85 v bazi-10-vrednost 85 je vsota vrednosti baze-10. Drug primer - 11111111 v binarnem sistemu je 255 v bazi 10.

3. korak:

Zdaj vsaka številka v tem binarnem številu porabi en 'bit' pomnilnika, osem bitov pa naredi bajt. Zaradi notranjih omejitev mikrokrmilnikov na naših ploščah Arduino lahko v EEPROM shranimo samo 8-bitna števila (en bajt).

To omejuje decimalno vrednost števila med nič in 255. Nato se morate odločiti, kako bodo lahko vaši podatki predstavljeni s tem obsegom številk. Naj vas to ne odvrne - pravilno razporejene številke lahko predstavljajo skoraj vse! Upoštevati je treba eno omejitev - kolikokrat lahko beremo ali pišemo v EEPROM. Po navedbah proizvajalca Atmel je EEPROM primeren za 100.000 ciklov branja/pisanja (glejte podatkovni list).

4. korak:

Zdaj vemo naše bite in in bajte, koliko bajtov je mogoče shraniti v mikrokrmilnik našega Arduina? Odgovor se razlikuje glede na model mikrokrmilnika. Na primer:

  • Plošče z Atmel ATmega328, kot so Arduino Uno, Uno SMD, Nano, Lilypad itd. - 1024 bajtov (1 kilobajt)
  • Plošče z Atmel ATmega1280 ali 2560, na primer serija Arduino Mega - 4096 bajtov (4 kilobajta)
  • Plošče z Atmel ATmega168, na primer izvirni Arduino Lilypad, stari Nano, Diecimila itd. - 512 bajtov.

Če niste prepričani, si oglejte indeks strojne opreme Arduino ali vprašajte svojega dobavitelja plošč. Če potrebujete več prostora za shranjevanje EEPROM, kot je na voljo z vašim mikrokrmilnikom, razmislite o uporabi zunanjega I2C EEPROM.

Na tej točki zdaj razumemo, kakšne podatke in koliko jih je mogoče shraniti v EEPROM -ju našega Arduina. Zdaj je čas, da to uresničimo. Kot smo že omenili, je prostor za naše podatke omejen. V naslednjih primerih bomo uporabili tipično ploščo Arduino z ATmega328 z 1024 bajti prostora za shranjevanje EEPROM.

5. korak:

Za uporabo EEPROM -a je potrebna knjižnica, zato v skicah uporabite naslednjo knjižnico:

#include "EEPROM.h"

Ostalo je zelo preprosto. Za shranjevanje podatkov uporabljamo naslednjo funkcijo:

EEPROM.write (a, b);

Parameter a je položaj v EEPROM -u za shranjevanje celega števila (0 ~ 255) podatkov b. V tem primeru imamo 1024 bajtov pomnilnika, zato je vrednost a med 0 in 1023. Če želite pridobiti del podatkov, je tako preprosto, uporabite:

z = EEPROM.preberite (a);

Kjer je z celo število za shranjevanje podatkov iz položaja EEPROM a. Zdaj pa si oglejte primer.

6. korak:

Slika
Slika

Ta skica bo ustvarila naključne številke med 0 in 255, jih shranila v EEPROM, nato jih priklicala in prikazala na serijskem monitorju. Spremenljivka EEsize je zgornja meja velikosti vašega EEPROM -a, zato bi (na primer) to bilo 1024 za Arduino Uno ali 4096 za Mega.

// Arduino interna predstavitev EEPROM -a

#vključi

int zz; int EEsize = 1024; // velikost v bajtih EEPROM -a vaše plošče

void setup ()

{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Pisanje naključnih števil …"); for (int i = 0; i <EEsize; i ++) {zz = naključno (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("Položaj EEPROM:"); Serial.print (a); Serial.print ("vsebuje"); Serial.println (zz); zamuda (25); }}

Prikazal se bo izhod iz serijskega monitorja, kot je prikazano na sliki.

Torej, tukaj je še en uporaben način shranjevanja podatkov v naših sistemih Arduino. Čeprav ni najbolj vznemirljiva vadnica, je vsekakor uporabna.

To objavo vam je predstavil pmdway.com - vse za ustvarjalce in navdušence nad elektroniko z brezplačno dostavo po vsem svetu.

Priporočena: