Vai al contenuto
PLC Forum


Strano funzionamento MAX31865 per PT100


Fabri82

Messaggi consigliati

Ciao a tutti,

qualche settimana fa ho chiesto informazioni sulla possibilità di calibrare una PT100 in quanto ho bisogno di una certa precisione e prontamente mi avete dato le opportune dritte per cercare di ottenere una lettura più corretta possibile. Grazie ancora 🙂

Ad oggi sto usando un Arduino UNO R3 con un MAX31865 sul quale collego una PT100.

Oltre a questo ho una scheda micro SD per fare un Datalogger che condivide con il MAX31865 il protocollo SPI (ovviamente con i singoli CS definiti e "separati") e un moduletto RTC come orologio.

Tutto funziona!

 

L'anomalia qual'è: se al MAX31865 collego V+ e GND la lettura è completamente sballata (-242°...come se andasse a fondo scala). Se tolgo il GND le letture sono corrette e tutto funziona...

Sapete dirmi come mai???

 

Grazie mille!

 

Link al commento
Condividi su altri siti


L'architettura che hai descritto èdel tutto simile a quella che ho usato io a suo tempo, che poi ho scartato preferendo un'altra interfaccia per la PT1000, come ti ho già acritto nell'altra discussione.

Proabilmente c'è un problema con uno dei moduli, dovresti mettere il tipo di moduli che hai usato e, magari, il link al sito dove li hai acquistati. A volte queste "cineserie" hanno problemi misconosciuti, che i produttori si guardano bene dal dichiarare.

Link al commento
Condividi su altri siti

Il MAX31865, come molti convertitori A/D, ha due riferimenti (GND), uno relativo alla sezione analogica ed uno a quella digitale, prima di collegarli insieme andrebbe letto bene il datasheet per capire eventuali controindicazioni. Non conosco bene quell'integrato e quindi non saprei darti una risposta, ma potrebbe darsi che il problema derivi da un'errata connessione dei riferimenti, per cui quando unisci le due GND (se hai fatto così), trasli lo zero della sezione analogica con conseguenze immaginabili sulla misura.

