ماژول MAX31865 یک ADC و تقویت کننده برای سنسور های RTD است . RTD ها سنسور های دمای مقاومتی هستند که با تغییرات دما مقاومت آن ها تغییر می کند . یکی از مدل های کاربردی این سنسور ها ، مدل PT100 می باشد . PT100 به صورت گسترده ای در کاربرد های صنعتی استفاده می شود . این سنسور حساسیت و دقت بسیار بالایی دارد . به طور کلی در سنسور های RTD تغییرات مقاوما به نسبت دما بسیار کم است (بر خلاف NTC یا PTC ها ) یعنی با تغییر هر درجه سانتی گراد ، مقاومت سنسور تنها مقدار کوچکی تغییر خواهد کرد . از این رو اندازه گیری خروجی این سنسور ها نیازمند یک تقویت کننده می باشد .MAX31865 دارای یک طبقه تقویت کننده است که به راحتی می توانید سنسور های PT100 و PT1000 را با آن راه اندازی کنید . MAX31865 در جهت راه اندازی سنسور های PT100 و PT1000 طراحی و بهینه شده است .

در تصویر زیر پایه های این سنسور نشان داده شده است :

 

ماژول های MAX31865 ممکن است بخاطر سازنده های مختلف ، ظاهر متفاوتی داشته باشند اما پین های آن مشکترک است و تفاوتی با هم ندارند .

1- VIN پین تغذیه ماژول می باشد .

2- GND پین زمین ماژول است .

3- 3.3 خروجی رگولاتور ماژول می باشد .

4- سایر پین ها برای ارتباط SPI می باشند .

 

 

راه اندازی سنسور PT100 با ماژول MAX31865 :

پین های ماژول را به ترتیب زیر به آردوینو متصل کنید :

  • CLK —–> Digital #13
  • SDO —–> Digital #12
  • SDI —–> Digital #11
  • CS —–> Digital #10
  • VIN——>5V
  • GND——->GND

سنسور های PT100 مدل های مختلفی دارند که شامل مدل های دو سیم ، سه سیم و چهار سیم هستند . در این مثال ما از یک سنسور سه سیم استفاده خواهیم کرد لذا جامپر های ماژول را به صورت زیر به همدیگر لحیم کنید :

دقت کنید که رنگ سیم های خروجی سنسور به صورت دم سیم قرمز و یک سیم آبی است . سیم های سنسور را به صورت تصویر بالا به ماژول متصل کنید و در صورتی که پین های سنسور شما مشخص نبود ، دو سیم قرمز نسبت به هم مقاومتی در حد 2 اهم دارند .

کد های آردوینو :

#include <Adafruit_MAX31865.h>

// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 thermo = Adafruit_MAX31865(10, 11, 12, 13);
// use hardware SPI, just pass in the CS pin
//Adafruit_MAX31865 thermo = 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!");

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


void loop() {
  uint16_t rtd = thermo.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(thermo.temperature(RNOMINAL, RREF));

  // Check and print any faults
  uint8_t fault = thermo.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"); 
    }
    thermo.clearFault();
  }
  Serial.println();
  delay(1000);
}

 

Tags:
About Author: USER_4