max6675 termocoppia K e arduino (lettura con rumore)

Ciao a tutti, ho acquistato una termocoppia di tipo K ed un amplificatore max 6675, tipo questo:

|500x367

ho effettuato tutti i collegamenti e riesco a leggere la tempertura sul monitor seriale. Il codice utilizzato è il seguente:

// Sample Arduino MAX6675 Arduino Sketch

#include "max6675.h"

// lettura di termocoppia con arduino UNO e max6675


int ktcSO = 8;
int ktcCS = 9;
int ktcCLK = 10;

MAX6675 ktc(ktcCLK, ktcCS, ktcSO);

  
void setup() {
  Serial.begin(9600);
  // give the MAX a little time to settle
  delay(500);
}

void loop() {
  // basic readout test
  
   Serial.print("Deg C = "); 
   Serial.print(ktc.readCelsius());
   Serial.print("\t Deg F = ");
   Serial.println(ktc.readFahrenheit());

   delay(500);
}

Tuttavia ho notato che ho rumore di sottofondo (le temperatura oscillano anche di 20-40 °C). Come fare ?

nessuno ha qualche idea ?

Non è certo rumore, magari un falso contatto.

ho fatto alcune prove: se lo installo in un pozzetto termostatico ho il rumore, invece all’aria libera no. tenuto conto che il pozzetto termostatico è interno ad un pannello solare termico, installato su un tetto, è possibile che il rumore dipenda dall’accumulo di cariche elettrostatiche ? ossia che il pannello si comporti come un parafulmine ? premetto che il pannello non ha la messa a terra…

solman: ho fatto alcune prove: se lo installo in un pozzetto termostatico ho il rumore, invece all'aria libera no.

Non è che hai i cavi della termocoppia troppo lunghi ?

Il datasheet del MAX6675 consiglio di usare cavo intrecciato (twisted) di buona sezione nel caso di collegamenti lunghi e posizionato lontano da fonti di disturbo.

Il cavo della termocoppia è lungo 30 cm. Poi ho collegato l'amplificatore ad Arduino con circa 10 m di cavo di rete (quindi intrecciato, ma senza calza). La cosa strana è che se tolgo la termocoppia dal pozzetto termostatico (interno al collettore solare termico) leggo la temperatura ambiente in maniera stabile. Se lo posiziono all'interno del pozzetto termostatico ottengo valori di temperatura oscillanti. Per questo ho ipotizzato che il collettore solare sia esso stesso dispositivo che raccoglie interferenze e le trasmette alla termocoppia....è possibile ?

solman: Poi ho collegato l'amplificatore ad Arduino con circa 10 m di cavo di rete (quindi intrecciato, ma senza calza).

Hai collegato una periferica SPI compatible con 10 metri di cavo ? E' un miracolo se riesci a leggere qualcosa.

Astro ha perfettamente ragione: devi [u]prolungare il filo della termocoppia[/u] e portare l'amplificatore vicino ad Arduino.

Attenzione pero' che anche prolungare il cavetto della termocoppia va fatto secondo un certo criterio ... le termocoppie generano segnali dell'ordine dei millivolt (e pochi pure quelli), quindi un cavo troppo lungo potrebbe introdurre errori ...

Credo che la soluzione migliore, anche se non proprio la piu semplice, sia usare un'amplificatore per termocoppia con uscita in current-loop oppure in RS485 o RS422 (oppure costruire o trovare un convertitore gia fatto, tipo con il MAX3140 o simili, ma non so quanto possa essere economico)

Salve a tutti, credo di avere lo stesso problema di solman.

Sto realizzando il controllo di un forno elettrico e nel mio caso succede la seguente: - Forno spento: lettura normale (diciamo 23°C) - Accendo la lampadina e la ventola esterna: la lettura della temperatura si alza e oscilla molto rapidamente tra circa 50°C e 85°C - Accendo gli elementi riscaldanti: oscillazioni molto più ampie.

Ecco le prove che ho fatto: - Sostituito modulo con MAX6675 -- stesso risultato - Posto condensatore di vari tipi e dimensioni tra i poli della termocoppia -- stesso risultato - Usando un'altra termocoppia e avvicinando la punta della termocoppia a un motore elettrico (es. il ventilatore) ci sono due possibilità: 1) la calza esterna della termocoppia non tocca lo chassis del forno -> Temperatura letta correttamente e stabile 2) la calza esterna tocca lo chassis del forno -> Temperature oscillante ed errata (lo chassis è messo a terra e collegato con GND del circuito)

Ho misurato con il multimetro messo in AC tra i poli della termocoppia e il risultato è 0mV Il polo negativo della termocoppia è collegato a GND.

Accanto al modulo con MAX6675 ci sono i relais che controllano i vari elementi del forno. Magari l'interferenza elettromagnetica viene da lì? Devo fare altre prove mettendo il modulo lontano...

Qualsiasi consiglio è bene accetto.

>cosenmarco: essendo questo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

@Guglielmo: Fatto!

Ok, ho appena provato spostando il modulo lontano dai relè ed il risultato non cambia. Deduco quindi che il problema sia dovuto alla termocoppia. E non ad una difettosa ma a questo tipo in particolare.

Qualche idea ?

Marco

