Sadržaj:
Video: Ugrađeni EEPROM vašeg Arduina: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
U ovom članku ćemo ispitati interni EEPROM na našim Arduino pločama. Šta je to EEPROM koji neki od vas možda govore? EEPROM je električno izbrisiva programabilna memorija samo za čitanje.
To je oblik stalne memorije koja može pamtiti stvari s isključenim napajanjem ili nakon resetiranja Arduina. Ljepota ove vrste memorije je u tome što možemo generirati podatke generirane unutar skice na trajnijoj osnovi.
Zašto biste koristili interni EEPROM? Za situacije u kojima podaci koji su jedinstveni za određenu situaciju trebaju stalniji dom. Na primjer, spremanje 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 „servisne skice“. 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 vrsta podataka se 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 binarno ime poznato i kao "baza-2", jer može koristiti samo dvije znamenke.
Kako binarni broj koji koristi 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 zbir vrijednosti baze-10. Još jedan primjer - 11111111 u binarnom obliku je 255 u bazi 10.
Korak 3:
Sada svaka znamenka u tom binarnom broju koristi jedan ‘bit’ memorije, a osam bita čini bajt. Zbog internih ograničenja mikrokontrolera na našim Arduino pločama, možemo pohraniti samo 8-bitne brojeve (jedan bajt) u EEPROM.
Ovo ograničava da decimalna vrijednost broja padne između nule i 255. Na vama je da odlučite kako se vaši podaci mogu predstaviti u tom rasponu 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 -u. Prema proizvođaču Atmel, EEPROM je dobar za 100 000 ciklusa čitanja/pisanja (pogledajte tehnički list).
Korak 4:
Sada znamo naše bitove i i bajtove, koliko se bajtova može pohraniti u naš Arduino mikrokontroler? 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, kao što su originalni Arduino Lilypad, stari Nano, Diecimila itd. - 512 bajtova.
Ako niste sigurni, pogledajte Arduino hardverski indeks ili pitajte dobavljača ploče. Ako vam je potrebno više EEPROM prostora za pohranu od onog koji je dostupan 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 sprovede u djelo. Kao što je ranije rečeno, postoji ograničena količina prostora za naše podatke. U sljedećim primjerima koristit ćemo tipičnu Arduino ploču s ATmega328 s 1024 bajta EEPROM memorije.
Korak 5:
Za korištenje EEPROM -a potrebna je biblioteka, pa u skicama koristite sljedeću biblioteku:
#include "EEPROM.h"
Ostalo je vrlo jednostavno. Za spremanje dijela podataka koristimo sljedeću funkciju:
EEPROM.write (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 pozicije EEPROM -a a. Sada da vidimo primjer.
Korak 6:
Ova skica će stvoriti slučajne brojeve između 0 i 255, pohraniti ih u EEPROM, zatim ih dohvatiti i prikazati na serijskom monitoru. Varijabla EEsize je gornja 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
#include
int zz; int EEsize = 1024; // veličina u bajtovima EEPROM -a vaše ploče
void setup ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Pisanje slučajnih brojeva …"); for (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("Položaj EEPROM -a:"); Serial.print (a); Serial.print ("sadrži"); Serial.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 sistemima. Iako nije najuzbudljiviji vodič, svakako je koristan.
Ovaj post vam donosi pmdway.com - sve za proizvođače i ljubitelje elektronike, uz besplatnu dostavu širom svijeta.
Preporučuje se:
Ugrađeni LED ekran Arduino igre: 7 koraka (sa slikama)
Ugrađeni LED ekran Arduino igre: poznat i kao LED sistem za igru s ljestvama. Attiny-85 opremljen hardverom i softverom za reprodukciju akcionog " videa " igre, na linijskom LED ekranu. Poseduje multipleksirani 12 LED merdevni ekran i podržava do 6 ulaza sa tasterima i optičku
Ugrađeni upravitelj prozora: 10 koraka
Ugrađeni upravitelj prozora: Ovaj projekt pokazuje kako implementirati upravitelja prozora s pomičnim preklopljenim prozorima na ugrađenom mikrokontroleru sa LCD panelom i ekranom osjetljivim na dodir. Postoje komercijalno dostupni softverski paketi za to, ali koštaju novac 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 serverom koji radi
Vodič za uspavljivanje vašeg Arduina: 5 koraka
Vodič za uspavljivanje vašeg Arduina: Ponekad smo u situaciji koja zahtijeva od nas da stavimo Arduino na mjesto gdje njegovo uključivanje u električnu mrežu nije opcija. To se često događa kada pokušavamo evidentirati podatke na udaljenoj web lokaciji ili samo trebamo aktivirati vaš Arduino na
Recikliranje vašeg starog prekidača za prigušivanje zraka kao varijabilne kontrole temperature vašeg lemilice: 7 koraka
Recikliranje vašeg starog prekidača za prigušivanje zraka kao promenljive kontrole temperature vašeg lemilice: Video sam mnogo profesionalnih kontrola promenljive 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 otpad i neke stare PVC kutije s prekidačima koja je došla s njim i tako