- Messaggi: 7
- Ringraziamenti ricevuti 0
Termocoppie e linearizzazione
- Shark786
- Autore della discussione
- Nuovo Utente
-

Come da titolo vorrei parlare un pò di termocoppie, perchè è un argomento che mi ha sempre incuriosito ma non ho mai usato in nessun progetto. Ora ho avuto modo di recuperare da un vecchio oggetto una termocoppia J e vorrei fare fare qualche esperimento per impraticihirmi un pochino. Ho già scaricato diverse application note della microchip (il circuito di misura sarà gestito da un PIC) sia della TI ma nessuna di quelle che ho letto parlano con esattezza di come fa re la linearizzazione software. Vi spiego un pò quello che ho fatto e a che punto sono.
Lo scopo del mio progettino è realizzare un termometro basato su PIC serie 16 e una termocoppia J per un range di temperatura tra lo 0 e i 200 gradi con la massima precisione psossibile. Ho optato per una soluzione che è su un application note microchip, la AN844 (figura 4), in cui usa un sensore esterno con uscita in tensione sul blocco isotermo per avere la misura di temperatura ambientale e la termocoppia che prima viene amplificata e poi mandata all'ADC. In particolare io userei un LM35 come sensore ambientale e un amplificatore da strumentazione della TI, l'INA2126 che ho già a casa per amplificare il segnale della termocoppia. E qui arrivano i problemi perchè le documentazioni a questo punto si fanno vaghe e inconcludenti.
Da quello che ho capito dovrei misurare la temperatura con l'LM35, convertire questa misura in "tensione equivalente della termocoppia fittizia" che si forma sul blocco isotermo, sommarla a quella della termocoopia che arriva all'ADC del PIC e poi linearizzare la temperatura in qualche modo col polinomio del NIST... si ma come? Non sono nemmeno sicuro della somma delle tensioni perchè leggendo in rete si parla di valore della tensione della termocoppia a 0 gradi per il riferimento.... ecco quindi mi servirebbe una mano a capire cosa devo fare una volta lette le tensioni dei 2 sensori.
C'è qualche anima mia che può aiutarmi? E mi scuso se ho sbagliato sezione ma non sapevo se metterla in digitale o analogica, è un problema misto

Si prega Accesso o Crea un account a partecipare alla conversazione.
Olltre alla teoria vedi qualche progetto.
In particolare sul sito della Texas Instruments hai diversi reference Designs :
Questo progetto per esempio dovrebbe gia' rispondere a tutte le domande.
Interessante e' anche : " Thermal Management Handbook " della Maxim.
Nella guida trovi anche chip ad 8 pin ai quali puoi collegare direttamente una termocoppia e leggere la temperatura locale e la tensione della termocoppia che converti secondo le equazioni riportate nel datasheet.
In base al modello del chip puoi usare termocoppie di tipo J, K...
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Shark786
- Autore della discussione
- Nuovo Utente
-
- Messaggi: 7
- Ringraziamenti ricevuti 0
Mauro Laurenti ha scritto: Ti posso dare un consiglio.
Olltre alla teoria vedi qualche progetto.
In particolare sul sito della Texas Instruments hai diversi reference Designs :
Questo progetto per esempio dovrebbe gia' rispondere a tutte le domande.
Interessante e' anche : " Thermal Management Handbook " della Maxim.
Nella guida trovi anche chip ad 8 pin ai quali puoi collegare direttamente una termocoppia e leggere la temperatura locale e la tensione della termocoppia che converti secondo le equazioni riportate nel datasheet.
In base al modello del chip puoi usare termocoppie di tipo J, K...
Saluti,
Mauro
grazie mille per il materiale e per la risposta. Il progetto linkato è molto utile ma alla voce "software" mi rimanda ad un file dove all'interno ci sono solo file relativi al pcb e allo schema senza listato. Ho aperto la guida con un esempio pratico sul calcolo della temperatura ma quando c'è da fare la linearizzazione, nomina il metodo del polinomio saltando la trattazione e poi fa un esempio sulla look-up table. Che si, è un metodo efficiente e veloce che non impiega risorse sulla CPU ma sto usando un PIC16... fare un look up table con molti valori mi occupa spazio e basta, non ho invece problemi di CPU. Vorrei usare l'altro metodo, se solo riuscissi a trovare une sempio pratico

La maxim fa il MAX31855 che farebbe proprio al caso mio, ho ordinato il sample qualche tempo fa per provarlo ma sono state solo imprecazioni. Poi leggendo una tesi di un ragazzo trovata su google, si capisce che è un integrato sensibile ai disturbi, tant'è che ha dovuto cambiarlo. La mia prova è stata semplice, ho collegato tutto tranne la termocoppia, in quel caso avrei dovuto trovare ad 1 il bit che avvisa di problemi in generale e poi il bit specifico della "termocoppia scollegata" ad 1.... beh a volte lo dava a volte no, a volte succedeva pure che il bit dell'errore generale non era a 1 mentre il bit relativi agli errori specifici sfarfallavano (cosa che secondo il datasheet non può accadere, se c'è un errore vanno ad uno contemporanemanete quello generale e quello dell'errore specifico) . Potrebbe pure essere che ho sbagliato io a settarlo eh ma non mi va di perderci troppo tempo dietro, preferisco qualcosa di software (così cambiando termocoppia, non devo cambiare tutto).
PS: ho fatto la prova con un oscilloscopio che ha la decodifica seriale (I2C, SPI ecc ecc), quindi leggevo direttamente i dati dall'oscilloscopio, sono sicuro che fosse l'integrato a sfarfallare
Si prega Accesso o Crea un account a partecipare alla conversazione.
Guarda anche gli altri progetti.
C'e' per esempio anche un progetto per il LaunchPad MSP430.
Relativamente al MAX31855, hai i filtri EMI in ingresso?
LA termocoppia e' un'antenna e il segnale fornito puo' essere facilmente confrontabile con disturbi EMI.
Mi sembra strano che sia cosi "pessimo", non si potrebbe usare.
Ci deve essere qualche altro problema.
Saluti,
Mauro
Si prega Accesso o Crea un account a partecipare alla conversazione.
- Shark786
- Autore della discussione
- Nuovo Utente
-
- Messaggi: 7
- Ringraziamenti ricevuti 0
Mauro Laurenti ha scritto: Il programma credo sia disponibile.
Guarda anche gli altri progetti.
C'e' per esempio anche un progetto per il LaunchPad MSP430.
Relativamente al MAX31855, hai i filtri EMI in ingresso?
LA termocoppia e' un'antenna e il segnale fornito puo' essere facilmente confrontabile con disturbi EMI.
Mi sembra strano che sia cosi "pessimo", non si potrebbe usare.
Ci deve essere qualche altro problema.
Saluti,
Mauro
ho trovato quello per MSP430 e usa la look-up table, non è quello che cercavo ma almeno ho un esempio da cui prendere spunto. Grazie.
Per quanto riguarda l'integrato max, non c'è il filtro EMI perchè il problema si presenta senza la termocoppia collegata! Ho fatto questa prova apposta perchè conosco già il risultato in partenza. Dovrei leggere 1 sul bit di errore generale e 1 su quello relativo all'errore "termocoppia scollegata". Invece questi bit sfarfallano da una lettura ad un altra.
E' la prima volta che uso la SPI ma non credo sia un problema del programma, perchè ho usato il code configurator proprio per eliminare un altra variabile nel sistema

Un ipotetico problema potrebbe essere il "clock stretching". Devo leggere 32 bit (registro in cui ci sono tutte le info, dagli errori, alle temperature della termocoppia e del sensore interno) ma non esistono librerie per SPI, almeno non per la serie PIC16, che permettono di leggere/scrivere più di 8 bit per volta. Per cui succede che ogni 8 bit il clock viene "congelato" fin quando non riprendere la lettura del byte successivo e forse questo da fastidio al MAX. Da datasheet non si capisce se può essere un problema, dice solo che finchè si mantiene abilitato il chip select, l'integrato non fa ulteriori letture sulla termocoppia quindi i dati nel registro sono congelati
Si prega Accesso o Crea un account a partecipare alla conversazione.
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Forum - Ultimi messaggi
-
- progetto can
- da marcelloraja
-
- MODULO GSM SIM900A
- da Mauro Laurenti
-
- Freedom III e compilazioni fallite
- da Mauro Laurenti
-
- Gestione degli errori su comunicazione seriale
- da Mauro Laurenti
-
- Timer0 e interrupt
- da Mauro Laurenti