Lettura sensori analogici non lineari

Ciao,
volevo chiedervi un consiglio sul come leggere dei sensori temperatura non lineari... Ho i dati del sensore, quindi conosco i volt misurati per ogni temperatura, però avendo 20 valori in volt su una scala da -30 gradi a + 130 gradi, e salti di 5 e 10 gradi, mi trovo praticamente a non avere tutti i gradi intermedi fra un salto e l'altro.
Faccio un esempio, alimentando il sensore a 5V con una pullup di 1K, misuro a:
20 gradi = 3.551 mv
30 gradi = 3.113 mv
40 gradi = 2.674 mv
...
...
Facendo un controllo su un array a una dimensione mi trovo a leggere il valore es: 20 gradi, fino a 29, non ho insomma le misure intermedie, volevo appunto chiedere se sbaglio approccio.

Grazie

La soluzione più semplice e precisa è un sensore digitale, come il DS18B20.

Buongiorno,
purtroppo ho bisogno di leggere la temperatura acqua e aria in un motore a combustione dai sensori già presenti...

Metti la serie di dati con le misurazioni nel range di lavoro del sensore in un foglio di calcolo Google.
A quel punto fai un grafico e sfrutti la capacità di fare una regressione lineare di Google Sheet per ottenere la funzione di trasferimento.

Ho già 20 valori sul range della scala, e ho il grafico dal datasheet del sensore, pensi servano più valori? Più tardi li allego qua... Poi vedo da Google come funziona la cosa, cosa dovrebbe restituirmi Google?
Grazie :slightly_smiling_face:

Una formula di tipo polinomiale (di grado a tua scelta) ed un indice di quanto la formula si adatta ai dati inseriti che va da 0 a 1.

Ad esempio un polinomio di primo grado sarebbe qualcosa tipo:

y= a*x + b

Google Sheet calcola i coefficienti a e b, x sarebbe il valore di tensione misurato ed y a quel punto è la temperatura.

Ti metto il link di un foglio che ho usato qualche tempo fa per un sensore digitale di cui non avevo modo di recuperare il protocollo

Ci sono due fogli, nel primo ho usato un polinomio di primo grado e i valori coincidono al 100% (coefficiente R^2 = 1).
Nel secondo invece ho usato un polinomio di secondo grado (R^2 = 0.999)

Ho provato ad aprire il link del foglio, ma risulta un errore di accesso, ho fatto richiesta, dice verrà inviata mail per informarmi se posso accedere, aspettiamo...
Intanto allego le foto dei dati del sensore, stasera provo a inserire i dati a google :wink:
Grazie


Ho corretto il link ed ho aggiunto anche i tuoi dati al foglio.

La curva è complessa, si rende necessario almeno un polinomio di terzo grado per avere un coefficiente R^2 affidabile (e che comunque arriva ad un errore massimo sull'ordine del 10% all'estremo inferiore della serie numerica).

Sicuro non ci sono altre indicazioni sul sensore in questione? Un datasheet?

Di solito vengono linearizzate con una resistenza in parallelo...

Stasera controllo meglio, ma non trovo il suo datasheet, considera anche che non mi serve tutto il range, il suo massimo lavoro è -30 +130, personalmente mi basta -10 +100, in questo range la curva è un po' più lineare...
per la resistenza in parallelo non so se internamente alle centraline originali sia presente, non credo, perché considerando quella di pullup da 1K i valori di tensione non tornano se ne fosse presente un'altra in parallelo al sensore.

Ciao,
allego cosa mi è venuto fuori dal foglio google, ma ora cosa dovrei farci? :smiley: Scusami, ma per me è arabo...
Nel frattempo stò cercando un datasheet del sensore.
Grazie

Ho trovato ora ora questi datsheet, anche se i valori sono in ohm...
bosch - 0280130026.pdf (122.6 KB)
bosch 0280130026.pdf (401.5 KB)

Ma si tratta di classici termistori NTC...

Dalla curva a forma di S non l'avrei detto perché di solito con questi trasduttori si tende a usare solo la zona più lineare.

Per calcolare la temperatura con le NTC ci sono delle formule stra-note, basta solo calcolare il valore della costante "beta" che caratterizza il termistore misurando il valore della resistenza in corrispondenza di due temperature note (informazioni che puoi recuperare dai due datasheet).

Buongiorno,
si, è una NTC, ma la curva è diversa per diversi NTC, non sono tutti uguali, e non saprei come fare il calcolo, anche perchè ho notato che la curva non è la stessa fra i salti di temperatura...
Ho cercato qualcosa, ho trovato questo, può andare? E' quello che ti riferivi tu?

Grazie :slight_smile:

Ciao.
Con un NTC (però diverso dal tuo... uno di quelli da stampa 3d) ho trovato utile questo

Ciao fratt,
grazie, ormai ho già seguito il link che ho allegato, sono riuscito ad avere dei valori corretti utilizzando l'equazione di Steinhart-Hart, usando un programma online si può usare praticamente qualsiasi sonda, calcolando i valori da inserire nella formula.
Grazie :slight_smile:

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