Sisukord:
Video: Teie Arduino sisseehitatud EEPROM: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Selles artiklis uurime meie Arduino tahvlite sisemist EEPROM -i. Mida EEPROM mõned teist võivad öelda? EEPROM on elektriliselt kustutatav programmeeritav kirjutuskaitstud mälu.
See on püsimälu vorm, mis mäletab asju, kui toide on välja lülitatud või pärast Arduino lähtestamist. Sellise mälu ilu seisneb selles, et saame visandis loodud andmeid püsivamalt salvestada.
Miks peaksite kasutama sisemist EEPROM -i? Olukordades, kus olukorrale ainuomased andmed vajavad püsivamat kodu. Näiteks kaubandusliku Arduino-põhise projekti kordumatu seerianumbri ja tootmiskuupäeva salvestamine-visandi funktsioon võib seerianumbrit kuvada LCD-ekraanil või andmeid saab lugeda teenusvisandi üleslaadimisega. Või peate loendama teatud sündmused ja mitte lubama kasutajal neid lähtestada-näiteks läbisõidumõõdik või töötsükli loendur.
Samm: milliseid andmeid saab salvestada?
Kõik, mida saab esitada andmebaitidena. Üks bait andmeid koosneb kaheksast andmebittist. Bitt võib olla sisse lülitatud (väärtus 1) või välja lülitatud (väärtus 0) ja sobib ideaalselt numbrite esitamiseks binaarses vormis. Teisisõnu, binaararv võib väärtuse esitamiseks kasutada ainult nulle ja üksikuid. Seega on binaarne tuntud ka kui „baas-2”, kuna see võib kasutada ainult kahte numbrit.
Kuidas saab binaarne number, mis kasutab ainult kahte numbrit, kujutada suuremat arvu? See kasutab palju üksikuid ja nulle. Uurime kahendarvu, näiteks 10101010. Kuna see on baas-2 arv, tähistab iga number 2 x-i astmeni, alates x = 0.
2. samm:
Vaadake, kuidas kahendnumbri iga number võib kujutada 10-põhist numbrit. Seega kujutab ülaltoodud binaararv baas-10-s 85-väärtus 85 on baas-10 väärtuste summa. Teine näide - 11111111 binaarses võrdub alusega 10 255.
3. samm:
Nüüd kasutab selle kahendnumbri iga number ühte "bitti" mälu ja kaheksa bitti moodustavad baidi. Meie Arduino tahvlite mikrokontrollerite sisemiste piirangute tõttu saame EEPROM-is salvestada ainult 8-bitiseid numbreid (üks bait).
See piirab arvu kümnendväärtuse vahemiku nullist kuni 255. Seejärel on teie otsustada, kuidas teie andmeid selle numbrivahemikuga esitada. Ärge laske sellel end heidutada - õigesti paigutatud numbrid võivad esindada peaaegu kõike! Tuleb arvestada ühe piiranguga - mitu korda saame EEPROM -i lugeda või kirjutada. Tootja Atmeli sõnul sobib EEPROM 100 000 lugemis-/kirjutamistsükli jaoks (vt andmelehte).
4. samm:
Nüüd teame oma bitti ja baiti, kui palju baite saab meie Arduino mikrokontrollerisse salvestada? Vastus varieerub sõltuvalt mikrokontrolleri mudelist. Näiteks:
- Lauad Atmel ATmega328 -ga, näiteks Arduino Uno, Uno SMD, Nano, Lilypad jne - 1024 baiti (1 kilobait)
- Lauad, millel on Atmel ATmega1280 või 2560, näiteks Arduino Mega seeria - 4096 baiti (4 kilobaiti)
- Lauad Atmel ATmega168 -ga, näiteks originaalne Arduino Lilypad, vana Nano, Diecimila jne - 512 baiti.
Kui te pole milleski kindel, vaadake Arduino riistvaraindeksit või küsige plaadi tarnijalt. Kui vajate rohkem EEPROM -i salvestusruumi kui see, mis on saadaval teie mikrokontrolleriga, kaaluge välise I2C EEPROM -i kasutamist.
Siinkohal mõistame nüüd, milliseid andmeid ja kui palju saab meie Arduino EEPROM -i salvestada. Nüüd on aeg see teoks teha. Nagu varem arutatud, on meie andmete jaoks piiratud hulk ruumi. Järgmistes näidetes kasutame tüüpilist Arduino plaati koos ATmega328 -ga, millel on 1024 baiti EEPROM -i salvestusruumi.
5. samm:
EEPROMi kasutamiseks on vaja raamatukogu, seega kasutage oma visandites järgmist raamatukogu:
#include "EEPROM.h"
Ülejäänud on väga lihtne. Andmete salvestamiseks kasutame järgmist funktsiooni:
EEPROM.write (a, b);
Parameeter a on asukoht EEPROMis andmete täisarvu (0 ~ 255) salvestamiseks. Selles näites on meil 1024 baiti mälusalvestust, seega on a väärtus vahemikus 0 kuni 1023. Andmetüki toomine on sama lihtne, kasutage järgmist:
z = EEPROM.lugemine (a);
Kus z on täisarv EEPROMi positsiooni andmete salvestamiseks a. Nüüd näite vaatamiseks.
6. samm:
See visand loob juhuslikke numbreid vahemikus 0 kuni 255, salvestab need EEPROM -i, seejärel otsib ja kuvab need jadamonitoril. Muutuv EE -suurus on teie EEPROM -i suuruse ülempiir, seega (näiteks) oleks see Arduino Uno puhul 1024 või Mega puhul 4096.
// Arduino sisemine EEPROM -i demonstratsioon
#kaasake
int zz; int EEsize = 1024; // teie plaadi EEPROM -i baitide suurus
tühine seadistus ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Juhuslike numbrite kirjutamine …"); jaoks (int i = 0; i <EEsize; i ++) {zz = juhuslik (255); EEPROM.write (i, zz); } Serial.println (); jaoks (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("EEPROMi positsioon:"); Seeriatrükk (a); Serial.print ("sisaldab"); Seeria.println (zz); viivitus (25); }}
Ilmub jadamonitori väljund, nagu pildil näidatud.
Siin on see veel üks kasulik viis andmete salvestamiseks meie Arduino süsteemidega. Kuigi see pole kõige põnevam õpetus, on see kindlasti kasulik.
Selle postituse tõi teile pmdway.com - kõik tegijatele ja elektroonikahuvilistele, tasuta kohaletoimetamine kogu maailmas.
Soovitan:
PORTEERITAV MINI MULTI VOLTAGE PSU USB, FLASHLIGHT, COMPONENT TESTER ja sisseehitatud laadija: 6 sammu
PORTEERITAV MINI MITMEPINGELINE PSU, USB, LÄBIVALGUS, KOMPONENT-TESTER JA SISSEJUHATATUD LAADIMINE: Tere tulemast minu esimese juhendatava juurde! Selle juhendi abil saate muuta veidra/odava päikeseenergia panga (koos mõne lisaosaga) millekski kasulikuks. Midagi, mida saate kasutada iga päev, nagu mina, sest seda on tõesti suurepärane kasutada! Enamik av
Automaatne raudteeületussüsteem, mis kasutab Arduino -põhist sisseehitatud platvormi: 9 sammu
Automaatne raudteeületussüsteem, mis kasutab Arduino -põhist sisseehitatud platvormi: jõulud on vaid nädala kaugusel! Kõik on hõivatud pidustuste ja kingituste hankimisega, mida muide on lõputute võimalustega meie ümber veelgi raskem saada. Kuidas oleks minna klassikalise kingituse juurde ja lisada veidi isetegemist
Nutikas korvpallimäng koos punktide loendusrõngastega, kasutades Evive-Arduino sisseehitatud platvormi: 13 sammu
Nutikas korvpallimäng koos punktide loendusrõngastega, kasutades Evive-Arduino sisseehitatud platvormi: Kõigist mängudest on kõige lõbusamad arkaadmängud. Niisiis, mõtlesime, miks mitte teha seda ise kodus! Ja siin me oleme, kõige lõbusam DIY mäng, mida olete siiani mänginud - DIY Arcade Basketball Game! Mitte ainult pole
Arduino MEGA 2560 koos sisseehitatud WiFi -ga - ESP8266: 10 sammu
Arduino MEGA 2560 koos sisseehitatud WiFi -ga - ESP8266: Tänases tekstis arutleme Arduino üle, mida pean äärmiselt eriliseks, kuna selle pardal on ESP8266. Sellel pole ESP12 plaadile joodetud. Selle asemel on sellel Espressifi kiip. Niisiis, plaadil on teil sisseehitatud
Salapära kollased täpid: kas teie printer nuhkib teie järele?: 5 sammu (piltidega)
Salapära kollased punktid: kas teie printer nuhkib teie järele?: Kujutage ette, et iga kord, kui printite dokumendi, sisaldab see automaatselt salajast koodi, mida saab kasutada printeri ja potentsiaalselt ka selle isiku tuvastamiseks. Kõlab nagu spioonifilmist, eks? Kahjuks on stsenaarium