Jump to content
PLC Forum


Sign in to follow this  
slavin89

Interfacciare Pic 16F877 A Pt100Ohm

Recommended Posts

Nikiki
Caz2o! Un po' di spirito di osservazione, che diamine

:D

Share this post


Link to post
Share on other sites

slavin89

hai ragione pardon..

vedo con piacere che la discussione viene seguita in silenzio anche da altri...

ieri comunque ho visto lo stand del sito in fiera a verona c'eri anche tu livio?

Edited by slavin89

Share this post


Link to post
Share on other sites
Livio Orsini

Ci sono stato mercoledìm pomeriggio e giovedì sino alle 14 circa. Però potevi presentarti, magari potevi ricevere uno dei gadgets del forum.

Share this post


Link to post
Share on other sites
slavin89

è siamo arrivati tardi e ho visto che stavate mettendo via non volevo rompere le scatole comunque ci sarà sicuramente modo di ritrovarci :)

Share this post


Link to post
Share on other sites
slavin89

ho finalmente qualche sviluppo del mio progetto..oggi ho provato il circuito collegando un potenziometro al posto della pt100 e visualizzare sul display il numero di count e il valore corrispondente di tensione. a casa avevo solo un pot da 100 ohm quindi la prova è un po limitata ma a 554 count leggevo 1.3517 volt con un valore di resistenza di 100,4 ohm con una v ref di 2,5 volt domani vado a prendere un altro pot..

la domanda ora è..il campo scala che dichiarano sull'an 687 ho paura non corrisponda al mio quindi come faccio a sapere il campo scala del mio circuito per poterne poi rilevare la temperatura?...o lo devo decidere io via software?

Share this post


Link to post
Share on other sites
Livio Orsini

IO ti consiglio di usare come riferimento per lo A/D il 5V interno, basta selezionare l'apposito flag. Poi ti fai le misure con il potenziometro al posto della RTD; fissi i due valori di resistenza che corrispondono ai limiti di temperatura che vuoi misurare ed adatti i guadagni dell'amplificatore per leggere zero e 1023 counts con i valori limite.

Share this post


Link to post
Share on other sites
slavin89

mm già avevo pensato di fare cosi ma ma se uso la tensione di riferimento a 5 volt non devo ridimensionare qualcosa nel circuito?..

comunque sono contento perchè finalmente vedo qualche piccolo sviluppo grazie a voi in particolare a te Livio..grazie

Share this post


Link to post
Share on other sites
Livio Orsini

Usa il riferimento interno per lo A/D dello 877. Ora non ricordo se gli ampli che hai usato sono alimentati a 5V od ad altra tensione. Meglio, comun que alimentare gli ampli a tensione maggiore e sfruttare un'escursione più ampia della tensione di segnale.

La risoluzione dello A/D non cambia, però usando un segnale più ampio hai una maggior immunità ai disturbi e qualche altro vantaggio. però sarebbe molto lungo effettuare una disquisizion e completa su vantaggi e svantaggi.

Share this post


Link to post
Share on other sites
slavin89

salve a tutti oggi continuando nel mio progetto ho deciso di realizzare una piccola scheda di sviluppo per rendere il tutto un po più serio..poi andando a caricare il programma sul quale sto lavorando mi è capitata una cosa strana..mettendo il potensiometro al posto della pt100 quando arrivavo a 300 count circa mi si spegneva la retroill del display che è comandata da un transistor messo in uscita ad una porta del pic e il pic sembrava come se si congelasse in quello stato ..i count si bloccavano li poi se tornavo su col potenziometro riprendeva a leggere e riappariva l'illuminazione..il transistor è un comune bc337 con in base verso il pic una resistenza da 3,3k questo è un grosso problema perchè con la pt100 a temperatura ambiente non riesco a leggere niente perchè sono sotto lasoglia di "congelamento"..cosa potrebbe essere che mi crea questo problema?

Share this post


Link to post
Share on other sites
Livio Orsini

99% è un problema Sw. Prova a pubblicare lo schema della scheda e dei vari collegamenti alle periferiche.

Share this post


Link to post
Share on other sites
slavin89

risolto avevo sbagliato a collegre un diodo :)

ora ho fatto nuovamente le prove e a 390 ohm leggo 1022 count però 1 count lo leggo a 1.6 ohm che è un valore un po bassino di resistenza perchè la tabella della pt100 mi da come valore minimo 18 ohm circa a -200 gradi..come posso trovare la costante di conversione con questi valori?

Share this post


Link to post
Share on other sites
Livio Orsini

Devi prima lavorare sull'interfaccia analogica per far rientrare il campo di misura che ti interessa entro i 1023 counts. Poi il fattore di scala è automatico.

Share this post


Link to post
Share on other sites
slavin89

Buonasera a tutti

ho di nuovo bisogno del vostro aiuto

dopo un po di tempo passato distante dal progetto ci sono tornato sopra.ho sistemato l'interfaccia e ora sto cercando di sistemare il programma..

partendo dall'interfaccia hw ho rilevato i seguenti dati..

mettendo una resistenza da 18,4 ohm ho una tensione in uscita di 0,271mV

mettendone una da 100,00 Ohm ho 1,48 V

una da 280,9 Ohm ho 3,43 V

