INHOUDSOPGAWE:

Initialisering van Arduino EEPROM -instellings: 5 stappe
Initialisering van Arduino EEPROM -instellings: 5 stappe

Video: Initialisering van Arduino EEPROM -instellings: 5 stappe

Video: Initialisering van Arduino EEPROM -instellings: 5 stappe
Video: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, November
Anonim
Image
Image
Wat is 'n EEPROM?
Wat is 'n EEPROM?

Haai almal, Elke Arduino het 'n klein ingeboude geheue genaamd EEPROM. U kan dit gebruik om instellings vir u projek op te slaan, waar die gekose waardes tussen die kragsiklusse gehou sal word en hulle sal daar wees volgende keer as u die Arduino aanskakel. Ek het 'n goeie truuk wat u sal leer hoe u 'n stel standaardwaardes op u eerste lopie kan begin, so hou vas om uit te vind hoe.

Stap 1: Wat is 'n EEPROM?

Wat is 'n EEPROM?
Wat is 'n EEPROM?

'N EEPROM is 'n klein geheue -stoorplek, waarvan die waardes bewaar word, selfs terwyl die Arduino -bord uitgeskakel is. Dit werk soos 'n klein hardeskyf, sodat u parameters kan stoor vir die volgende keer as u die toestel aanskakel. Afhangende van die tipe Arduino -bord, het u 'n ander hoeveelheid stoorplek op elkeen, dus byvoorbeeld het die Uno 1024 grepe, die Mega 4096 grepe en die LilyPad het 512 grepe.

Dit is belangrik om daarop te let dat alle EEPROM's 'n beperkte aantal skryf siklusse het. Atmel spesifiseer 'n lewensverwagting van ongeveer 100 000 skryf/vee siklusse vir die EEPROM op die Arduino. Dit klink miskien na baie skryfwerk, maar dit kan maklik wees om hierdie limiet te bereik as u in 'n lus lees en skryf. As 'n plek te veel keer geskryf en uitgevee is, kan dit onbetroubaar word. Dit mag nie die korrekte data teruggee nie, of die waarde van 'n naburige bit teruggee.

Stap 2: Voer die biblioteek in

Voer die biblioteek in
Voer die biblioteek in
Voer die biblioteek in
Voer die biblioteek in
Voer die biblioteek in
Voer die biblioteek in

Om hierdie geheue te gebruik, sluit ons eers die biblioteek van die Arduino in. Die biblioteek bied twee metodes: lees en skryf vir die ooreenstemmende aksies. Die leesfunksie aanvaar die adres waaruit ons wil lees, terwyl die skryffunksie die adres sowel as die waarde wat ons wil skryf, aanvaar.

In ons voorbeeld is die doel om 'n verskeidenheid instellings gereed te hê vir elke begin van die Arduino, dus begin ons met die definisie van die skikking wat ons vir die stoor gaan gebruik en die adresse definieer vir elk van die instellings wat ons wil stoor. In 'n chip waar ons 1024 grepe beskikbaar het, sal die adresplekke van 0 tot 1023 wees.

Stap 3: Stel die initialiseringsvlag

Stel die initialiseringsvlag
Stel die initialiseringsvlag

Die truuk vir die aanvanklike instelling van standaardwaardes vir die instellings is om een van die adresse as 'n aanduiding te gebruik of die instellings geïnitialiseer is al dan nie. Ek het die laaste adres hiervoor gebruik, aangesien dit dikwels nie vir iets anders gebruik word nie. Die loadSettings -funksie sal hierdie ligging eers kontroleer as die waarde wat daar gestoor is, 'n "T" -karakter het, en indien nie, sal dit begin instel deur die aanvanklike waardes vir elkeen te skryf. Sodra dit klaar is, stel dit nou die waarde van die plek waar ons die geïnitialiseerde instellings byhou by die "T" -karakter, en die volgende keer as ons die Arduino aanskakel, sal ons nie meer die waardes begin nie, maar eerder die gestoorde data inlees ons skikking.

Stap 4: Opdatering van instellings

Dateer instellings op
Dateer instellings op

Vir die opdatering van die waardes kan ons óf die skryffunksie gebruik soos ons dit by die inisialisering gehad het, maar 'n beter manier is om die bygewerkte opdateringsfunksie te gebruik. Wat hierdie funksie doen, is dat dit eers kontroleer of die waarde wat ons probeer stoor dieselfde is wat reeds in die EEPROM is, en as dit wel die geval is, word dit nie opgedateer nie. Deur dit te doen, probeer dit om die aantal skryfbewerkings tot 'n minimum te beperk om die lewensduur van die EEPROM te verleng.

Stap 5: Geniet dit

Geniet dit!
Geniet dit!
Geniet dit!
Geniet dit!

Ek hoop dat hierdie instruksies vir u nuttig was en dat u daarin geslaag het om iets te leer. Die bronkode is beskikbaar op my GitHub -bladsy en die skakel is hieronder. As u voorstelle het, laat dit dan in die kommentaar en moenie vergeet om op my YouTube -kanaal in te teken vir meer soortgelyke video's nie.

Aanbeveel: