Calcolo Energia

Buonasera a tutti.
Ho un progetto con un arduino 33 iot e una batteria al litio della quale misuro gia corrente e tensione quindi posso calcolare con una semplice moltiplicazione la potenza.
Mi piacerebbe calcolate lEnergia ma non so come inserire il fatto tempo per poter fare E =Pxt.
Come posso fare a farlo?
Grazie per l aiuto

I watt sono joule al secondo, moltiplicandoli per i secondi ottieni i joule totali. Se l'energia invece che in joule le vuoi misurare in wattora basta dividere per 3600 (1 Wh = 3600 J), oppure moltiplichi i watt per le ore, che è la stessa cosa.

Si come dicevo che so come si calcola l'energia.
La mia domanda è come fare a capire quanto tempo trascorre fra una lettura e l'altra cosi da poter far il calcolo dell'enegia.
In quanto un calcolo fatto bene sarebbe l'integrale delle funzione Potenza ma semmai fare l'area dei trapezi rettangoli, solo che non so come fare con il tempo

Per il tempo puoi fare semplicemente la differenza fra un millis() e l'altro.
In una variabile oldmillis metti il valore. Poi quando serve millis()-oldmillis hai un tempo delta in millisecondi

EDITATO: grazie Claudio_FF :grinning:

O meglio:     millis() - oldmillis()

In effetti credevo che la domanda riguardasse le unità di misura, non la misura del tempo.

Poi se si vuole spaccare il microsecondo (per modo do dire) si può usare micros:
micros() - oldmicros()

Per caso avreste un pezzo di codice nel quale posso vedere l applicazione di questa funzione?

Perché non ho mai capito se la funzione millis() conta il tempo dall'accessione di arduino o da quando viene invocata.

Appena accendi arduino parte un contatore che viene incrementato automaticamente ogni millisecondo. La funzione millis() non fa altro che andare a leggere tale contatore e restituire il valore al momento della lettura. Il contatore è a 32 bit e raggiunge il massimo valore (0xFFFFFFFF) dopo circa 50 giorni e poi riparte da 0, ma, sapendo come fare, questo NON è assolutamente un problema.

Puoi leggere di più QUI e poi QUI oltre che, chiaramente, nel reference millis().

Guglielmo

Tra l'altro, anche se all'accensione partisse da un valore casuale non farebbe differenza, perché quello che interessa realmente è la differenza tra due letture. Basta che questa non superi mai le 1192 ore. Ma per misure di tempo così lunghe usare millis, che ha un errore circa dello 0.2%, sarebbe probabilmente una scelta sbagliata.

Non necessariamente
Perché l'errore si ribalta sul calcolo del consumo
E un errore dello 0.2% è assolutamente trascurabile rispetto ad altre fonti di errore

Volevo ringraziarvi di cuore per i vostri consigli proverò a fare i calcoli.
Per quanto riguarda l azzeramento non dovrei avere problemk in quanto l arduino è collegato a una batteria al litio per Ebike che sta accesa al massimo 5 ore.
Grazie davvero a tutti

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.