Cuprins:

Inițializare setări Arduino EEPROM: 5 pași
Inițializare setări Arduino EEPROM: 5 pași

Video: Inițializare setări Arduino EEPROM: 5 pași

Video: Inițializare setări Arduino EEPROM: 5 pași
Video: PM - Cursul 0 (practic) 2024, Noiembrie
Anonim
Image
Image
Ce este o EEPROM?
Ce este o EEPROM?

Buna tuturor, Fiecare Arduino are o mică memorie încorporată numită EEPROM. Puteți utiliza acest lucru pentru a stoca setările pentru proiectul dvs., unde valorile alese vor fi păstrate între ciclurile de alimentare și vor fi acolo data viitoare când veți porni Arduino. Am un truc grozav care vă va învăța cum puteți iniția un set de valori implicite la prima dvs. rulare, așa că rămâneți în jur pentru a afla cum.

Pasul 1: Ce este o EEPROM?

Ce este o EEPROM?
Ce este o EEPROM?

O EEPROM este o mică memorie de stocare, ale cărei valori sunt păstrate chiar și în timp ce placa Arduino este oprită. Acesta acționează ca un mic hard disk, astfel încât să puteți stoca parametrii pentru următoarea pornire a dispozitivului. În funcție de tipul plăcii Arduino, veți avea o cantitate diferită de stocare disponibilă pe fiecare, astfel încât, de exemplu, Uno are 1024 octeți, Mega are 4096 octeți și LilyPad are 512 octeți.

Este important de reținut că toate EEPROM-urile au un număr limitat de cicluri de scriere. Atmel specifică o speranță de viață de aproximativ 100 000 de cicluri de scriere / ștergere pentru EEPROM pe Arduino. Acest lucru poate suna ca o mulțime de scrieri, dar poate fi ușor să atingi această limită dacă citești și scrii în buclă. Odată ce o locație a fost scrisă și ștearsă de prea multe ori poate începe să devină nesigură. Este posibil să nu returneze datele corecte sau să returneze valoarea de la un bit învecinat.

Pasul 2: Importați biblioteca

Importați biblioteca
Importați biblioteca
Importați biblioteca
Importați biblioteca
Importați biblioteca
Importați biblioteca

Pentru a utiliza această memorie, includem mai întâi biblioteca furnizată de Arduino. Biblioteca oferă două metode: citirea și scrierea pentru acțiunile corespunzătoare. Funcția de citire acceptă adresa din care dorim să citim, în timp ce funcția de scriere acceptă atât adresa, cât și valoarea pe care dorim să o scriem.

În exemplul nostru, scopul este să avem o serie de setări pregătite la fiecare pornire a Arduino, așa că începem prin definirea matricei pe care o vom folosi pentru stocare și definirea adreselor pentru fiecare dintre setările pe care dorim să le stocăm. Într-un cip în care avem 1024 de octeți disponibili, locațiile adreselor vor fi de la 0 la 1023.

Pasul 3: Setați pavilionul de inițializare

Setați steagul de inițializare
Setați steagul de inițializare

Trucul pentru setarea inițială a valorilor implicite pentru setări este de a utiliza una dintre adrese ca indicator, indiferent dacă setările au fost inițializate sau nu. Am folosit ultima locație de adresă pentru aceasta, deoarece de multe ori nu este folosită pentru altceva. Funcția loadSettings va verifica mai întâi această locație dacă valoarea stocată acolo are un caracter „T” și dacă nu, va merge setând prin setare, scriind valorile inițiale pentru fiecare dintre ele. După ce ați terminat, va seta acum valoarea locației în care urmărim setările inițiale la caracterul „T” și data viitoare când pornim Arduino, nu vom mai iniția valorile, ci vom citi datele salvate în matricea noastră.

Pasul 4: Actualizarea setărilor

Actualizarea setărilor
Actualizarea setărilor

Pentru actualizarea valorilor, putem folosi funcția de scriere așa cum am avut-o la inițializare, dar o modalitate mai bună este să folosim funcția de actualizare furnizată. Ceea ce face această funcție este că verifică mai întâi dacă valoarea pe care încercăm să o salvăm este aceeași deja în EEPROM și dacă este, atunci nu se actualizează. Procedând astfel, încearcă să minimizeze numărul de operații de scriere pentru a prelungi durata de viață a EEPROM.

Pasul 5: Bucurați-vă

Bucurați-vă!
Bucurați-vă!
Bucurați-vă!
Bucurați-vă!

Sper că acest Instructable ți-a fost de ajutor și că ai reușit să înveți ceva. Codul sursă este disponibil pe pagina mea GitHub și linkul este mai jos. Dacă aveți sugestii, lăsați-le jos în comentarii și nu uitați să vă abonați la canalul meu YouTube pentru mai multe videoclipuri similare.

Recomandat: