Sadržaj:
Video: Ugrađeni EEPROM vašeg Arduina: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
U ovom članku ćemo ispitati unutarnji EEPROM na našim Arduino pločama. Što neki od vas možda govore o EEPROM -u? EEPROM je električno izbrisiva programabilna memorija samo za čitanje.
To je oblik nepromjenjive memorije koja može pamtiti stvari s isključenim napajanjem ili nakon resetiranja Arduina. Ljepota ove vrste memorije je u tome što podatke generirane unutar skice možemo pohraniti na trajnijoj osnovi.
Zašto biste koristili unutarnji EEPROM? Za situacije u kojima podaci koji su jedinstveni za određenu situaciju trebaju stalniji dom. Na primjer, pohranjivanje jedinstvenog serijskog broja i datuma proizvodnje komercijalnog projekta zasnovanog na Arduinu-funkcija skice mogla bi prikazati serijski broj na LCD-u ili bi se podaci mogli čitati postavljanjem "skice usluge". Ili ćete možda morati prebrojati određene događaje i ne dopustiti korisniku da ih poništi-poput brojača kilometara ili brojača radnih ciklusa.
Korak 1: Koja se vrsta podataka može pohraniti?
Sve što se može predstaviti u bajtovima podataka. Jedan bajt podataka sastoji se od osam bitova podataka. Bit može biti uključen (vrijednost 1) ili isključen (vrijednost 0) i savršen je za predstavljanje brojeva u binarnom obliku. Drugim riječima, binarni broj može koristiti samo nule i jedinice za predstavljanje vrijednosti. Stoga je binarni naziv također poznat kao "baza-2", jer može koristiti samo dvije znamenke.
Kako binarni broj sa samo dvije znamenke može predstavljati veći broj? Koristi mnogo jedinica i nula. Ispitajmo binarni broj, recimo 10101010. Kako je ovo broj baze 2, svaka znamenka predstavlja 2 do stepena x, od x = 0 nadalje.
Korak 2:
Pogledajte kako svaka znamenka binarnog broja može predstavljati broj baze-10. Dakle, gornji binarni broj predstavlja 85 u bazi-10-vrijednost 85 je zbroj vrijednosti baze-10. Još jedan primjer - 11111111 u binarnom obliku jednako je 255 u bazi 10.
3. korak:
Sada svaka znamenka u tom binarnom broju koristi jedan 'bit' memorije, a osam bita čini bajt. Zbog unutarnjih ograničenja mikrokontrolera na našim Arduino pločama, možemo pohraniti samo 8-bitne brojeve (jedan bajt) u EEPROM.
To ograničava da decimalna vrijednost broja padne između nule i 255. Na vama je da odlučite kako se vaši podaci mogu prikazati s tim rasponom brojeva. Ne dopustite da vas to odbije - brojevi raspoređeni na ispravan način mogu predstavljati gotovo sve! Postoji jedno ograničenje na koje treba obratiti pažnju - koliko puta možemo čitati ili pisati na EEPROM. Prema proizvođaču Atmel, EEPROM je dobar za 100 000 ciklusa čitanja/pisanja (vidi podatkovnu tablicu).
Korak 4:
Sada znamo naše bitove i i bajtove, koliko se bajtova može pohraniti u mikrokontroler našeg Arduina? Odgovor se razlikuje ovisno o modelu mikrokontrolera. Na primjer:
- Ploče s Atmel ATmega328, poput Arduino Uno, Uno SMD, Nano, Lilypad itd. - 1024 bajta (1 kilobajt)
- Ploče s Atmel ATmega1280 ili 2560, poput Arduino Mega serije - 4096 bajtova (4 kilobajta)
- Ploče s Atmel ATmega168, poput originalnog Arduino Lilypada, starog Nanoa, Diecimile itd. - 512 bajtova.
Ako niste sigurni, pogledajte Arduino hardverski indeks ili pitajte dobavljača ploče. Ako vam je potrebno više prostora za pohranu EEPROM -a nego što je dostupno s vašim mikrokontrolerom, razmislite o upotrebi vanjskog I2C EEPROM -a.
U ovom trenutku sada razumijemo kakve se vrste podataka i koliko mogu pohraniti u naš Arduino EEPROM. Sada je vrijeme da se ovo provede u djelo. Kao što je ranije rečeno, za naše podatke postoji ograničena količina prostora. U sljedećim primjerima koristit ćemo tipičnu Arduino ploču s ATmega328 s 1024 bajta EEPROM memorije.
5. korak:
Za korištenje EEPROM -a potrebna je knjižnica, pa u skicama koristite sljedeću biblioteku:
#include "EEPROM.h"
Ostalo je vrlo jednostavno. Za spremanje dijela podataka koristimo sljedeću funkciju:
EEPROM.pisati (a, b);
Parametar a je položaj u EEPROM -u za spremanje cijelog broja (0 ~ 255) podataka b. U ovom primjeru imamo 1024 bajta memorije za pohranu, pa je vrijednost a između 0 i 1023. Da biste dohvatili dio podataka jednako je jednostavno, upotrijebite:
z = EEPROM.čitaj (a);
Gdje je z cijeli broj za pohranu podataka s položaja EEPROM -a a. Sada da vidimo primjer.
Korak 6:
Ova će skica stvoriti slučajne brojeve između 0 i 255, pohraniti ih u EEPROM, zatim ih dohvatiti i prikazati na serijskom monitoru. Varijabla EEsize gornja je granica vaše veličine EEPROM -a, pa bi (na primjer) to bilo 1024 za Arduino Uno ili 4096 za Mega.
// Arduino interna demonstracija EEPROM -a
#uključi
int zz; int EEsize = 1024; // veličina u bajtima EEPROM -a vaše ploče
void setup ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Zapisivanje slučajnih brojeva …"); za (int i = 0; i <EEsize; i ++) {zz = slučajno (255); EEPROM.pisati (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("Položaj EEPROM -a:"); Serijski.ispis (a); Serial.print ("sadrži"); Serijski.println (zz); kašnjenje (25); }}
Pojavit će se izlaz sa serijskog monitora, kao što je prikazano na slici.
Evo ga, još jedan koristan način za pohranu podataka s našim Arduino sustavima. Iako nije najuzbudljiviji vodič, svakako je koristan.
Ovaj post vam donosi pmdway.com - sve za proizvođače i ljubitelje elektronike, uz besplatnu dostavu diljem svijeta.
Preporučeni:
Ugrađeni LED zaslon Arduino igre: 7 koraka (sa slikama)
Ugrađeni LED zaslon Arduino igre: poznat i kao LED sustav za igru s ljestvama. Attiny-85 opremljen hardverom i softverom za reprodukciju akcijskog " videa " igre, na linijskom LED zaslonu. Ima multipleksirani 12 LED ljestveni zaslon i podržava do 6 ulaza s gumbima i optički
Ugrađeni upravitelj prozora: 10 koraka
Ugrađeni upravitelj prozora: Ovaj projekt pokazuje kako implementirati upravitelj prozora s pomičnim preklopljenim prozorima na ugrađenom mikrokontroleru s LCD zaslonom i zaslonom osjetljivim na dodir. Za to postoje komercijalno dostupni softverski paketi, ali oni koštaju i blizu su
Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina na IP mrežu?: 11 koraka (sa slikama)
Kako napraviti vlastiti WIFI pristupnik za povezivanje vašeg Arduina s IP mrežom?: Kao i mnogi ljudi mislite da je Arduino vrlo dobro rješenje za kućnu automatizaciju i robotizaciju! No, u smislu komunikacije, Arduinos dolazi samo sa serijskim vezama. Radim na robotu koji mora biti trajno povezan sa poslužiteljem koji radi
Vodič za uspavljivanje vašeg Arduina: 5 koraka
Vodič za uspavljivanje vašeg Arduina: Ponekad smo u situaciji koja zahtijeva da stavimo Arduino na mjesto gdje njegovo uključivanje u električnu mrežu nije opcija. To se često događa kada pokušamo zabilježiti podatke na udaljenoj web stranici ili samo trebate aktivirati svoj Arduino na
Recikliranje vašeg starog prekidača za prigušivanje zraka kao promjenjive kontrole temperature vašeg lemilice: 7 koraka
Recikliranje vašeg starog prekidača za prigušivanje zraka kao varijabilna kontrola temperature vašeg lemilice: Vidio sam mnogo profesionalnih kontrola promjenjive temperature lemilice, ali preskupih. Tako sam napravio jedan od starog prekidača za prigušivanje, utičnice, ploče i utikača koji su već bili bezvrijedni i neke stare PVC kutije s prekidačima koja je došla s njim i tako