Skelbimas
Ar žinojai, kad „Arduino“ gali saugoti duomenis, kai jis yra išjungtas? Ne eskizas, saugomas „flash“ atmintyje. Aš kalbu apie kintamus duomenis EEPROM. Prisijunkite prie manęs, kai jums parodysiu, kaip skaityti ir rašyti bei ką tai gali padaryti jūsų projektams.
Jei dar nesate naujokas Arduino, būtinai apsilankykite mūsų svetainėje pradedančiųjų vadovas Darbo pradžia „Arduino“: vadovas pradedančiajam„Arduino“ yra atvirojo kodo elektronikos prototipų kūrimo platforma, pagrįsta lanksčia, lengvai naudojama aparatine ir programine įranga. Jis skirtas menininkams, dizaineriams, mėgėjams ir visiems, besidomintiems interaktyvių objektų ar aplinkos kūrimu. Skaityti daugiau .
Kas yra EEPROM?
EEPROM reiškia elektra ištrinama programuojama tik skaitoma atmintis. Tai yra nekintamos atminties rūšis. Nesijaudinkite, jei nesuprantate, ką tai reiškia. Tai tiesiog saugo duomenis net ir atjungus energiją (skirtingai nei RAM Greitas ir nešvarus RAM vadovas: ką reikia žinotiRAM yra svarbi kiekvieno kompiuterio sudedamoji dalis, tačiau ji gali kelti painiavą. Mes ją suskaidome lengvai suprantama prasme. Skaityti daugiau , kuriam reikia elektros energijos, kad būtų galima išsaugoti bet kokius duomenis).

EEPROM yra integruotas į daugybę procesorių, tokių kaip lauko programuojamas vartų matricas (FPGA), naudojamas Matricos kūrėjas „Matrix“ kūrėjas, skirtas „Raspberry Pi“ apžvalgai„Matrix“ kūrėjas yra jūsų „Pi“ šveicarų armijos peilis, turintis 15 jutiklių, ryšių protokolų rinkinį, RGB šviesos diodų žiedą, mikrofono masyvą ir dar daugiau! Skaityti daugiau Pi HAT. Visuose „Arduinos“ įrenginiuose yra EEPROM, tačiau kiekvieno modelio talpa skiriasi. Įsitikinkite, kad pažvelgėte į mūsų pirkimo vadovas „Arduino“ pirkimo vadovas: kurią lentą turėtumėte gauti?Yra tiek daug įvairių „Arduino“ lentų, jums bus atleista už supainiojimą. Ką turėtumėte nusipirkti savo projektui? Padėkime mums su šiuo Arduino pirkimo vadovu! Skaityti daugiau daugiau informacijos kiekvienoje lentoje.
Kaip tai veikia?
EEPROM yra elektra trinamas ir programuojamas naudojant Fowlerio-Nordheimo tunelis. Jums nereikia žinoti techninės informacijos, kad galėtumėte ja naudotis. Pagrindinė prielaida yra ta, kad dvejetainiams duomenims pakeisti naudojama elektra (kas yra dvejetainis Kas yra dvejetainis? [Technologijos paaiškinta]Atsižvelgiant į tai, kad dvejetainis kompiuteris yra be galo svarbus, atrodo keista, kad mes niekada anksčiau nenagrinėjome šios temos - todėl šiandien pagalvojau, kad trumpai apžvelgsiu, kas yra dvejetainis ... Skaityti daugiau ). Jį galima perskaityti, ištrinti ir perrašyti elektroniniu būdu.
Laimei Arduino kalba leidžia lengvai pakeisti duomenis, nereikia ir informatikos laipsnio.

Gyvenimo trukmė
Nors Arduino mieste yra lengva naudoti EEPROM, jo gyvenimas yra ribotas. Nurodyta, kad EEPROM turi valdyti 100 000 skaitymo / ištrynimo ciklų. Tai reiškia, kad galite parašyti ir ištrinti / perrašyti duomenis 100 000 kartų, kol EEPROM taps nestabilus. Realybėje, Atmelis („Arduino“ lusto gamintojai) puslaidininkiai gali valdyti didesnį ar mažesnį ciklų skaičių, atsižvelgiant į kiekvieno procesoriaus leistinus nuokrypius.