e mettendone una da 317 Ohm ho 3,64V

le resistenze sono state scelte in funzione della temperatura e corrispodono a -200..0..500..600 °C per una pt 100

passando al programma come posso trasformate queste letture in °C?

i problemi che mi si pongono sono che l'interfaccia non arriva a 5 Volt e che non parte da 0 Volt come inizio scala ma da 0,271..

potete aiutarmi?

saluti

Luca

Share this post


Link to post
Share on other sites
Livio Orsini

Le PT100 sono lineari solo in piccoli intorni di temperatura, gia tra 0 e 100oC la linearità è già scarsa.

ora per convertire in temperatura le tue letture di tensione devi partire da come fai la misura. Se fai la misura classica alimentando la PT100 a corrente costante (con I < 1 mA per evitare l'autoriscaldamento) devi fare i conti usando una tabella resistenza-temperatura (ne trovi tante in rete). Poi ti crei una look table con cui fare la linearizzazione. Per la look table basta applicare la legge di ohm ai valori significativi di resistenza. Per i valori intermedi basta eseguire una semplice interpolazione lineare per avere il valore di temperatura.

Share this post


Link to post
Share on other sites
slavin89

cioè mi stai consigliando di fare una serie di if..dove metto ad ogni valori di V un valore di temp che richiamo ?..

ma posso mettere solo i valori di temp significativi e gli altri ricavarli direttamente dal programma?..se si può mi puoi dare uno spunto?

Share this post


Link to post
Share on other sites
Livio Orsini

Devi stabilire quale sia la gamma di temperatura interessata. Se ti metti i valori di R su un diagramma R = f(t) vedi che puoi approssimare la curva con una spezzata. All'interno di ogni segnmento puoi considerare lineare e quidi interpolare i valori in modo lineare.

Io userei un "do case" per effettuare la scelta.

Share this post


Link to post
Share on other sites
slavin89

mm ok ma in teoria io potrei usare anche tutta la scala cioè da -200 a 600°C giusto?

secondo te è meglio leggere i count oppure fare anche la conversione in volt e da quella associare il valore?

Share this post


Link to post
Share on other sites
Livio Orsini

Più la scal è ampia minore è la risoluzione, visto che hai sempre 1023 counts.

La linearizzazione va fatta comunque; se l'operazione è fatta bene il risultato non cambia sia che la fai direttamente sui counts o che tu esegua la correzione sulla temperatura.

Share this post


Link to post
Share on other sites
slavin89

scusa l'ignoranza

la mia interfaccia..an 687 della microchip mi restituisce una linearizzazione della pt100 da -200 a 600°C e come avevo riportato mi restituisce a -200°C 0.272mV circa e 3,4 v circa a 600°C quindi sono vincolato nella scala mi sa..come posso spostare il fattore di scala riducendolo al range di mio interesse?..cioè devo modificare il circuito per avere un range minore o posso farlo da software?..

e se devo farlo da hardware secondo te dove devo andare ad agire considerato il mio circuito(an687 della microchip)

http://forum.chipmk.ru/uploads/post-482-0-49785400-1354719931_thumb.jpg

Share this post


Link to post
Share on other sites
Livio Orsini

Se aumenti R11 aumenti il guadagno; attualmente è circa 6. Puoi arrivare sino a circa 10 senza avere problemi.

Share this post


Link to post
Share on other sites
slavin89

ok..g=1+(r11/r10) = 7,47

ipotizzando di mettere r11=10k avrei un guaadagno di 4,23..

ma posso ottenere una scala precisa in relazione al guadagno oppure devo ogni volta rimisurare e vedermi i valori r/V a cosa corrispondono?

Share this post


Link to post
Share on other sites
Livio Orsini

Il guadagno di un amplificatore operazionale inconfigurazione invertente è dato da Rs/Rf. Se i valori dei resistori sono precisi il guadagno reale è identico al guadagno teorico.

Attualmente hai un guadagno di 6.47; significa che hai in ingresso 0.523 V per ottenrne 3.47 a 600C. Se fa i il gaudagno pari a 9.5 circa otterrai circa 5 V a 600C. Ovviamente a -200C avrai circa 0.4 V.

Share this post


Link to post
Share on other sites
slavin89

sei veramente un pozzo di sapienza Livio e la cosa stupefacente è che non mi neghi mai una risposta seppur le mie domande possano risultarti stupide e banali..

ti devo veramente un grosso grazie..

detto questo..domani provo a fare queste modifiche e ti faccio sapere come va...grazie ancora

Share this post


Link to post
Share on other sites
slavin89

ciao a tutti

sta sera ho riprovato il circuito e sistemato un po il programma..

ipotizzando che il mio hardware funzioni a pieno campo ossia -200÷600°C

ho utilizzato questo procedimento..

A=count letti*(800°/1024)

gradi=(A/1000)-200

dove 200 sono i gradi da togliere per avere il valore relativo..

ora sembra che funzioni anche se la temperatura non è proprio perfetta ma quello posso aggiustarlo

il fatto è che non riesco a visualizzare le temp negative..cioè quando arrivo mettiamo a 100 count sarei già sulle temp negative e invece sul display visualizzo un numero tipo 65551 che man mano che scendo con i count lui decrementa..come posso trasformarlo in valore corretto?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...