ContaKM parziale su Arduino, usa la EEPROM

Ecco un esempio semplificato per scrivere i dati parziali su EEPROM. Io ho usato una libreria che è veramente semplice da usare e affidabile.

I campi memorizzati sono quelli che uso come parziale, quando spengo e riaccendo lo scooter ovviamente vengono recuperati, poi ho un pulsante il cui compito è quello di azzerarne i valori, come fareste con l’auto.

Fate attenzione che su questo tipo di memoria le scritture sono limitate, per intendersi oltre le 100.000 scritture puo’ fulminarsi. Io ho fatto in modo di memorizzare su EEPROM ogni 0,5Km percorsi.

N.B.: Prima di fare qualsiasi lettura, almeno una volta occorre fare una scrittura per assegnare ai byte utilizzati un valore, altrimenti la funzione di read va in crisi.

 

#include <avr/eeprom.h>

struct settings_t
{
double kmPerc; //km percorsi
double Ahconsum; // AH consumati totali
double parzkmPerc; // parziale km percorsi (trip)
double Ahparz; // AH consumati totali
};

#include <LiquidCrystal.h> // we need this library for the LCD commands // initialize the library with the numbers of the interface pins
LiquidCrystal lcd(4,5,6,7,8,9); // define our LCD and which pins to user
unsigned long i;
settings_t settings;

void setup()
{

Serial.begin(9600);
eeprom_read_block((void*)&settings, (void*)0, sizeof(settings));
settings.kmPerc=13734.0; //km percorsi
settings.Ahconsum=999.1; // AH consumati totali
settings.parzkmPerc=0.0; // parziale km percorsi (trip)
settings.Ahparz=0.0; // AH consumati totali
eeprom_write_block((const void*)&settings, (void*)0, sizeof(settings));
delay(100);
eeprom_read_block((void*)&settings, (void*)0, sizeof(settings));
// aggiungo +1 e scrivo su Eprom
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
// settings.kmPerc=settings.kmPerc+1.0;
lcd.print(settings.kmPerc);

}
void loop()
{
delay(1000);
lcd.setCursor(0,0);
lcd.print(settings.kmPerc);

}

 

Annunci

, , , , ,

  1. Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: