Ciao dopo ore di progetto e scrittura Sketch arrivo a un rompicapo che non risolvo...
Nello Sketch non mi scrive la temp. massima e minima, ora non capisco se è nella memorizzazione il problema visto che è la prima volta che uso la eeprom....
se una buona anima sa spiegarmi dove sbaglio la ringrazierei veramente tanto.
Grazie mille
Temperature_e_umidit_.ino (2.12 KB)
Perchè con EEPROM.write puoi scrivere solo un byte e tu hai assegnato il valore come int ( che poi, avendo il DHT22 anche i decimali dovresti comunque usare un float )
usa EEPROM.put
Ho provato ma non mi funziona cmq, nella minima e massima mi scrive cmq lo stesso valore e non memorizza..
Ormai è il primo esperimento che uso la eeprom e non sono afferrato molto nel campo.. cercherò di studiarci su ma ne dubito riesca facilmente..
Grazie per l'aiuto. molto gentile
Almeno se ho capito giusto ho corretto lo Sketch cosi..
Temperature_e_umidit_.ino (2.12 KB)
Temperature_e_umidit_.ino (2.12 KB)
Prima di tutto si legge il reference....
quindi EEPROM.put() per scrivere e EEPROM.get() per leggere, perchè come detto prima si tratta di variabili float e occupano 4 bytes
quindi se la prima la scrivi all'indirizzo 1 la seconda non la puoi mettere all'indirizzo 2, ma 1+4=5
void setup()
{
Serial.begin(9600);
dht.begin();
bmp.begin();
EEPROM.get(1, Tempmax);
EEPROM.get(5, Tempmin);
lo stesso per scriverla
float temp = dht.readTemperature();
if (temp > Tempmax) {
Tempmax = temp;
EEPROM.put(1, temp);
}
if (temp < Tempmin) {
Tempmin = temp;
EEPROM.put(5, temp);
}
Ps.
Anche se la funzione EEPROM.put() scrive nella eeprom solo quando il valore è diverso da quello memorizzato, visto che comunque i cicli di scrittura su una EEPROM sono limitati ( circa 100.000 ) , sarebbe comunque consigliabile evitare di scriverci troppo spesso
Cioè ha una vita limitata la EEPROM?? senò dove li salvo i dati?
Grazie mille sei molto gentile.
Si la EEPROM ha una vita limitata, i 100.000 cicli di scrittura già citati possono essere molti oppure molto pochi a seconda di quanto spesso scrivi sulla EEPROM, se la aggiorni poche volte al giorno dura molti anni, se la aggiorni ogni minuto in pochi mesi hai finito le scritture.
Ovviamente 100.000 non è un valore massimo assoluto, è un valore statistico riferito alla durata minima prevista, nella stragrande maggioranza dei casi è possibile fare molte più scritture, in un numero piccolo di casi sono di meno.
Stesso concetto vale per la flash, però il limite è 10.000.
Le letture EEPROM e FLASH non hanno alcun limite, non degradano in nessun modo la vita delle stesse.