Sida 1 av 2

Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:00:00
av fosfor
Hej!

Jag vill kunna spara ett enda nummer till minnet. Med en knapptryckning.
Sedan kunna hämta detta nummer från EEPROM minnet, med en annan knapptryckning.
Men alla guider jag hittar handlar oftast om hur jag ska spara många nummer/positioner till minnet.
Någon som vet hur man gör eller kan peka mig i rätt riktning?

Mvh A

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:07:00
av hawkan
EEPROM.write(0,55);

borde skriva in byten "55" i position 0.
Det som krånglar till det är att EEPROM.write bara skriver bytes.
Vill du skriva en "int" så behövs flera write-ar för att skriva och flera read-ar
för att pussla ihop värdet igen.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:10:46
av fosfor
Oj, hmm..
Grejen är att jag har en pulsecount, alltså en motor med sensorer, där pulserna räknas och visas på en display som ett nummer.
Kan vara t.ex. 522 eller nåt sånt. Det är detta nummer jag vill spara.
Mej jag vet inte om det räknas som en Int direkt? Ser inte så ut i koden.
(Observera att jag är långt ifrån en Arduino expert, kan ses som nybörjare).
Är det EEPROM put eller nåt sånt som kanske är bättre?

Hur kan jag lösa mitt problem på smidigast vis?

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:21:23
av hawkan
Ja EEPROM.put(0,variabel) border fungera.

Kod: Markera allt

int a=522;
int b;
EEPROM.put(0,a);
EEPROM.get(0,b);
Livslängden på en eeprom-position är nåt 100.000-tal skrivningar bara så du vet.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:29:21
av fosfor
Ok, tack!
Jag ska spara detta nummer kanske en gång i veckan eller ennu mer sällan. Likaså använda sig utav det (läsa numret).
Så utslitet minne borde inte vara någon fara alls.

Vad innebär 'int a=522?'
och int b?

Samt, varför skriver man (0,a) och (0,b)?
Är det startnummer?

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:34:04
av sodjan
> Samt, varför skriver man.........

Så svårt är det väl inte att hitta (googla t.ex. "arduino EEPROM.put"):

https://www.arduino.cc/en/Reference/EEPROMPut

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:37:16
av papabear
int a och b är två heltalsvariabler, där a initieras med värdet 522.

.put(0,a) skriver värdet för a till adress 0.
och .get(0,b) läser ut värdet till variabel b.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:38:29
av fosfor
Sodjan:

Sorry, men jag är verkligen total nybörjare på detta.
Jag var inne tidigare och läste just på länken du skriver men det blir lite överväldigande till och från.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:38:50
av fosfor
papabear skrev:int a och b är två heltalsvariabler, där a initieras med värdet 522.

.put(0,a) skriver värdet för a till adress 0.
och .get(0,b) läser ut värdet till variabel b.

TACK! Ok!

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 11:44:58
av ffredrik
Jag kan enbart rekommendera en grundkurs i programmering, förslagsvis C.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 12:45:19
av fosfor
Det lär ju se ut nåt i stil med detta? :humm:

Kod: Markera allt

 
else {
  val = digitalRead(intest3Pin);         // KNAPP 3 - Som trycks när det ska sparas i minnet
  if (val == HIGH) {                     // Checkar om knappen trycks

Här ska något läsa     "PulseCount"
Här ska något skriva  "Write PulseCount" numret till minnet
}

????????????????

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 13:13:25
av fosfor
Kanske nåt i denna stil?

Kod: Markera allt

// MEMORYTEST FOR SAVING EEPROM -=-=-=-=-=-=-=-=-=-=-=-=-
else {
  val = digitalRead(intest3Pin);         // Button 3 - Shall save in memory
  if (val == HIGH) {                     // Checks if button is pressed

EEPROM.write(PulseCount);                // Writes PulseCount number to memory
    lcd.setCursor(0, 1);                 // These 2 lines writes to LCD
    lcd.print("Pos SAVED!");
  }     
}

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 13:24:51
av papabear
Jag har aldrig använt de här sakerna, men oavsett write eller put så säger dokumentationen att du ska ha (adress,data).
Så du behöver EEPROM.write(0,PulseCount); om du nu vill skriva till adress 0, men det spelar väl ingen roll för dig var i minnet du lägger det.

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 15:00:07
av fosfor
Ok!

Men vart skriver jag (adress,data)?
Eller syftar detta på 0,PulseCount?

Re: Spara ett nummer till EEPROM på Arduino UNO

Postat: 3 april 2018, 15:18:03
av papabear
Just så.