Buongiorno a tutti. Da giorni sto avendo un problema con la funzione pow.
Il valore che cerco è il seguente:
VPD= A * (1- h/100)
A = (610,78 * EXP (t/(t +238,3)) * 17,2694) /1000.
Il risultato ottenuto è diverso rispetto a quello calcolato con excel o manualmente.
float Avpd = 0;
float base = 2,7828183;
float exponent= 0;
float a = 0;
float p = 0;
Nel loop abbiamo le letture di temperatura e umidità del dht 11 (anche queste tipo float) e il seguente codice:
exponent= t/(t+238,3);
p = pow (base, exponent);
a = (610,78 * p * 17,2594)/1000;
Mi scuso se ho postato in questo modo ma sono con il cellulare
Ok, penso che hai usato la virgola al posto del punto come separatore decimale perché sei da telefono, del resto non compilerebbe nemmeno. Questi sarebbero i risultati errati, mentre quelli attesi che valore hanno?
... tu sai vero che i "float" su Arduino UNO sono solo a 32 bit e che, come descritto nel reference la precisione è:
The float data type has only 6-7 decimal digits of precision. That means the total number of digits, not the number to the right of the decimal point. Unlike other platforms, where you can get more precision by using a double (e.g. up to 15 digits), on the Arduino, double is the same size as float.
... quindi ... non ti aspettare chissà quale precisione!
Siamo troppo lontani.
Ma secondo te può essere un problema di "pow".
Se versi su internet tabella VPD escono fuori i valori di VPD in funzione di t e h.
Per quanto riguarda la precisione mi aspetto di raggiungere un valore simile. Non è importante avere la precisione assoluta.
Devo provare con un atro Arduino?
Che ti dia gli stessi risultati è cosa certa, meno certa è la formula.
La variabile 'a' doveva avere un valore prossimo a 3.2 per risultare 1.6, allora gira che ti rigira è venuto fuori 1.58, ma non vuole dire che è la formula corretta.
Scusami Maurotec. Sono contento che funzioni, anche se non lo provato, mi fido, ma quindi il pow non serve a nulla?. La base 2,7828183 è stata sostituita da EXP?
Ultima cosa. Non sapevo si potesse usare direttamente EXP. Dove si trovano le funzioni matematiche in cui è presente EXP?
Io non l'ho trovato.
Scusami per tutte queste paranoie, ma mi piace capire il perché!!!