Inhoudsopgave:

Arduino EEPROM-instellingen initialisatie - Ajarnpa
Arduino EEPROM-instellingen initialisatie - Ajarnpa

Video: Arduino EEPROM-instellingen initialisatie - Ajarnpa

Video: Arduino EEPROM-instellingen initialisatie - Ajarnpa
Video: Уроки Arduino. Работа с EEPROM памятью 2024, Juli-
Anonim
Image
Image
Wat is een EEPROM?
Wat is een EEPROM?

Hallo iedereen, Elke Arduino heeft een klein ingebouwd geheugen genaamd EEPROM. U kunt dit gebruiken om instellingen voor uw project op te slaan, waarbij de gekozen waarden tussen stroomcycli worden bewaard en ze zullen er zijn de volgende keer dat u de Arduino opstart. Ik heb een coole truc die je leert hoe je een set standaardwaarden kunt initiëren bij je eerste run, dus blijf rondhangen om erachter te komen hoe.

Stap 1: Wat is een EEPROM?

Wat is een EEPROM?
Wat is een EEPROM?

Een EEPROM is een kleine geheugenopslag waarvan de waarden worden bewaard, zelfs als het Arduino-bord is uitgeschakeld. Dit werkt als een kleine harde schijf, zodat u uw parameters kunt opslaan voor de volgende keer dat u het apparaat opstart. Afhankelijk van het type Arduino-bord, heb je op elk een andere hoeveelheid opslagruimte beschikbaar, dus de Uno heeft bijvoorbeeld 1024 bytes, de Mega heeft 4096 bytes en de LilyPad heeft 512 bytes.

Het is belangrijk op te merken dat alle EEPROM's een beperkt aantal schrijfcycli hebben. Atmel specificeert een levensverwachting van ongeveer 100.000 schrijf-/wiscycli voor de EEPROM op de Arduino. Dit klinkt misschien als veel schrijven, maar het kan gemakkelijk zijn om deze limiet te bereiken als u in een lus leest en schrijft. Als een locatie te vaak is geschreven en gewist, kan deze onbetrouwbaar worden. Het kan zijn dat het niet de juiste gegevens retourneert of de waarde van een naburig bit retourneert.

Stap 2: Importeer de bibliotheek

Importeer de bibliotheek
Importeer de bibliotheek
Importeer de bibliotheek
Importeer de bibliotheek
Importeer de bibliotheek
Importeer de bibliotheek

Om dit geheugen te gebruiken, voegen we eerst de door de Arduino geleverde bibliotheek toe. De bibliotheek biedt twee methoden: lezen en schrijven voor de bijbehorende acties. De leesfunctie accepteert het adres waarvan we willen lezen, terwijl de schrijffunctie zowel het adres als de waarde accepteert die we willen schrijven.

In ons voorbeeld is het doel om een reeks instellingen klaar te hebben bij elke start van de Arduino, dus we beginnen met het definiëren van de array die we gaan gebruiken voor de opslag en het definiëren van de adressen voor elk van de instellingen die we willen opslaan. In een chip waar we 1024 bytes beschikbaar hebben, zullen de adreslocaties van 0 tot 1023 zijn.

Stap 3: Stel de initialisatievlag in

Stel de initialisatievlag in
Stel de initialisatievlag in

De truc voor de initiële instelling van standaardwaarden voor de instellingen is om een van de adressen te gebruiken als indicator of de instellingen al dan niet zijn geïnitialiseerd. Ik heb hiervoor de laatste adreslocatie gebruikt omdat deze vaak nergens anders voor wordt gebruikt. De functie loadSettings zal eerst deze locatie controleren als de daar opgeslagen waarde een "T"-teken is en zo niet, dan gaat het instelling door instelling, waarbij de initiële waarden voor elk van hen worden geschreven. Als dit klaar is, wordt nu de waarde van de locatie waar we de geïnitialiseerde instellingen bijhouden, ingesteld op het "T" -teken en de volgende keer dat we de Arduino inschakelen, zullen we de waarden niet langer initiëren, maar in plaats daarvan de opgeslagen gegevens inlezen in onze reeks.

Stap 4: Instellingen bijwerken

Instellingen bijwerken
Instellingen bijwerken

Voor het bijwerken van de waarden kunnen we ofwel de schrijffunctie gebruiken zoals we die bij de initialisatie hadden, maar een betere manier is om de meegeleverde updatefunctie te gebruiken. Wat deze functie doet, is dat hij eerst controleert of de waarde die we proberen op te slaan dezelfde is die al in de EEPROM staat en als dat zo is, wordt hij niet bijgewerkt. Door dit te doen, probeert het het aantal schrijfbewerkingen te minimaliseren om de levensduur van de EEPROM te verlengen.

Stap 5: Geniet

Genieten van!
Genieten van!
Genieten van!
Genieten van!

Ik hoop dat deze Instructable nuttig voor je was en dat je iets hebt geleerd. De broncode is beschikbaar op mijn GitHub-pagina en de link staat hieronder. Als je suggesties hebt, laat ze dan achter in de reacties en vergeet je niet te abonneren op mijn YouTube-kanaal voor meer vergelijkbare video's.

Aanbevolen: