arduino reset (Læst 2152x)

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
arduino reset
« Dato: December 28, 2022, 17:32:21 »
Hej dlf
Jeg har lige et lille problem
Jeg har en styring til mit pille fyr som køre rigtig godt (takket være hjælp her fra) :)
Men mit problem er at mit træpille totalforbrug 0 stilles når strømmen går eller
ved reset af arduinoen
jeg bruger en arduino mega og w5100 med sd kort
det jeg gerne vil er at gemme forbrug enten på sd kort eller eeprom løbene for så
at kan læse det igen efter reset og fortsætte tællingen der fra
Jeg har søgt på nettet men kan ikke få noget til at virke >:(

Er der nogen der har prøvet dette før?
på forhånd tak for hjælpen

Elfix   
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline dani8303

  • Spændingsdeler
  • ****
  • Indlæg: 63
  • Antal brugbare Indlæg: 9
  • ESP8266, Linux server, PHP, JS, så spiller det.
    • Vis profil
    • Egen side til styring, energi mm. tag et kig :-)
Sv: arduino reset
« Svar #1 Dato: December 28, 2022, 23:51:47 »
Hej

Har du prøvet at skrive til en fil på SD-kortet løbende(overskrivning), når forbruget ændres. Ved opstart læser du fra filen på SD-kortet og overføre det til variablen med forbruget.

Det samme skulle også sagtens kunne lade sig gøre med EEPROM.

Det er dog vigtig at tage stilling til hvad der sker hvis en skriveoperation er i gang, ved en strømafbrydelse. Her kunne der med fordel arbejdes med 2 kloner af dataene og en "Writing" bit for hver klon. Når du skal opdatere sættes "Writing" bit til høj, indtil opdateringen er fuldført. Efter en strømafbrydelse tjekkes "Writing" bit så, hvis den er sat til høj, så vælges den anden klon. På denne måde er der altid en gyldig kopi.

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: arduino reset
« Svar #2 Dato: December 29, 2022, 05:49:43 »
Hej
Jeg syntes jeg har prøvet alt men jeg kan bare ikke få det til at virke
jeg er også lidt i tvivl om hvor rutinen skal ligge dvs.
om læsningen skal ligge  void setup og skrivningen skal ligge i void loop
eller bække to i void loop?
jeg vedhæfter lige min kode med det jeg har forsøgt :)

Mvh Elfix
Alle opgaver løses kun umuligheder tager lidt længere tid

 

Offline dani8303

  • Spændingsdeler
  • ****
  • Indlæg: 63
  • Antal brugbare Indlæg: 9
  • ESP8266, Linux server, PHP, JS, så spiller det.
    • Vis profil
    • Egen side til styring, energi mm. tag et kig :-)
Sv: arduino reset
« Svar #3 Dato: December 29, 2022, 09:45:23 »
Ohøj

Læsningen skal ligge i setup. Her skal du overføre fra filen til variablen.

Skrivningen til filen skal så ske i loop'et, hvorved der løbende laves en backup af datane.

Husk du skal bruge .read() for at læse fra filen, når du har en reference åben. Her er et udsnit fra de officielle eksempler:
"""
// re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
"""
https://github.com/arduino-libraries/SD/blob/master/examples/ReadWrite/ReadWrite.ino
Håber det giver mening.

Venlig hilsen Daniel Dannerelv

 

Offline Icecap

  • Op-amp
  • ***
  • Indlæg: 182
  • Antal brugbare Indlæg: 19
    • Vis profil
Sv: arduino reset
« Svar #4 Dato: December 30, 2022, 09:40:46 »
Og så skal man huske at man ikke skal skrive for ofte til flash/eeprom, de slides. Jeg udviklede elektronikken og programmer til Janfire NH pillebrænder og den funktion findes i den.

Der satte jeg en update-tid til 5 minutter tror jeg at det var - hvis forbruget var ændret.

Jeg brugte den eeprom som jeg lagde ind på printet, det er en FRAM-type som klarer ubegrænsede antal skrivninger - og den er hurtig også.

Bruger man den interne EEPROM i mikroprocessorer (MCU) skal man regne med 10k skrivninger inden det går prut. Med modernede MCU kan det være 100k som gælder.

Skal enheden køre i 5 år på de 10k skrivninger kan man tillade sig at gemme værdien hver 4,5 time.

Alternativt kan man montere en FRAM eeprom på systemet og bruge den så ofte man vil.

 

Offline Jakobsen

  • Højpas filter
  • *****
  • Indlæg: 302
  • Antal brugbare Indlæg: 45
    • Vis profil
Sv: arduino reset
« Svar #5 Dato: December 30, 2022, 13:13:52 »
+1 for FRAM  :)

 

Offline Elfix

  • Spændingsdeler
  • ****
  • Indlæg: 64
  • Antal brugbare Indlæg: 1
  • Gammeldam
    • Vis profil
Sv: arduino reset
« Svar #6 Dato: Januar 07, 2023, 19:38:40 »
Hej alle
Og tak for jeres svar :)
Jo det bliver jo nok FRAM på længer sigt men jeg vil gerne lige prøve
om jeg ikke lige i første omgang kan få det ti at virke med sd kortet!

Jeg syntes at jeg har prøvet alt men min kylling hjerne kan stadig ikke
få det til at virke :(

Er det fordi at jeg skal have en extra (variabel) ?
det skal jo gerne være sådan at det jeg printer til LCD skal være
det der bliver læst fra sd kortet ved reset + ny counter
og jeg vil også gerne have at sd kortet bare bliver over skrevet men hvordan?   

Jeg vedhæfter
Med venlig hilsen
Jonny 
Alle opgaver løses kun umuligheder tager lidt længere tid