Vai al contenuto
PLC Forum


Simulazione E Realtà - Perché differiscono?


dcr

Messaggi consigliati


Ho realizzato un progetto con un PIC 16F876A, qualche mese fa, che legge la temperatura ambientale da una sonda LM35. Il PIC, come il Logo, ha ingressi analogico a 10bit.

Ho scoperto due cose:

1) Con quella risoluzione del DAC associato all'LM35, non riuscirai mai a leggere i decimi di grado ma solo i mezzi grado. Cioè non leggerai mai 23,2 -> 23,1 ecc, ma 23 -> 23,5 ecc.

2) Nel mio progetto ho dovuto mettere una media sulla lettura della sonda per stabilizzare i valori letti perchè avevo delle variazioni, da una lettura all'altra, di anche 5/10 gradi!! Ho provato con tre sonde differenti e tutte e tre si comportavano allo stesso modo. Con 10 letture ogni 100ms e fatta la media, la temperatura rilevata rimane entro il mezzo grado di precisione.

Link al commento
Condividi su altri siti

1) Con quella risoluzione del DAC associato all'LM35, non riuscirai mai a leggere i decimi di grado ma solo i mezzi grado. Cioè non leggerai mai 23,2 -> 23,1 ecc, ma 23 -> 23,5 ecc.

Come no? Con il PIC l'A/D_C risolve 5 V in 10 bits, quindi risolve passi di 4,88 mV. Se l'ampiezza della tua scala va, p.e., da -25o C +75o C, risolvi esattamente 0.1o C.

Comunque la precisione dello LM35, da data sheet, è 0,5o C

....i valori letti perchè avevo delle variazioni, da una lettura all'altra, di anche 5/10 gradi!!

Il problema è, quasi certamente, legato alla tensione di alimentazione che non è costante. Da quella tensione si ricava il valore di riferimento per il D/A_C. Con il Pic puoi ovviare usando una tensione stabile esterna come valore di riferimento.

Link al commento
Condividi su altri siti

Ciao Livio, toglimi il dubbio per favore: se LM35 eroga 10mV ogni °C, e il PIC rileva differenze di tensione di circa 5mV, allora il PIC non avrà mai una risoluzione al di sotto del mezzo grado, no?

Link al commento
Condividi su altri siti

Un mese fa ho eseguito un impianto per comandare un riscaldatore infrarosso.

Ho messo un termostato ambiente e l'ho collegato a un ingresso, poi ho messo un interruttore 0-1 per fare il manuale e automatico.

In più per controllare se la lampada in mia mancanza interviene, gli ho messo la funzione di quante volte intervenga e per quanto tempo (es. contacolpi)

Funziona benissimo

Ciao

Link al commento
Condividi su altri siti

ao Livio, toglimi il dubbio per favore: se LM35 eroga 10mV ogni °C, e il PIC rileva differenze di tensione di circa 5mV, allora il PIC non avrà mai una risoluzione al di sotto del mezzo grado, no?

Volendo si può fare. Come ho specificato nel messaggio #28, se limiti la scala tra -25o C +75o C, risolvi 0.1o C; basta amplificare per 5 e ottieni un'escursione di 5 V per tutta la scala di temperatura. La risoluzione di 1023 counts per i 5 V porta ad avere una risoluzione pari a 100o C / 1023 = 0.09775o C teorici. Dico teorici perchè l'accuratezza del sensore è pari a 0.5o C e la misura è inficiata comunque da errori.

Non bisogna confondere la risoluzione con la precisione, anche se la precisione è sempre inferiore alla risoluzione. In altri termini con risoluzione di 0.1o C posso avere una precisione pari a 0.5o C, però con una risoluzione di 0.5o C non potrò avere una precisione pari a 0.5o C

Link al commento
Condividi su altri siti

basta amplificare per 5

Ah, ok..amplificando.

Ma siccome l'LM35 dà una scala lineare a "passi" di 10mV/°C, senza amplificazione il PIC non rileva i decimi di grado ma solo i "passi" di 0,5°C.

Ora ho capito.

Grazie del chiarimento.

Link al commento
Condividi su altri siti

Ma siccome l'LM35 dà una scala lineare a "passi" di 10mV/°C,..

No! Non è assolutamente così! Lo LM35 è un dispositivo analogico quindi, per definizione, continuo e non discreto ( "a passi"). La discretizzazione la esegue, l'eventuale dispositivo di conversione A/D_C; usando un PIC con risoluzione 10 bits la discretizzazione minima dipende dalla tensione di riferimento o dal valore di fondo scala della tensioen analogica.

Tu confondi il gradiente della funzione di trasferimento tensione/temperatura, pari a10 mV / 1o C, con la risoluzione.

La risoluzione dello LM35 è infinita (senza soluzione di continuità), mentre l'accuratezza è garantita (per un particolare modello) <= 0.5o C.

Ripeto non si deve assolutamente confondere l'accuratezza con la risoluzione.

Non è neanche necessario amplificare. Basta assegnare il valore di 1V alla tensione di riferimento, pratica abbastanza normale. In questo caso avremo sempre 100o C / 1023 = 0.09775o C.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...