Parašius ir per daug kartų ištrynus vietą, ji gali tapti nepatikima. Tai gali negrąžinti teisingų duomenų arba grąžinti vertę iš kaimyninio bito.
Tai gali atrodyti kaip daug rašančių, tačiau šią ribą gali būti lengva pasiekti, jei skaitote ir rašote programiškai (a kilpa, pavyzdžiui). Duomenų skaitymas silicio nesunaikina, tik rašo. Galite be baimės skaityti duomenis iš EEPROM, kiek tik norite!
Svarbu atminti, kad ši riba taikoma kiekvienai atminties vietai. Jūsų „Arduino“ gali būti 1000 ar daugiau atminties vietų, pasiekiamų EEPROM, taigi, jei per daug kartų rašote į vieną vietą, paveikiama tik ta vieta, o ne kuri kita. Vėliau aš diskutuoju dėvėti išlyginimą, o tai gali sumažinti EEPROM susidėvėjimą paskirstant duomenis tolygiai - tai kažkas SSD Kaip įvertinti likusį jūsų VSD tarnavimo laikąVisų SSD diskų gyvenimo trukmė yra ribota dėl rašymo ciklų (nors šis tarnavimo laikas yra daug ilgesnis, nei jūs galite pamanyti). Štai kaip galite įvertinti, kiek arti esate iki galo. Skaityti daugiau pasinaudoti.
Kam tai naudinga?
EEPROM yra nepaprastai naudinga jūsų Arduino projektams. Duomenis prisimenant net ir atjungus energiją galėtumėte išsaugoti Arduino valstiją. Gal galėtum pastatyti lazerinis bokštelis Šaudymo garsas! Kaip sukurti lazerinį bokštą su ArduinoAr tau nuobodu? Taip pat gali pastatyti lazerinį bokštelį. Skaityti daugiau kuris prisimena savo poziciją arba kiek liko „amunicijos“. Jūs galite tuo naudotis valdyti savo prietaisus Valdykite „Arduino“ prietaisus: namų automatizavimo pradžiaPraėjusį kartą aš jums parodžiau keletą būdų, kaip padaryti „Arduino“ projektus kalbą kontroliuojamą per „SiriProxy“, OS X įmontuoti aiškūs elementai ir kai kurie „Automator“ scenarijai ar net skirta balso atpažinimo aparatūra lustas. Aš ... Skaityti daugiau ir prisijunkite, kiek kartų buvo suaktyvintas jūsų prietaisas.
EEPROM labiausiai tinka tokiems dalykams kaip nustatymai ar aukšti balai. Jei norite reguliariai rašyti sudėtingus duomenis, pagalvokite apie eterneto skydas Padovanokite „Arduino“ projektui savo „Mini-Webserver“ su eterneto skyduPrieš kurį laiką aš jums parodiau, kaip sukonfigūruoti interneto valdymo sistemą savo „Arduino“ - bet ji turėjo išlikti prijungta prie kompiuterio per USB, kad galėtų išlaikyti interneto ryšį ... Skaityti daugiau (su įmontuotu SD lizdu) arba a Aviečių pi Raspberry Pi: Neoficialus vadovėlisNesvarbu, ar esate dabartinis „Pi“ savininkas, norintis sužinoti daugiau, ar potencialus šio kredito kortelės dydžio įrenginio savininkas, tai nėra vadovas, kurio norite praleisti. Skaityti daugiau .