Il MAX6675 mette la termocoppia a massa con un piedino (T-). Se la inserisci nel pozzetto termostatico è interno ad un pannello solare termico (che sará messo a terra di protezione o impianto antifulmine) e usi una termocoppia che ha messo uno dei poli sul involucro avrai un interferenza di corrente / tensioni.

La tensione che una termocoppia K Ti da é ca 42µV per °C di differenza di temperatura. Con 100°C ha una tensione di ca 3,3mV

Ciao Uwe

Ciao Uwe, è molto probabile che, come tu descrivi, si venga a creare un loop di massa generando rumore che intralcia la lettura della tensione ai capi della termocoppia.

Questo è compatibile con le prove che ho descritto le mio post precedente:

  • Usando un'altra termocoppia e avvicinando la punta della termocoppia a un motore elettrico (es. il ventilatore) ci sono due possibilità: 1) la calza esterna della termocoppia non tocca lo chassis del forno -> Temperatura letta correttamente e stabile 2) la calza esterna tocca lo chassis del forno -> Temperature oscillante ed errata (lo chassis è messo a terra e collegato con GND del circuito)

Ho misurato con l'ohmmetro la resistenza tra calza e piedino (-) (blu) della termocoppia e mostra una resistenza di qualche Ohm. Un po' più alta con il piedino + (rosso). Questo suggerirebbe che la termocoppia, per come è costruita, è facilmente soggetta a questo problema perché di solito la calza viene a contatto con la massa essendo la punta della termocoppia normalmente avvitata con un bullone a un qualche pannello metallico messo a massa. Il loop di massa si viene a creare tra il piedino (-) della termocoppia (messo a massa nel modulo del MAX6675) e la massa del pannello al quale è avvitata la termocoppia.

Per interrompere il loop di massa è quindi necessario isolare la calza della termocoppia ??

Questo non è a volte possibile come nel mio caso: la punta è avvitata al pannello interno del forno che raggiunge più di 200°C e trovare un isolante adatto è complicato...

La soluzione più plausibile per me sarebbe: spostare la termocoppia il più lontano possibile dalle fonti di rumore elettrico. Comunque la termocoppia è sempre soggetta al problema e nel mio caso è necessaria una lettura affidabile della temperatura. Qualche altro suggerimento ?

Esistono termocoppie con case in ceramica, per uso industriale, ma non ho idea dei prezzi ... come alternativa, se hai una termocoppia che finisce con il classico "pallino" saldato, infilarla all'interno di un tubettino in ceramica ...

Se invece e' una di quelle a flangia con l'attacco a vite, serve trovare una di quelle gia isolate ... oppure si potrebbe "annegarla" in una cavita' del forno con un po di cemento per alta temperatura, ma dipende se il forno fisicamente ha uno spazio utilizzabile per quello scopo ...

Senza vedere il forno ed il punto dove va installata, altre idee non mi vengono ...

Ciao Etemenanki, grazie per i consigli. La mia termocoppia è proprio come questa

Sto attualmente provando 2 cose: 1) spostare la posizione della termocoppia in un posto "lontano" (sempre all'interno del forno) da interferenze 2) se 1) non dovesse bastare proverei a interrompere la connessione tra polo negativo della termocoppia e la massa nel modulo con MAX6675 e mettere un condensatore tra il polo e la massa grosso modo come in questo schema

Se nulla di tutto questo dovesse funzionare inizierò a pensare alla ceramica. Ho dei cannolicchi per acquario che potrebbero servire al caso anche se questo significa modificare il forno internamente per fargli spazio molto più di quanto volessi...

In quel tipo di termocoppie la calza intorno al cavo e' per forza collegata alla massa del forno, se non la si monta con la ceramica o con del cemento per alte temperature, non vedo molti altri modi per isolarla ... a te il disturbo lo da anche solo avvicinandola, o proprio quando tocchi il metallo della struttura con la sonda ?

Solo per avere un'idea, hai un'immagine del punto o vano in cui la devi montare fisicamente ?

Ci sono termocoppie che sono isolate dal involucro. Prendi una di queste.

Ciao Uwe

a te il disturbo lo da anche solo avvicinandola, o proprio quando tocchi il metallo della struttura con la sonda ?

Il disturbo è presente quando la calza tocca il metallo dello chassis.

Credo di aver risolto il problema modificando il modulo sul quale è montato il MAX6675: Foto 1 Foto 2

Ho dissaldato il piedino 2 e fatto in modo da collegarlo direttamente al negativo della termocoppia. Poi ho messo 2 condensatori da 100 uF tra i poli e la massa (adesso che il polo negativo e' stato isolato dalla massa) ed un altro tra polo positivo e polo negativo. La misura adesso non è più drasticamente affetta dalle fonti di rumore vicine indipendentemente dal fatto che la calza esterna protettiva faccia contatto o no con lo chassis del forno.

La temperatura riportata varia sempre da misura a misura di circa + o - 3 °C. Immagino che con un filtro in software si possa ottenere una buona approssimazione del valore reale.

Per me il risultato più significativo è che non ci sia più un errore sistematico nella lettura della temperatura (prima il valore oscillava intorno a un valore di circa 25-35 °C al di sopra della temperatura reale in presenza di rumore elettromagnetico).