Purtroppo i tutorial delle innumerevoli applicazioni su Arduino, raramente consigliano lo studio dei datasheet dei componenti utilizzati, puntando alla semplicità e velocità di realizzazione, per cui o funziona tutto subito oppure no, ma in entrambi i casi lo sperimentatore (o meglio l'esecutore) resta senza alcuna informazione sul perchè funzioni o no.

Link al commento
Condividi su altri siti

4 minuti fa, camp1 ha scritto:

Il MAX31865, come molti convertitori A/D, ha due riferimenti (GND), uno relativo alla sezione analogica ed uno a quella digitale, prima di collegarli insieme andrebbe letto bene il datasheet per capire eventuali controindicazioni.

 

Il fatto è che sta usando un modulo che faa uso del MAX31865; questi moduli hanno dei jumpers e/o dei ponticelli da saldare per scegliere tra alcune opzioni, come tipo di collegamento (2fili, 3 fili, 4 fili), tipo di RTC, etc..

Solitamente presentano un nymero di terminali limitato e precostituito. Per questo motivo ho chiesto il riferimento al tipo di modulo impiegato. Ad esempio se è di Adafruit è un conto, ma se è di altri produttori più economici, le cose potrebbero essere differenti. Ho già usato questi moduli nella medesima configurazione che sta usando l'autore della discussione.

 

10 minuti fa, camp1 ha scritto:

Purtroppo i tutorial delle innumerevoli applicazioni su Arduino, raramente consigliano lo studio dei datasheet dei componenti utilizzati,

 

Vero! Inoltre tutto sembra così facile che anche persone senza le necessarie (io direi addirittura indispensabili) nozioni fondamentali di elettronica e di informatica, sono indotte a realizzare apparati di cui non comprendono appieno il funzionamento e le relative problematiche.

Link al commento
Condividi su altri siti

Se hai utilizzato la board classica di Arduino ci sono i 4 morsetti per la misura della pt100, una sola gnd verso Arduino...  L'integrato intensivo ha 3 gnd...

 

Link al commento
Condividi su altri siti

6 hours ago, Livio Orsini said:

Vero! Inoltre tutto sembra così facile che anche persone senza le necessarie (io direi addirittura indispensabili) nozioni fondamentali di elettronica e di informatica, sono indotte a realizzare apparati di cui non comprendono appieno il funzionamento e le relative problematiche.

 

Direi pure che gran parte della gente che si mette a smanettare sulla falsariga dei tutorial ormai onnipresenti, non ha la più pallida idea di cosa stia costruendo e tanto meno di come faccia a funzionare.

E' il risultato della rivoluzione Arduino, un grande successo commerciale di sicuro, se ne è conseguito anche un successo formativo avrei tanti dubbi

Link al commento
Condividi su altri siti

Il 19/9/2024 alle 06:43 , Livio Orsini ha scritto:

L'architettura che hai descritto èdel tutto simile a quella che ho usato io a suo tempo, che poi ho scartato preferendo un'altra interfaccia per la PT1000, come ti ho già acritto nell'altra discussione.

Proabilmente c'è un problema con uno dei moduli, dovresti mettere il tipo di moduli che hai usato e, magari, il link al sito dove li hai acquistati. A volte queste "cineserie" hanno problemi misconosciuti, che i produttori si guardano bene dal dichiarare.

Ciao Livio, la scheda MAX31865 è di Adafruit acquistata su Amazon. Mentre la SD sempre su Amazon mi è stata spedita da AZdelivery.

Ho dato una letta al data scheet presente sul sito di Adafruit e ho trovato lo schema elettrico della scheda...

A livello di connessione entrambe le GND sono in comune.

 

MAX31865.jpeg

MAX31865_.jpeg

SD micro.png

Schema MAX31865.png

Link al commento
Condividi su altri siti

Il 19/9/2024 alle 09:16 , max.bocca ha scritto:

Se hai utilizzato la board classica di Arduino ci sono i 4 morsetti per la misura della pt100, una sola gnd verso Arduino...  L'integrato intensivo ha 3 gnd...

 

Ciao Max,

intendi la board classica di Adafruit? In questo caso sì, è l'originale. Ho postato le foto.

Per integrato intensivo cosa intendi?

Link al commento
Condividi su altri siti

Il 19/9/2024 alle 14:09 , camp1 ha scritto:

 

Direi pure che gran parte della gente che si mette a smanettare sulla falsariga dei tutorial ormai onnipresenti, non ha la più pallida idea di cosa stia costruendo e tanto meno di come faccia a funzionare.

E' il risultato della rivoluzione Arduino, un grande successo commerciale di sicuro, se ne è conseguito anche un successo formativo avrei tanti dubbi

Ciao Camp,

ti do ragione in pieno. Io non sono un ingegnere quindi la mia conoscenza di elettronica è piuttosto medio-bassa. Sono qui per curiosità, diletto e soprattutto per imparare da voi che di sicuro siete più competenti. I miei progetti sono assolutamente indirizzati ad un uso dilettantistico e non pretendo di assemblare un circuito da replicare e vendere 🤣. Comunque se ti va di aiutarmi sono tutto orecchie. Se la spiegazione è troppo articolata e necessità di troppo tempo, lo capisco e cercherò di venirne a capo in altra maniera.

Grazie mille😃👍

Link al commento
Condividi su altri siti

Conosco le due schede e sono schede di buona qualità, sempre con riferimento al livello hobbystico tipico di arduino.

 

A questo punto serve uno schema con l'esatto percorso che fanno tutti i cavi di collegamento tra le schede, arduino e l'alimentatore.

Magari anche un foto di insieme "dell'accrocco".

 

Quasi certamente è questione di un giro di "comuni" non corretto.

Link al commento
Condividi su altri siti

10 ore fa, Livio Orsini ha scritto:

Conosco le due schede e sono schede di buona qualità, sempre con riferimento al livello hobbystico tipico di arduino.

 

A questo punto serve uno schema con l'esatto percorso che fanno tutti i cavi di collegamento tra le schede, arduino e l'alimentatore.

Magari anche un foto di insieme "dell'accrocco".

 

Quasi certamente è questione di un giro di "comuni" non corretto.

Ciao Livio,

grazie come sempre della disponibilità.

Questo è lo schema (perdona la grafica ma ho dovuto inventarmi qualcosa che più ci si avvicina).

I segnali di SPI a parte il CS sono insieme sia per il MAX31865 che per la scheda SD.

Le alimentazioni partono tutte da Arduino (forse pretendo un po' troppo a livello di corrente??).

Arduino lo alimento al momento con un alimentatore esterno che mi da 6V in uscita e lo collego al connettore apposito su Arduino.

 

A volte vedo che che premendo "reset" sulla scheda Arduino la lettura della temperatura ritorna corretta.

Non c'è una vera e propria logica...a volte succede che la temperatura venga letta sbagliata (-242) a volte tutto gira bene.

 

Oltre a questi due dispositivi ho un display e un modulo RTC collegati via I2C.

 

 

Schermata 2024-09-21 alle 16.36.02.png

Link al commento
Condividi su altri siti

12 ore fa, Fabri82 ha scritto:

Arduino lo alimento al momento con un alimentatore esterno che mi da 6V in uscita e lo collego al connettore apposito su Arduino.

 

 

6V sono pochi, se cede solo un poco con il caricoil regolatore interno non lavora più; per arduino si raccomandano tensioni >=7V (io uso un regolaore esterno di 8V, così posso interporre un filtro LC senza problemi).

 

12 ore fa, Fabri82 ha scritto:

Oltre a questi due dispositivi ho un display e un modulo RTC collegati via I2C.

 

 

Si è un classico per un data logger di temperatura.

 

Forrse il problema è dovuto alle interconnessioni fatte sui connettorie sulla brad board.

Quando cominci ad avere un po' troppi fili, come in questo caso, meglio usare la shield di arduino con morsettiere a vite ed appoggiare i 3 moduli sulla bread board.

 

L'errore potrebbe essere causato dall'alimentazione insuffciente o con disturbi.Il reset di arduino, che ripristina tutto, sembra confermarlo.

 

Usa anche un'uscita di arduino per pilotare un LED, fai blinkare il LED contando i cicli del main loop; ad ogni inizio del main decrementi un contatore che hai presettato inizialmente, poi fai un test se il contatore è >1, se non lo è lo ricarichi e cambi stato aal'uscita che pilota il LED. Così hai una spia visiva si ci sono rallentamenti o blocchi del main.

Link al commento
Condividi su altri siti

Anch'io penso si tratti di un problema di insufficiente corrente di alimentazione, il display lcd assorbe parecchio per la retroilluminazione e arduini potrebbe non farcela, specialmente se gli dai così poco margine sul regolatore interno.

Derivare i 5V da arduino non è consigliabile quando devi alimentare display che assorbono parecchio.

Ti consiglio di usare un alimentatore almeno da 8V 500mA, un 7805 esterno e con quello alimenti tutto, arduino incluso direttamente sui 5V, se trovi un alimentatore che ti da direttamente 5V almeno 500mA, meglio, tipo una porta usb di un pc

Link al commento
Condividi su altri siti

3 ore fa, Livio Orsini ha scritto:

 

6V sono pochi, se cede solo un poco con il caricoil regolatore interno non lavora più; per arduino si raccomandano tensioni >=7V (io uso un regolaore esterno di 8V, così posso interporre un filtro LC senza problemi).

 

 

Si è un classico per un data logger di temperatura.

 

Forrse il problema è dovuto alle interconnessioni fatte sui connettorie sulla brad board.

Quando cominci ad avere un po' troppi fili, come in questo caso, meglio usare la shield di arduino con morsettiere a vite ed appoggiare i 3 moduli sulla bread board.

 

L'errore potrebbe essere causato dall'alimentazione insuffciente o con disturbi.Il reset di arduino, che ripristina tutto, sembra confermarlo.

 

Usa anche un'uscita di arduino per pilotare un LED, fai blinkare il LED contando i cicli del main loop; ad ogni inizio del main decrementi un contatore che hai presettato inizialmente, poi fai un test se il contatore è >1, se non lo è lo ricarichi e cambi stato aal'uscita che pilota il LED. Così hai una spia visiva si ci sono rallentamenti o blocchi del main.

 

Ottima idea Livio,

provo a verificare con un led come dici tu 👍.

 Anche l'alimentazione e le connessioni vedo di sistemarle, magari saldandole su una millefori.

 

Ti ringrazio ancora!

Buona giornata!

Link al commento
Condividi su altri siti

55 minuti fa, Fabri82 ha scritto:

 Anche l'alimentazione e le connessioni vedo di sistemarle, magari saldandole su una millefori.

 

Io ho alcune shield, acquistate su Amazon, che oltre a d avere le uscite con morsetti hanno al centro la zona millefori. In questo modo ci ho saldato la scheda SD card ed il modulo RTC, cablando sia il bus sia le alimentazioni direttamente al punto di saldatura della morsettiera.

Inoltre, visto che uso un display 4x20, retro illuminato lo alimento con un LM 7805, che prende l'ingresso dal 7808 che va ad alimentare arduino, tramite una cella LC, per filtrare eventuali disturbi.

Poi uso anche il watch dog timer per effettuare un eventuale reset, in caso di programma andato a farfalle.😄

Link al commento
Condividi su altri siti

Piccolo aggiornamento in merito...

Ho rifatto il cablaggio del mio piccolo circuito cercando di capire quali componenti andassero in conflitto con la lettura della temperatura. Diciamo che sono andato per esclusione.

In pratica tutto funziona bene tranne quando collego il MISO del modulo SD. All'istante la temperatura va fuori scala (-242). A questo punto se tolgo GND al MAX31865 la temperatura torna corretta.

Non so se come indizio possa far venire in mente delle soluzioni...ma è quello che succede.

 

Link al commento
Condividi su altri siti

Ci sono parecchi moduli per sd card che creano quel problema, prova a cercare con google "sd card arduino module miso problem", vengono fuori un bel po' di risultati.

 

Ciao, Ale.

Link al commento
Condividi su altri siti

3 hours ago, Fabri82 said:

Piccolo aggiornamento in merito...

Ho rifatto il cablaggio del mio piccolo circuito cercando di capire quali componenti andassero in conflitto con la lettura della temperatura. Diciamo che sono andato per esclusione.

In pratica tutto funziona bene tranne quando collego il MISO del modulo SD. All'istante la temperatura va fuori scala (-242). A questo punto se tolgo GND al MAX31865 la temperatura torna corretta.

Non so se come indizio possa far venire in mente delle soluzioni...ma è quello che succede.

 

Non vorrei ripetermi, ma al solito si discute con diverse incognite in ballo, il che rende la discussione inutile, dal mio modesto punto di vista.

Stai usando delle funzioni di libreria il cui codice io personalmente non conosco, ma che immagino neanche tu, per pilotare degli oggetti (scheda sd, trasduttore di temperatura) con il protocollo SPI senza conoscere le specifiche modalità di gestione del protocollo da parte dei due oggetti citati.

Osservi un evento, ma non sai quali sottoeventi a livello di handshake fra le varie schede lo hanno generato.

Se avesse funzionato non avresti saputo il perchè, non ti funziona, ma il risultato è uguale, per capirlo bisognerebbe analizzare con l'oscilloscopio cosa avviene su quel link SPI e seguire il codice che sta girando sotto le funzioni di libreria, sulla base dei datasheet dei vari componenti, solo così si potrebbe capire se qualche istruzione viola qualche vincolo del protocollo e perchè.

La cosa più probabile è che una transazione con la scheda sd non viene correttamente conclusa ed il protocollo resta appeso in qualche stato strano, per cui la successiva con il sensore non inizia neppure o chissà dove si pianta ed il mic,ro legge valori sballati.

Togliendo il riferimento magari qualche valore di tensione sulla linea cambia bruscamente e consente il reset dell protocollo in uno stato noto per cui il micro riesce a ripartire, ma parliamo per ipotesi campate sul nulla, è come contare dei gatti neri in una stanza buia....

Link al commento
Condividi su altri siti

2 ore fa, camp1 ha scritto:

Non vorrei ripetermi, ma al solito si discute con diverse incognite in ballo, il che rende la discussione inutile, dal mio modesto punto di vista.

Stai usando delle funzioni di libreria il cui codice io personalmente non conosco, ma che immagino neanche tu, per pilotare degli oggetti (scheda sd, trasduttore di temperatura) con il protocollo SPI senza conoscere le specifiche modalità di gestione del protocollo da parte dei due oggetti citati.

Osservi un evento, ma non sai quali sottoeventi a livello di handshake fra le varie schede lo hanno generato.

Se avesse funzionato non avresti saputo il perchè, non ti funziona, ma il risultato è uguale, per capirlo bisognerebbe analizzare con l'oscilloscopio cosa avviene su quel link SPI e seguire il codice che sta girando sotto le funzioni di libreria, sulla base dei datasheet dei vari componenti, solo così si potrebbe capire se qualche istruzione viola qualche vincolo del protocollo e perchè.

La cosa più probabile è che una transazione con la scheda sd non viene correttamente conclusa ed il protocollo resta appeso in qualche stato strano, per cui la successiva con il sensore non inizia neppure o chissà dove si pianta ed il mic,ro legge valori sballati.

Togliendo il riferimento magari qualche valore di tensione sulla linea cambia bruscamente e consente il reset dell protocollo in uno stato noto per cui il micro riesce a ripartire, ma parliamo per ipotesi campate sul nulla, è come contare dei gatti neri in una stanza buia....

 

Ciao camp1,

grazie mille per l'esaustivo chiarimento.

Riconfermo il fatto di non essere un ingegnere o super esperto di elettronica. La mia è pura curiosità, mi diverte semplicemente provare a dialogare con questa schedina e in questo periodo in cui sono a casa con una gamba rotta 🙂...mi passo il tempo anche così. 

La tua esposizione è chiarissima e non fa una piega.

Vedrò se riesco ad uscirne in qualche modo. 

Se qualcuno a qualche altra idea perché magari ci è già passato da questo strano funzionamento, sono tutto orecchie.

 

 

 

Link al commento
Condividi su altri siti

8 ore fa, Fabri82 ha scritto:

Se qualcuno a qualche altra idea perché magari ci è già passato da questo strano funzionamento, sono tutto orecchie.

 

 

Hai un modo abbastanza semplice per stabilire se è un problema elettrico o SW.

Fai un programmino di testdove mantieni tutta l'inizializzazione del set upcome l'attuale. Poi nel main loop chiami solo la funzione per leggere la temperatura e visualizzarla.

Se il problema è legato alle funzioni di libreria che si usano per gestire la SD Card in questo modo le escludi, se il problema è elettrico invece continuerai ad avere letture errate.

 

Il Bus SPI è fatto per lavorare in parallelo, quindi non dovrbbero eserci problemi elettrici. Però leggendo quello che hai scritto mi è tornato alla mente un problema che ho incontrato anch'io qualche anno fa, e che mi era andato nel dimenticatoio. 😕

Su alcune schede SD c'è un problema dovuto al fatto che i segnali SPI con enable disabilitato (segnale SD), non vanno in tristate, ovvero in alta impedenza.In particolare, se ben ricordo, il miso rimane alto. C'erano in rete anche le modifiche Hw da effettuare sulla scheda per ovviare il problema. Io, invece, risolsi l'inghippo cambiando modello di scheda.

 

Se, nel tuo caso, si tratta di un problema dovuto al conflitto elettrico della linea MISO, allora anche se il software non accede alla scheda il problema permane.

Link al commento
Condividi su altri siti

Il 24/9/2024 alle 07:05 , Livio Orsini ha scritto:

 

Hai un modo abbastanza semplice per stabilire se è un problema elettrico o SW.

Fai un programmino di testdove mantieni tutta l'inizializzazione del set upcome l'attuale. Poi nel main loop chiami solo la funzione per leggere la temperatura e visualizzarla.

Se il problema è legato alle funzioni di libreria che si usano per gestire la SD Card in questo modo le escludi, se il problema è elettrico invece continuerai ad avere letture errate.

 

Il Bus SPI è fatto per lavorare in parallelo, quindi non dovrbbero eserci problemi elettrici. Però leggendo quello che hai scritto mi è tornato alla mente un problema che ho incontrato anch'io qualche anno fa, e che mi era andato nel dimenticatoio. 😕

Su alcune schede SD c'è un problema dovuto al fatto che i segnali SPI con enable disabilitato (segnale SD), non vanno in tristate, ovvero in alta impedenza.In particolare, se ben ricordo, il miso rimane alto. C'erano in rete anche le modifiche Hw da effettuare sulla scheda per ovviare il problema. Io, invece, risolsi l'inghippo cambiando modello di scheda.

 

Se, nel tuo caso, si tratta di un problema dovuto al conflitto elettrico della linea MISO, allora anche se il software non accede alla scheda il problema permane.

 

Ciao Livio,

rieccomi...ho provato a verificare mantenendo l'inizializzazione completa e richiamando nel Loop la sola lettura della temperatura e il problema persiste.

A livello elettrico non capisco dove potrebbe essere il problema in quanto, seppur avendo molti fili/collegamenti, è tutto molto semplice.

 

L'unico test che mi manca a questo punto è quello di sostituire il modulo SD....

 

 

 

Link al commento
Condividi su altri siti

31 minuti fa, Fabri82 ha scritto:

L'unico test che mi manca a questo punto è quello di sostituire il modulo SD....

 

Puoi fare prima una prova rapida: togli i collegamenti della scheda SD e riverifica con il programma di test che hai fatto.

Link al commento
Condividi su altri siti

1 ora fa, Livio Orsini ha scritto:

 

Puoi fare prima una prova rapida: togli i collegamenti della scheda SD e riverifica con il programma di test che hai fatto.

 

Tolti i collegamenti della SD il sistema funziona.

Link al commento
Condividi su altri siti

3 ore fa, Fabri82 ha scritto:

Tolti i collegamenti della SD il sistema funziona.

 

Se è il problema che penso sia, dovresto provare a togliere solo i segnali di MISO e MOSI (perchè non miri cordo quale dei due da problemi, anche se credo sia MOSI quello che non va in tri state). Se tutto funziona ancora bene, togli alternativamente l'uno e l'altro così da individuare quale da problemi.

Se mi ricordo, quando ho tempo e , soprattutto, buona volontà😄, faccio una ricerca tra i vari giga di documenti archiviati e vedo di recuperare il tipo di scheda che faquesto scherzo e la modifica circuitale proposta per ovvire l'inconveniente. Io mi sono rifiutato di apportare le modifiche sul modulino, perchè proprio non me la sento, vista l'agilità delle dita e l'acutezza visiva che mi ritrovo.

 

Anche cambiando tipo di modulo per la SD card, non è detto che tutto funzioni, perchè potrebbero avere lo stesso problema.

Se riesci a trovare in rete lo schema elettrico del tuo modulo, lo si capisce anche dal circuito che da problemi.

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