Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
Šiame straipsnyje mes išnagrinėsime vidinį EEPROM mūsų „Arduino“plokštėse. Ką kai kurie iš jūsų gali pasakyti EEPROM? EEPROM yra elektra ištrinama programuojama tik skaitoma atmintis.
Tai yra nepastovios atminties forma, galinti prisiminti dalykus išjungus maitinimą arba iš naujo nustatius „Arduino“. Šio tipo atminties grožis yra tas, kad eskizo metu sugeneruotus duomenis galime saugoti nuolat.
Kodėl turėtumėte naudoti vidinį EEPROM? Situacijoms, kai konkrečiai situacijai būdingiems duomenims reikia pastovesnių namų. Pavyzdžiui, išsaugojus komercinio „Arduino“projekto unikalų serijos numerį ir pagaminimo datą-eskizo funkcija gali parodyti serijos numerį LCD ekrane arba duomenis galima nuskaityti įkėlus „paslaugų eskizą“. Arba gali tekti suskaičiuoti tam tikrus įvykius ir neleisti vartotojui jų iš naujo nustatyti, pvz., Odometrą ar veikimo ciklo skaitiklį.
1 žingsnis: Kokius duomenis galima saugoti?
Viskas, ką galima pavaizduoti kaip duomenų baitus. Vieną duomenų baitą sudaro aštuoni duomenų bitai. Bitas gali būti įjungtas (1 vertė) arba išjungtas (0 reikšmė) ir puikiai tinka skaičiams atvaizduoti dvejetainėje formoje. Kitaip tariant, dvejetainis skaičius reikšmei reikšti gali naudoti tik nulius ir vienetus. Taigi dvejetainė taip pat žinoma kaip „bazė-2“, nes ji gali naudoti tik du skaitmenis.
Kaip dvejetainis skaičius, kuriame naudojami tik du skaitmenys, gali reikšti didesnį skaičių? Jis naudoja daug vienetų ir nulių. Panagrinėkime dvejetainį skaičių, tarkime, 10101010. Kadangi tai yra 2 bazinis skaičius, kiekvienas skaitmuo reiškia 2 iki x galios, nuo x = 0.
2 žingsnis:
Pažiūrėkite, kaip kiekvienas dvejetainio skaičiaus skaitmuo gali reikšti 10 bazinį skaičių. Taigi aukščiau pateiktas dvejetainis skaičius reiškia 85 bazėje 10-reikšmė 85 yra bazinės 10 reikšmių suma. Kitas pavyzdys - 11111111 dvejetainėje yra lygus 255 10 bazėje.
3 žingsnis:
Dabar kiekvienas to dvejetainio skaičiaus skaitmuo naudoja vieną „bitą“atminties, o aštuoni bitai sudaro baitą. Dėl vidinių mūsų „Arduino“plokščių mikrovaldiklių apribojimų EEPROM galime saugoti tik 8 bitų numerius (vieną baitą).
Tai riboja dešimtainę skaičiaus vertę nuo nulio iki 255. Tuomet jūs turite nuspręsti, kaip jūsų duomenys gali būti pateikiami naudojant tą skaičių diapazoną. Neleiskite, kad tai jus nuliūdintų - teisingai išdėstyti skaičiai gali reikšti beveik viską! Yra vienas apribojimas, į kurį reikia atkreipti dėmesį - kiek kartų galime skaityti ar rašyti EEPROM. Pasak gamintojo „Atmel“, EEPROM tinka 100 000 skaitymo/rašymo ciklų (žr. Duomenų lapą).
4 žingsnis:
Dabar mes žinome savo bitus ir baitus, kiek baitų galima saugoti mūsų „Arduino“mikrovaldiklyje? Atsakymas skiriasi priklausomai nuo mikrovaldiklio modelio. Pavyzdžiui:
- Lentos su „Atmel ATmega328“, pvz., „Arduino Uno“, „Uno SMD“, „Nano“, „Lilypad“ir kt. - 1024 baitai (1 kilobaitas)
- Lentos su „Atmel ATmega1280“arba „2560“, pvz., „Arduino Mega“serija - 4096 baitai (4 kilobaitai)
- Lentos su „Atmel ATmega168“, pvz., Originali „Arduino Lilypad“, senas „Nano“, „Diecimila“ir kt. - 512 baitų.
Jei nesate tikri, pažvelkite į „Arduino“aparatūros indeksą arba paprašykite savo lentos tiekėjo. Jei jums reikia daugiau EEPROM atminties, nei yra prieinama su jūsų mikrovaldikliu, apsvarstykite galimybę naudoti išorinį I2C EEPROM.
Šiuo metu mes suprantame, kokie duomenys ir kiek jų gali būti saugomi mūsų „Arduino“EEPROM. Dabar atėjo laikas tai įgyvendinti. Kaip aptarta anksčiau, mūsų duomenims yra ribotas kiekis vietos. Tolesniuose pavyzdžiuose naudosime tipišką „Arduino“plokštę su ATmega328 su 1024 baitais EEPROM saugyklos.
5 veiksmas:
Norint naudoti EEPROM, reikalinga biblioteka, todėl eskizuose naudokite šią biblioteką:
#include "EEPROM.h"
Likusi dalis yra labai paprasta. Norėdami išsaugoti duomenis, naudojame šią funkciją:
EEPROM.write (a, b);
Parametras a yra vieta EEPROM, kurioje saugomas sveikasis skaičius (0 ~ 255) b. Šiame pavyzdyje turime 1024 baitus atminties, todėl a reikšmė yra nuo 0 iki 1023. Jei norite gauti duomenų dalį, taip pat paprasta, naudokite:
z = EEPROM.paskaitymas (a);
Kur z yra sveikas skaičius duomenims iš EEPROM padėties saugoti a. Dabar, norėdami pamatyti pavyzdį.
6 žingsnis:
Šis eskizas sukurs atsitiktinius skaičius nuo 0 iki 255, išsaugos juos EEPROM, tada nuskaitys ir parodys serijiniame monitoriuje. Kintamas EE dydis yra viršutinė jūsų EEPROM dydžio riba, todėl (pavyzdžiui) tai būtų 1024 „Arduino Uno“arba 4096 „Mega“.
// „Arduino“vidinė EEPROM demonstracija
#įtraukti
int zz; int EEsize = 1024; // dydis jūsų plokštės EEPROM baitais
negaliojanti sąranka ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Atsitiktinių skaičių rašymas …"); už (int i = 0; i <EEsize; i ++) {zz = atsitiktinis (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print („EEPROM padėtis:“); Serijinis atspaudas (a); Serial.print ("yra"); Serial.println (zz); vėlavimas (25); }}
Bus parodytas serijinio monitoriaus išėjimas, kaip parodyta paveikslėlyje.
Taigi, jūs turite tai dar vienas naudingas būdas saugoti duomenis mūsų „Arduino“sistemose. Nors tai nėra pati įdomiausia pamoka, ji tikrai naudinga.
Šį įrašą jums pateikė pmdway.com - viskas gamintojams ir elektronikos entuziastams, nemokamas pristatymas visame pasaulyje.
Rekomenduojamas:
Nešiojamas mini įtampos maitinimo šaltinis su USB, blykstė, sudėtinis testeris ir įmontuotas įkroviklis: 6 žingsniai
Nešiojamas mini įtampos maitinimo šaltinis su USB, blykstė, sudėtinis testeris ir įmontuotas įkroviklis: Sveiki atvykę į mano pirmą pamokomą! Naudodami šį nurodymą galite paversti sumanų/pigų saulės energijos banką (su kai kuriomis papildomomis dalimis) į kažką naudingo. Kažką, ką galite naudoti kiekvieną dieną, kaip ir aš, nes tai tikrai puiku! Dauguma av
„Steam Punk“jūsų UPS, kad jūsų „Wi-Fi“maršrutizatorius veiktų valandomis: 4 žingsniai (su nuotraukomis)
„Steam Punk“jūsų UPS, kad jūsų „Wi-Fi“maršrutizatorius veiktų valandomis: yra kažkas iš esmės prieštaraujančio, kad jūsų UPS konvertuotų 12 V nuolatinės srovės akumuliatoriaus energiją į 220 V kintamosios srovės maitinimą, kad transformatoriai, kuriuose veikia jūsų maršrutizatorius ir pluošto ONT, galėtų juos vėl paversti 12V DC! Jūs taip pat priešinatės [paprastai
Jūsų išmanusis automobilis ir ne tik „HyperDuino+R V3.5R“su „Funduino“/„Arduino“: 4 žingsniai
Jūsų nuosavas išmanusis automobilis ir ne tik „HyperDuino+R V3.5R“su „Funduino“/„Arduino“: tai tiesioginė šio instrukcijų rinkinio kopija ČIA. Norėdami gauti daugiau informacijos, eikite į „HyperDuino.com“. Naudodamiesi „HyperDuino+R v4.0R“galite pradėti žvalgymo kelią įvairiomis kryptimis, pradedant variklių valdymu ir baigiant elektronikos tyrimais
Mobiliojo telefono baterijos atnaujinimas jūsų „Arduino“projektui: 3 žingsniai
Mobiliojo telefono baterijos pakartotinis panaudojimas jūsų „Arduino“projektui: taip perdirbau seną mobiliojo telefono bateriją, kad galėčiau naudoti „arduino“projektą. Šis dalelių tipas yra 2000 mAh „Nokia BLY4W“. Tačiau naudojami metodai yra įprasti daugelyje telefono baterijų. Ši baterija staiga mirė, rodydama 0 v
Seno maršrutizatoriaus dėžutės pertvarkymas jūsų „Arduino“projektui: 3 žingsniai
Seno maršrutizatoriaus dėžutės pertvarkymas jūsų „Arduino“projektui: Šis projektas atsirado dėl poreikio įdiegti mano namų automatizavimo projektą. Aš nusprendžiau iš naujo paskirti bylą iš seno sugedusio „PlusNet“maršrutizatoriaus („Thomson TG585“maršrutizatorius). gaubtas buvo :: Žemo profilio sieninė dėžutė Lengvai nuimamas dangtelis