Adafruit MAX31865 e PT100

Salve a tutti, vi pongo il mio problema :slight_smile:
Ho fatto qualche ricerca ma non riesco a venirne a capo.

Ho una sonda pt100(3 fili) collegata al MAX31865, come codice di arduino ho usato quello di base fornito dalla libreria del MAX31865.

Il problema è che la sonda non invia nessun riferimento della temperatura.

Come schema ho replicato questo -> https://cdn-shop.adafruit.com/970x728/3328-05.jpg

Qualche suggerimento ?

Grazie

mmmm vedere codice please... :slight_smile:

p.s.
hai fatto questo vero?

For 3-wire usage. Solder closed the jumper labeled 2/3 Wire and cut the wire connecting the left side of the 2-way jumper right above Rref. Then solder closed the right side labeled 3

Eccolo :slight_smile:

/*************************************************** 
  This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865

  Designed specifically to work with the Adafruit RTD Sensor
  ----> https://www.adafruit.com/products/3328

  This sensor uses SPI to communicate, 4 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Adafruit_MAX31865.h>

// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 max = Adafruit_MAX31865(10, 11, 12, 13);
// use hardware SPI, just pass in the CS pin
//Adafruit_MAX31865 max = Adafruit_MAX31865(10);

// The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000
#define RREF      430.0
// The 'nominal' 0-degrees-C resistance of the sensor
// 100.0 for PT100, 1000.0 for PT1000
#define RNOMINAL  100.0

void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit MAX31865 PT100 Sensor Test!");

  max.begin(MAX31865_3WIRE);  // set to 2WIRE or 4WIRE as necessary
}


void loop() {
  uint16_t rtd = max.readRTD();

  Serial.print("RTD value: "); Serial.println(rtd);
  float ratio = rtd;
  ratio /= 32768;
  Serial.print("Ratio = "); Serial.println(ratio,8);
  Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
  Serial.print("Temperature = "); Serial.println(max.temperature(RNOMINAL, RREF));

  // Check and print any faults
  uint8_t fault = max.readFault();
  if (fault) {
    Serial.print("Fault 0x"); Serial.println(fault, HEX);
    if (fault & MAX31865_FAULT_HIGHTHRESH) {
      Serial.println("RTD High Threshold"); 
    }
    if (fault & MAX31865_FAULT_LOWTHRESH) {
      Serial.println("RTD Low Threshold"); 
    }
    if (fault & MAX31865_FAULT_REFINLOW) {
      Serial.println("REFIN- > 0.85 x Bias"); 
    }
    if (fault & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_RTDINLOW) {
      Serial.println("RTDIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_OVUV) {
      Serial.println("Under/Over voltage"); 
    }
    max.clearFault();
  }
  Serial.println();
  delay(1000);
}

Patrick_M:
mmmm vedere codice please... :slight_smile:

p.s.
hai fatto questo vero?

Si esatto.

ancora una domanda.... che arduino stai usando? inutile usi spi software :slight_smile:
anzi due :slight_smile:

non ti scrive nulla sul serial monitor?

e anche su questa parte sei sicuro...

Connect the three wires to the three right-most contacts. Use a multimeter to determine which wires connect together directly (2 ohms or so between them) and which connect through the RTD. Chances are the wires that connect together are the same color. The two wires that are connected together should go in the right-most blocks (labeled F+ and RTD+). It doesn't matter which of the matched pair is on the outside or inside. The third wire that is on the other side of the RTD connects to the left (marked F- or RTD-). It doesn't matter which slot it's in!

scusa ma visto che il programma che usi è quello degli esempi ci deve per forza essere un qualche errore banale o nei collegamenti o per esempio.... che il serial monitor non l'hai settato a 115200 bps :smiley:

Rispondo alle varie domande:

  • Uso arduino uno.

-Nel seriale mi da delle informazioni, al momento non sono al pc per poter fare copia incolla, appena posso invio qualcosa.

Ricordo qualcosa del tipo:

RTD value: 0
Ratio = 0
Temperature = -242

Per quanto riguarda i collegamenti, appena posso invio una foto.

Grazie

Un PT100 a tre fili é una resistenza di platino di 100 Ohm con un filo da una pare a 2 dal altra.

Sei sicuro di aver collegato il PT100 in modi giusto sulla scheda?

Ciao Uwe

uwefed:
Un PT100 a tre fili é una resistenza di platino di 100 Ohm con un filo da una pare a 2 dal altra.

Sei sicuro di aver collegato il PT100 in modi giusto sulla scheda?

Ciao Uwe

Ho seguito questo schema -> https://cdn-shop.adafruit.com/970x728/3328-05.jpg

Ho rifatto i collegamenti e ora nel monitor ho questi valori con la sonda collegata:

RTD value: 0
Ratio = 0.00000000
Resistance = 0.00000000
Temperature = -242.02
Fault 0x40
RTD Low Threshold

Senza sonda invece:

RTD value: 262
Ratio = 0.00799561
Resistance = 3.43811035
Temperature = -234.35

sembra che la sonda non ti dia nessuna differenza di resistenza quindi, se sei sicuro dei collegamenti
prova a cambiare sonda... :wink:

La sonda ha due cavi blu e uno rosso:

i due blu li ho collegati su F+,RTD+
il rosso RTD-

Avessi un'altra sonda avrei già provato ;D

si, si come da schema....
purtroppo non so che dirti...
hai controllato i valori di resistenza tra i cari cavi? cioè tra i 2 bleu non dovrebbe esserci differenza mentre dovresti trovarne tra bleu e rosso

Ricollegato tutto con calma e ora mi segna valori simili:

RTD value: 274
Ratio = 0.00836182
Resistance = 3.59558105
Temperature = -234.08

Ma per avere la temperatura espressa in gradi celsius ?
Dato che quel -234 non credo siano gradi.

Grazie

ikaroweb:
La sonda ha due cavi blu e uno rosso:
i due blu li ho collegati su F+,RTD+
il rosso RTD-

Non ho quelle sonde ma mi hai incuriosito...
Non so se i colori siano standard, ma il rosso non va su F- ? Vedi qui la prima foto:

Quella sonda ha due blu e un rosso, mentre la mia ha due rossi e un blu.
Ma l'ingresso dove c'è collegato il rosso è RTD-, F- si trova al bordo cosi come F+ si trova dall'altro.

Si, diciamo che probabilmente i colori della tua sonda sono invertiti (sul sito Adafriut ci sono anche altre foto e sono tutte con 2 rossi ed un blu per quelle a 3 fili), però ok, in QUESTA pagina dicono che non è rilevante F- o RTD- ("The third wire that is on the other side of the RTD connects to the left (marked F- or RTD-). It doesn't matter which slot it's in!").
Quindi evidentemente non è questo, scusami... :wink:

proprio per questo ho scritto che è meglio se prova i 3 connettori con un tester, in modo da trovare i 2 che vanno messi su F+ e RTD+
:slight_smile:

Patrick_M:
proprio per questo ho scritto che è meglio se prova i 3 connettori con un tester, in modo da trovare i 2 che vanno messi su F+ e RTD+
:slight_smile:

Si ho verificato e sono i due blu, però non capisco perchè la temperatura che tira fuori è completamente sballata.

ikaroweb:
La sonda ha due cavi blu e uno rosso:

i due blu li ho collegati su F+,RTD+
il rosso RTD-

Avessi un'altra sonda avrei già provato ;D

ikaroweb:
Quella sonda ha due blu e un rosso, mentre la mia ha due rossi e un blu.
Ma l'ingresso dove c'è collegato il rosso è RTD-, F- si trova al bordo cosi come F+ si trova dall'altro.

ikaroweb:
Si ho verificato e sono i due blu, però non capisco perchè la temperatura che tira fuori è completamente sballata.

:smiley: :smiley: siamo molto indecisi sui colori dei cavi a quanto leggo....

Ma misurando con un tester cosa misuri tra i vari cavi?

Oltre ai PT100 esistono anche i PT500 e PT1000 e Ni100