Skaityti ir rašyti
Dabar, kai teorija yra netinkama, pažvelkime, kaip skaityti ir rašyti duomenis! Pirmiausia įtraukite biblioteką (tai yra „Arduino IDE“):
# įtraukti
Dabar parašykite keletą duomenų:
EEPROM.write (0, 12);
Tai užrašo numerį 12 į EEPROM vietą 0. Kiekvienas rašymas trunka 3,3 milisekundės (ms, 1000ms = 1 sekundė). Atkreipkite dėmesį, kaip negalite rašyti laiškų (char) leidžiami tik skaičiai nuo nulio iki 255. Štai kodėl EEPROM yra idealus nustatymams ar aukštiems rezultatams, bet ne toks geras žaidėjų vardams ar žodžiams. Šiuo metodu galima laikyti tekstą (kiekvieną abėcėlės raidę galite susieti su skaičiumi), tačiau turėsite turėti keletą atminties vietų - po vieną vietą kiekvienai raidei.
Štai kaip jūs skaitote tuos duomenis:
EEPROM.read (0);
Nulis yra adresas, kurį anksčiau rašėte. Jei anksčiau nerašėte adresu, jis grąžins maksimalią vertę (255).
Yra keletas naudingesnių metodų. Tarkime, kad norėjote išsaugoti dešimtainę trupmeną arba eilutę:
„EEPROM.put“ (2, „12,67“);
Tai užrašo duomenis keliose vietose - tai, ką būtų nesunku patiems susirašyti, tačiau tai patogu. Vis tiek turėsite sekti, kiek vietų tai parašė, kad netyčia neperrašytumėte savo duomenų! Jūs turite naudoti gauti būdas vėl gauti šiuos duomenis:
plūdės f = 0,00f; EEPROM.get (2, f);
Gauta vertė yra kaupiama plūdėje f kintamasis. Atkreipkite dėmesį, kaip tai inicijuojama 0,00f kaip vertė. f leidžia kompiliatoriui žinoti, kad galbūt norėsite išsaugoti didelį skaičių šiame kintamajame, todėl kompiliavimo metu jis nustato keletą papildomų konfigūracijų.
EEPROM dokumentacija ant „Arduino“ svetainė turi daug daugiau pavyzdžių.
Dėvėti išlyginimą
Susidėvėjimo išlyginimas yra technika, naudojama norint sumažinti nusidėvėjimą ir padidinti EEPROM tarnavimo laiką. Jei dirbate tik prie nedidelio projekto, jums gali nereikėti dėl to jaudintis.

Paprasčiausias dalykas, kurį galite padaryti, kad išsaugotumėte EEPROM gyvenimą, yra tik jūsų rašymas tam tikroje vietoje. Tai galite padaryti pirmiausia perskaitydami adresą ir jei jau yra ta reikšmė, kurią norite parašyti, nereikia jo dar kartą rašyti (atminkite, kad duomenų skaitymas nekenkia). Štai kaip tai padarysite:
int safeWrite (vidiniai duomenys, adresas) {if (EEPROM.read (adresas)! = duomenys) {EEPROM.write (adresas, duomenys); } }
Tai gana paprastas bitų kodas, tačiau jis tinka tik sveikiems skaičiams! Užuot išradę ratą, naudokitės funkcija, įmontuota Arduino EEPROM bibliotekoje:
EEPROM.update (adresas, val.);
Šis metodas turi lygiai tokį patį parašą kaip ir rašyti metodas, nors jis gali drastiškai sumažinti reikalingų rašymų skaičių!
Jei jums reikia parašyti daug duomenų ir esate susirūpinę dėl silicio nusidėvėjimo, galite sekti, kiek rašote, nors tai reikalauja daugiau duomenų. Tai yra grubus įgyvendinimas pseudokodas:
var adresas = 0. var writeCount = 0, jei (writeCount> 75 000) writeCount = 0 adresas + = 1 EEPROM.write (adresas, duomenys)
Turėsite saugoti adresą ir „WriteCount“ EEPROM (ir „WriteCount“ reikės padalyti į adresų vietas). Dažniausiai toks apsaugos lygis nebus būtinas. „Arduinos“ taip pat yra pigūs, todėl jums gali būti lengviau nusipirkti atsarginę kopiją!
Dabar turėtumėte pakankamai žinoti, kad galėtumėte sukurti keletą nuostabių projektų. Praneškite mums, jei pagaminsite ką nors šaunaus! Ar galite atpažinti visus paveikslėliuose esančius prietaisus? Palikite mums komentarą žemiau!
Džo yra baigusi kompiuterių mokslą Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ar nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.