Vai al contenuto
PLC Forum


Interfacciare Pic 16F877 A Pt100Ohm


slavin89

Messaggi consigliati


  • Risposte 132
  • Created
  • Ultima risposta

Top Posters In This Topic

  • slavin89

    62

  • Livio Orsini

    58

  • Nikiki

    6

  • GiRock

    4

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?

Modificato: da slavin89
Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

  • 2 months later...

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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?

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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?

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...