Innholdsfortegnelse:

Initialisering av Arduino EEPROM -innstillinger: 5 trinn
Initialisering av Arduino EEPROM -innstillinger: 5 trinn

Video: Initialisering av Arduino EEPROM -innstillinger: 5 trinn

Video: Initialisering av Arduino EEPROM -innstillinger: 5 trinn
Video: Использование карты Micro SD и регистрация данных с Arduino | Пошаговый курс Arduino, урок 106 2024, November
Anonim
Image
Image
Hva er en EEPROM?
Hva er en EEPROM?

Hei alle sammen, Hver Arduino har et lite innebygd minne kalt EEPROM. Du kan bruke dette til å lagre innstillinger for prosjektet der de valgte verdiene vil bli beholdt mellom strømsyklusene, og de vil være der neste gang du slår på Arduino. Jeg har et kult triks som vil lære deg hvordan du kan starte et sett med standardverdier på din første runde, så hold deg fast for å finne ut hvordan.

Trinn 1: Hva er en EEPROM?

Hva er en EEPROM?
Hva er en EEPROM?

En EEPROM er en liten minnelagring, hvis verdier beholdes selv om Arduino -kortet er slått av. Dette fungerer som en liten harddisk, slik at du kan lagre parametere for neste gang du slår på enheten. Avhengig av typen Arduino -kort, vil du ha en forskjellig lagringsplass tilgjengelig på hver, så for eksempel har Uno 1024 byte, Mega har 4096 byte og LilyPad har 512 byte.

Det er viktig å merke seg at alle EEPROM har et begrenset antall skrivesykluser. Atmel spesifiserer en forventet levetid på rundt 100 000 skrive/slette sykluser for EEPROM på Arduino. Dette kan høres ut som mange skriv, men det kan være lett å nå denne grensen hvis du leser og skriver i en loop. Når et sted er skrevet og slettet for mange ganger, kan det begynne å bli upålitelig. Den kan ikke returnere riktige data, eller returnere verdien fra en nabobit.

Trinn 2: Importer biblioteket

Importer biblioteket
Importer biblioteket
Importer biblioteket
Importer biblioteket
Importer biblioteket
Importer biblioteket

For å bruke dette minnet, inkluderer vi først det medfølgende biblioteket av Arduino. Biblioteket tilbyr to metoder: lese og skrive for handlingene i henhold til dette. Lesefunksjonen godtar adressen vi vil lese fra, mens skrivefunksjonen godtar både adressen og verdien vi vil skrive.

I vårt eksempel er målet å ha en rekke innstillinger klare ved hver start på Arduino, så vi starter med å definere matrisen som vi skal bruke til lagring og definere adressene for hver av innstillingene vi vil lagre. I en brikke der vi har 1024 byte tilgjengelig, vil adressene være fra 0 til 1023.

Trinn 3: Angi initialiseringsflagget

Angi initialiseringsflagget
Angi initialiseringsflagget

Trikset for den opprinnelige innstillingen av standardverdier for innstillingene er å bruke en av adressene som en indikator på om innstillingene er initialisert eller ikke. Jeg har brukt den siste adresseplasseringen for dette, da det ofte ikke brukes til noe annet. LoadSettings -funksjonen vil først kontrollere denne plasseringen hvis verdien som er lagret der er et "T" -tegn, og hvis ikke, vil den gå til innstilling ved å sette, skrive de første verdiene for hver av dem. Når det er gjort, vil det nå sette verdien til stedet der vi holder oversikt over initialiserte innstillinger til "T" -tegnet, og neste gang når vi slår på Arduino, vil vi ikke lenger starte verdiene, men i stedet lese de lagrede dataene inn i vårt utvalg.

Trinn 4: Oppdatering av innstillinger

Oppdaterer innstillinger
Oppdaterer innstillinger

For å oppdatere verdiene kan vi enten bruke skrivefunksjonen slik vi hadde den ved initialiseringen, men en bedre måte er å bruke den medfølgende oppdateringsfunksjonen. Hva denne funksjonen gjør er at den først sjekker om verdien vi prøver å lagre er den samme som allerede er i EEPROM, og hvis den er det, oppdateres den ikke. Ved å gjøre det prøver den å minimere antall skriveoperasjoner for å forlenge levetiden til EEPROM.

Trinn 5: Kos deg

Nyt!
Nyt!
Nyt!
Nyt!

Jeg håper at denne instruksen var nyttig for deg og at du klarte å lære noe. Kildekoden er tilgjengelig på min GitHub -side, og lenken er nedenfor. Hvis du har forslag, la dem ligge i kommentarene og ikke glem å abonnere på YouTube -kanalen min for flere lignende videoer.

Anbefalt: