Standardoil:
Mi hai già dato il mio Karma? grazie
Quello te lo avevo dato io, i polinomi oltre il quinto grado lo meritano
Standardoil:
Mi hai già dato il mio Karma? grazie
Quello te lo avevo dato io, i polinomi oltre il quinto grado lo meritano
avrei tanto voluto guadagnarmene un'altro di karma
purtroppo per avere un errore (della formula) minore dell'errore del sensore serve almeno un polinomio di 9° grado con oltre 22 cifre di fattore
non credo che una UNO ci riesca, mi sa che allo OP tocca di rinunciare, o magari invece di usare un bulbo per radiatori d'automobile potrebbe usare qualcosa di più "civile"
o ripiegare su una tabella, precompilata, magari con la formula inversa che ho dato prima.....
attendo la formula corretta,
grazie per l'aiuto
Ma l’interpolazione lineare vi fa proprio schifo?
a me no, chiedi allo OP...
mirkoelettronics:
attendo la formula corretta,
grazie per l'aiuto
e se invece ti spiegassi come ottenerla?
mi piacerebbe capirlo anche perchè il problema delle curve mi è capitato diverse volte e ho rioslto approssimando o creando delle Kostanti di moltiplicazione per range
mi meriterò un altro Karma....
trovare la formula generante un certo insieme di dati si chiama "regressione"
il problema è che gli strumenti che fanno automaticamentre la regressione richiedono di sapere almeno che tipo di regressione sia: lineare, polinomiale, esponenziale e altre ancora
questo lo sai, o lo intuisci guardando il diagramma disegnato a partire dai dati
guardando il diagramma dei dati che hai pubblicato non si capisce una mazza, o forse si tratta di una funzione trigonometrica, ma non ci siamo
ecco la ragione del grado elevato del polinomio generante
ho pensato però che forse dipende anche dal circuito di misura
per sua natura un PTC o NTC, messo in serie con una resistenza fissa è tutto salvo che lineare
se invece si usa un generatore di corrente costante (e qui chiederai aiuto al diavolo del silicio, che è più bravo di me) si toglie una causa di non linearità
ecco che se invece di usare la tensione misurata, usiamo la resistenza, e come misurare la resistenza non è difficile da trovare, la formula generante, con una buona approssimazione diventa:
temperatura= 490.902823*pow(resistenza,-0.1417601964)-134.5439793
come vedi alle volte cambiare punto di vista fa guadagnare karma
la tua spiegazione non è pero esaustiva, le costanti della tua formula come sono state generate?
risolto !!
Grazie per l'aiuto
ho applicato la formula inversa del partitore di tensione conoscendo r1 di 906 ohm e Vcc di 5V
resistenza = 906*((analogRead/204.6)/(5-(analogRead/204.6))
temperatura= 490.902823*pow(resistenza,-0.1417601964)-134.5439793
[code/]
Bravo a te
e grazie anche a Paulus1969
Off topic
Tempo fa giocavo in un sito di scacchi con punteggio, il punteggio era diventata un ossessione, non mi
interessava giocare bene ma che il punteggio salisse. Poi mi sono reso conto che è una cavolata, avere un buon punteggio giocando con persone scarse non faceva di me un buon giocatore "sono scarso a scacchi" ![]()
La stessa cosa può succedere su questo forum con il KARMA, ho risolto svariati problemi ma gli autori del thread non si sono presi la briga di aggiungere un punto di karma, però me ne frego perché non voglio ossessionarmi per un numerino ![]()
Purtroppo ritorna il problema...
Ho da accoppire un altrotipo di sensore con valori hommici diversi,ho provato ad applicare la vecchi formula ma ho un delta di circa 30 gradi.
mi servirebbe la nuova formula di conversione
di seguito i valori
temp ohm r pullup V out mA sensore
-40 402000 906 4,988756683 0,012409842
-35 289000 906 4,984374245 0,01724697
-30 210000 906 4,978521237 0,023707244
-25 154000 906 4,970756459 0,032277639
-20 114000 906 4,960576471 0,043513829
-15 85000 906 4,947267944 0,058203152
-10 64300 906 4,930527866 0,07668006
-5 48900 906 4,909047103 0,100389511
0 37500 906 4,88204968 0,130187991
5 29000 906 4,84852538 0,16719053
10 22500 906 4,806459882 0,213620439
15 17700 906 4,756530152 0,268730517
20 14000 906 4,696095532 0,335435395
25 11100 906 4,622688656 0,416458437
30 8900 906 4,538037936 0,509891903
35 7200 906 4,4411547 0,616827042
40 5800 906 4,324485535 0,745600954
45 4700 906 4,19193721 0,891901534
50 3900 906 4,057428215 1,040366209
55 3200 906 3,896736483 1,217730151
60 2700 906 3,743760399 1,386577926
65 2200 906 3,541532518 1,609787508
70 1900 906 3,385602281 1,781895937
75 1500 906 3,117206983 2,078137988
80 1300 906 2,946509519 2,266545784
85 1100 906 2,741774676 2,492522433
90 965 906 2,578834848 2,672367718
95 826 906 2,384526559 2,886836028
100 710 906 2,196782178 3,094059406
105 613 906 2,017774852 3,291639236
110 531 906 1,847599165 3,47947112
115 462 906 1,688596491 3,65497076
120 403 906 1,53934301 3,819709702
125 352 906 1,399046105 3,974562798
130 309 906 1,271604938 4,115226337
135 272 906 1,154499151 4,244482173
140 241 906 1,050566696 4,359197908
145 213 906 0,951742627 4,468275246
150 189 906 0,863013699 4,566210046
[code/]
Grazie
Ciao
Se la precisione ti interessa allo stesso modo su tutta l'escursione termica, ti conviene usare una resistenza di pull-up di valore più elevato, intorno agli 8700 ohm, che è la media quadratica fra 189 Ohm e 402 kOhm: se usassi proprio 8700 Ohm, infatti, con 189 Ohm avresti 106mV e con 402 kOhm avresti 4,894V, che sono gli stessi 106mV ma al di sotto dei 5V. In questo modo migliorerebbe la precisione alle temperature più basse. La zona di massima precisione si sposterebbe dall'intorno dei 92°C all'intorno dei 32°C.
Ma non puoi usare un sensore con uscita digitale come il DS18B20?...
Guarda, adesso sono sul lavoro...
Se rileggi i miei vecchi post, troverai come calcolare la formula nuova...
per adesso ho corretto cosi :
resistor =906*((value/204.6)/(5-(value/204.6)));resistenza cavo
temp = 598.902823*pow(resistor,-0.1417601964)-134.5439793;
ho variato la costante da 490.902823 a 590.902823
sono andato a tantativi ma il risultato non è male come scostamento