Innehållsförteckning:

Arduino EEPROM Inställningar Initiering: 5 steg
Arduino EEPROM Inställningar Initiering: 5 steg

Video: Arduino EEPROM Inställningar Initiering: 5 steg

Video: Arduino EEPROM Inställningar Initiering: 5 steg
Video: 7 projects Build LED LCD Alarm Clock using DS1307 with Arduino | Lesson 105 2024, Juli
Anonim
Image
Image
Vad är en EEPROM?
Vad är en EEPROM?

Hej allihopa, Varje Arduino har ett litet inbyggt minne som heter EEPROM. Du kan använda detta för att lagra inställningar för ditt projekt där de valda värdena kommer att behållas mellan strömcyklerna och de kommer att finnas där nästa gång du startar Arduino. Jag har ett coolt trick som lär dig hur du kan initiera en uppsättning standardvärden på din första körning så håll dig kvar för att ta reda på hur.

Steg 1: Vad är en EEPROM?

Vad är en EEPROM?
Vad är en EEPROM?

En EEPROM är en liten minneslagring, vars värden bevaras även när Arduino -kortet är avstängt. Detta fungerar som en liten hårddisk så att du kan lagra parametrar för nästa gång du startar enheten. Beroende på vilken typ av Arduino -kort du har har du olika lagringsutrymme på varje, så till exempel har Uno 1024 byte, Mega har 4096 byte och LilyPad har 512 byte.

Det är viktigt att notera att alla EEPROM har ett begränsat antal skrivcykler. Atmel anger en livslängd på cirka 100 000 skriv/radera cykler för EEPROM på Arduino. Det här kan låta som många skrivningar, men det kan vara lätt att nå denna gräns om du läser och skriver i en loop. När en plats har skrivits och raderats för många gånger kan den börja bli opålitlig. Det kanske inte returnerar rätt data eller returnerar värdet från en närliggande bit.

Steg 2: Importera biblioteket

Importera biblioteket
Importera biblioteket
Importera biblioteket
Importera biblioteket
Importera biblioteket
Importera biblioteket

För att använda detta minne inkluderar vi först det medföljande biblioteket från Arduino. Biblioteket tillhandahåller två metoder: läs och skriv för de aktuella åtgärderna. Läsfunktionen accepterar adressen som vi vill läsa från, medan skrivfunktionen accepterar både adressen och det värde vi vill skriva.

I vårt exempel är målet att ha en rad inställningar redo vid varje start av Arduino, så vi börjar med att definiera matrisen som vi ska använda för lagring och definiera adresserna för var och en av de inställningar vi vill lagra. I ett chip där vi har 1024 byte tillgängliga kommer adressplatserna att vara från 0 till 1023.

Steg 3: Ställ in initialiseringsflaggan

Ställ in initialiseringsflaggan
Ställ in initialiseringsflaggan

Tricket för den ursprungliga inställningen av standardvärden för inställningarna är att använda en av adresserna som en indikator om inställningarna har initierats eller inte. Jag har använt den sista adressplatsen för detta eftersom det ofta inte används för något annat. LoadSettings -funktionen kommer först att kontrollera denna plats om värdet som lagras där är ett "T" -tecken och om inte, kommer det att gå inställning genom att ställa in, skriva initialvärdena för var och en av dem. När det är klart kommer det nu att ställa in värdet för den plats där vi håller reda på initialiserade inställningar till "T" -tecknet och nästa gång när vi slår på Arduino kommer vi inte längre att initiera värdena utan istället läsa in de sparade data i vårt utbud.

Steg 4: Uppdatera inställningar

Uppdaterar inställningar
Uppdaterar inställningar

För att uppdatera värdena kan vi antingen använda skrivfunktionen som vi hade den vid initialiseringen, men ett bättre sätt är att använda den tillhandahållna uppdateringsfunktionen. Vad denna funktion gör är att den först kontrollerar om värdet vi försöker spara är samma som redan finns i EEPROM och om det är det uppdateras det inte. Genom att göra det försöker den minimera antalet skrivoperationer för att förlänga EEPROM: s livslängd.

Steg 5: Njut

Njut av!
Njut av!
Njut av!
Njut av!

Jag hoppas att den här instruktionsboken var till hjälp för dig och att du lyckades lära dig något. Källkoden är tillgänglig på min GitHub -sida och länken finns nedan. Om du har några förslag, vänligen lämna dem i kommentarerna och glöm inte att prenumerera på min YouTube -kanal för fler liknande videor.

Rekommenderad: