伦伦影院久久影视,天天操天天干天天射,ririsao久久精品一区 ,一本大道香蕉大久在红桃,999久久久免费精品国产色夜,色悠悠久久综合88,亚洲国产精品久久无套麻豆,亚洲香蕉毛片久久网站,一本一道久久综合狠狠老

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

零知開源——STM32F4驅動MAX31865實現PT100高精度測溫

零知實驗室 ? 來源:PCB56242069 ? 作者:PCB56242069 ? 2025-06-06 09:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

? 簡介

本教程基于主控芯片為STM32F407VET6的零知增強板,演示如何通過MAX31865模塊讀取三線制PT100鉑電阻溫度,并通過I2C OLED實時顯示溫度值和電阻值。重點包含硬件接線配置、三線制PT100的特殊跳線修改,以及完整的代碼解析。文中還將解析PT100的溫度計算原理,并展示實際運行效果。

一、硬件簡介

1.MAX31865模塊

MAX31865是專用于RTD(電阻溫度檢測器)的信號調理芯片,支持2/3/4線制PT100/PT1000傳感器。其內置ADC可將鉑電阻的阻值變化轉換為數字信號,并通過SPI接口與主控通信。關鍵特性:

15位分辨率

支持自動誤差補償

可配置參考電阻(Rref)

2.PT100鉑電阻

PT100是一種基于鉑材料的溫度傳感器,0℃時阻值為100Ω,溫度系數為0.385Ω/℃。其阻值與溫度的關系可通過以下方式計算:

線性近似公式(適用于0~100℃):

wKgZO2hCQxKAKjlXAAAOpK_F-k4043.png

其中R0=100Ω,α=0.00385,T為溫度(℃)。

精確計算(使用Callendar-Van Dusen方程):

wKgZO2hCQyKASeHLAAAgGjuQ6C4235.png

(適用于-200℃~850℃)

MAX31865的溫度計算
芯片內部通過測量RTD電阻與參考電阻(Rref)的比例,結合查表法或公式計算實際溫度值。本代碼中調用max.temperature()函數即自動完成此過程。

二、硬件準備

1.所需材料

零知增強板(STM32F407VET6)

MAX31865模塊(支持三線制PT100)

三線制PT100傳感器

0.96寸I2C OLED顯示屏(SSD1306驅動)

杜邦線若干

2.PT100特性曲線

溫度(℃) | 0 | 100 | 200
電阻(Ω) | 100 | 138.5 | 175.8

3.MAX31865跳線修改

三線制PT100必須修改模塊電路板跳線!

找到MAX31865模塊上的Rref電阻附近的兩個跳線(標記為2和4的焊盤)。

切斷Rref正上方左側的跳線(即斷開焊盤2的連接,保留焊盤3并短接),模塊使用三線制模式。采用三線PT100,其接法如下

修改后示意圖:

wKgZPGgwQR6ASmv-ABF6nB3olgM059.png

接線時,請根據線纜顏色進行正確連接:對于兩紅一藍的線纜,將藍線接至RTD-,紅線分別接至RTD+和F+。請參照圖示,確保將觸點(2/3 Wire)焊接牢固。若遇到兩藍一紅的線纜,則需反向連接。

重要提示:若未斷開24號連接,通電測量時PT100的電阻值將僅為正常值的一半。未通電時測量值約為120Ω,但通電后可能降至60Ω左右。這是由于24號連接之間存在接地,且存在并聯電阻,導致整體電阻值降低。

4.接線配置表

MAX31865與零知標準板連接:

MAX31865引腳 零知增強板引腳 功能說明
VCC 3V3 電源正極
GND GND 電源地
CLK 52 SPI時鐘
SDO 50 數據輸出
SDI 51 數據輸入
CS 53 片選信號

OLED與零知標準板連接:

OLED引腳 零知標準板引腳 功能說明
VCC 3V3 電源正極
GND GND 電源地
SDA SDA/20 I2C數據線
SCL SCL/21 I2C時鐘線

硬件連接圖:

wKgZO2g0QOCAHlLGAAZhBCs62Rc413.png

硬件實物圖:

wKgZO2g0QLuACnw-ABUDGuCIEB0207.png

三、軟件實現

1.核心庫說明

#include 
#include 
#include 
#include 
#include     //OLED顯示驅動庫
#include    //MAX31865溫度傳感器庫文件

2.硬件初始化

// SSD1306 OLED 顯示屏初始化
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// MAX31865 初始化
#define RREF 430.0
#define RTD 100.0
Adafruit_MAX31865 max1 = Adafruit_MAX31865(53);//使用硬件SPI,如果是軟件SPI則使用: (53,51,50,52)

3. 主程序邏輯

setup()函數,
初始化串口、OLED和MAX31865,設置三線制模式:

void setup() {
  Serial.begin(115200);

  // Initialize SSD1306 display
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.display();

  // Initialize MAX31865
  max1.begin(MAX31865_3WIRE);
}

loop()函數,
循環讀取溫度并顯示:

void loop() {
  uint16_t rtd = max1.readRTD();
  float ratio = rtd;
  ratio /= 32768;
  float temp = max1.temperature(RTD, RREF);

  // Prepare display buffer
  display.clearDisplay();
  
  // Display temperature and resistance
  display.setCursor(0, 0);
  display.print(F("MAX31865 PT100 Sensor"));
  
  display.setCursor(0, 15);
  display.print(F("Temp: "));
  display.print(temp);
  display.print(F(" C"));
  
  display.setCursor(0, 30);
  display.print(F("Resistance: "));
  display.print(RREF * ratio);
  display.print(F(" "));
  display.print("Om"); // Omega symbol

  // Check error status
  uint8_t fault = max1.readFault();
  if(fault) {
    display.setCursor(0, 45);
    display.print(F("FAULT DETECTED:"));
    
    if(fault & MAX31865_FAULT_HIGHTHRESH) {
      display.setCursor(0, 55);
      display.print(F("RTD_high"));
    }
    if(fault & MAX31865_FAULT_LOWTHRESH) {
      display.setCursor(0, 55);
      display.print(F("RTD_low"));
    }
    
    max1.clearFault();
  } else {
    display.setCursor(0, 45);
    display.print(F("Status: OK"));
  }

  // Serial output for debugging
  Serial.print(F("RTD value: ")); Serial.println(rtd);
  Serial.print(F("Temperature: ")); Serial.print(temp);
  Serial.println(F(" C"));
  
  // Check and print any faults
  if (fault) {
    Serial.print(F("Fault 0x")); Serial.println(fault, HEX);
    if (fault & MAX31865_FAULT_HIGHTHRESH) {
      Serial.println(F("RTD high threshold"));
    }
    if (fault & MAX31865_FAULT_LOWTHRESH) {
      Serial.println(F("RTD low threshold"));
    }
    max1.clearFault();
  }

  display.display();
  delay(1000);
}

四、運行效果

1.OLED顯示正常狀態

wKgZO2g0Q1GAazqbABO8gRH6fV458.jpegwKgZO2g0QM2AeFDAABO8gRH6fV4325.png

第1行:標題 "MAX31865 PT100 Sensor"

第2行:實時溫度(如 "Temp: 30.3 C")

第3行:鉑電阻阻值(如 "Resistance: 112.89Ω")

第4~5行:狀態信息(正常顯示 "Status: OK",異常顯示具體錯誤)

2.串口輸出內容

打開零知開源平臺的串口監視器(波特率115200),將看到以下格式數據和檢測到的故障碼:

wKgZPGg0Q1GALtR8AARttKAeIKI047.pngwKgZO2g0QVuAZHfrAARttKAeIKI864.png

3.數據關聯說明

RTD Raw值:MAX31865直接讀取的16位ADC原始數據(范圍0~32768)。

Resistance:根據公式

wKgZPGhCQ1WAJQyBAAAXKKFnTUg086.png

計算得出。

Temperature:調用庫函數自動轉換的溫度值,內部使用Callendar-Van Dusen方程計算。

4.演示視頻

https://live.csdn.net/v/478784?spm=1001.2014.3001.5501

零知增強板驅動MAX31865讀取三線PT100溫度傳感器

5.完整工程獲取:

通過網盤分享的文件:F4_MAX31865_PT100.zip
鏈接: https://pan.baidu.com/s/1eH20AzfXBWHDDwlJ15GRAw?pwd=x6na 提取碼: x6na

注意事項:

長距離傳輸時建議使用屏蔽雙絞線

定期使用無水酒精清潔PT100探頭

避免在強電磁干擾環境下安裝傳感器

五、問題排查指南

常見異常處理

顯示白屏

檢查I2C地址是否為0x3C

確認Wire.begin()是否執行

溫度值-245℃

驗證begin()參數是否為MAX31865_3WIRE

測量RTD對地阻抗(正常應>10MΩ)

持續報錯

檢查MAX31865的24焊盤跳線是否已切斷左側焊盤、2/3 Wire焊盤和43焊盤焊錫短接。

萬用表測量PT100阻值是否正常(0℃時約100Ω,室溫30℃時約120Ω)。

校準建議

冰點校準:將PT100置于0℃環境,調整RREF使顯示0±0.3℃

滿量程校準:100℃沸水環境,微調RTD參數

線性校準:使用標準溫度源進行三點校正

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • RTD
    RTD
    +關注

    關注

    1

    文章

    162

    瀏覽量

    29335
  • 測溫
    +關注

    關注

    1

    文章

    277

    瀏覽量

    33128
  • STM32F4
    +關注

    關注

    3

    文章

    204

    瀏覽量

    30202
  • MAX31865
    +關注

    關注

    1

    文章

    9

    瀏覽量

    9845
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于 LES30-PT100-RS485 的水務水廠管道防凍測溫智能監控解決方案

    通道可選,可在水廠管道關鍵點位部署 PT100 傳感器,實現全域多點同步測溫;兼容 2/3 線制 PT100,安裝靈活、適配各種管道工況。 2.2
    發表于 03-25 09:39

    Lesminer LES30-PT100-RS485 PT100 溫度采集模塊:工業寬溫高精度測溫的硬核之選

    的 Lesminer LES30-PT100-RS485 PT100 溫度采集模塊 ,以 - 200℃~850℃超寬測溫量程、±0.3℃高精度、1~16 路靈活通道配置為核心優勢,搭配
    的頭像 發表于 02-27 11:43 ?254次閱讀

    工業測溫PT100還是PT1000?

    電機過熱是工業現場設備失效的主因之一。面對PT100PT1000兩種主流熱電阻探頭,究竟該如何選擇?本文為您解析其中的關鍵考量。工業電機過熱保護:PT100/PT1000
    的頭像 發表于 01-21 11:39 ?890次閱讀
    工業<b class='flag-5'>測溫</b>選<b class='flag-5'>PT100</b>還是<b class='flag-5'>PT</b>1000?

    STM32F407ZGT6驅動MAX31865獲取PT100溫度數據

    MAX31865 是 RTD 數字轉換器,內置 15 位模/數轉換器(ADC)、輸入保護、數字控制器、SPI 兼容接口以及相關的控制邏輯電路。
    的頭像 發表于 10-14 17:17 ?12.5w次閱讀
    <b class='flag-5'>STM32F</b>407ZGT6<b class='flag-5'>驅動</b><b class='flag-5'>MAX31865</b>獲取<b class='flag-5'>PT100</b>溫度數據

    開源——STM32F407VET6驅動SHT41溫濕度傳感器完整教程

    目基于STM32F407VET6增強板,實現SHT41高精度溫濕度傳感器的驅動和數據采集。S
    發表于 07-10 12:01

    開源——STM32F407VET6驅動SHT41溫濕度傳感器完整教程

    摘要:本項目基于STM32F407VET6增強板驅動SHT41高精度溫濕度傳感器,實現±0.
    的頭像 發表于 07-09 18:53 ?1692次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F</b>407VET6<b class='flag-5'>驅動</b>SHT41溫濕度傳感器完整教程

    開源——STM32F4實現ILI9486顯示屏UI界面系列教程(三):記事本功能實現

    功能。 ? 一、硬件連接(同電子書教程)硬件連接方式與電子書閱讀器完全一致,請參考系列教程(一)的硬件連接部分。顯示屏直接插入增強板專用接口,無需額外連線。系列教程直達:
    發表于 06-27 09:51

    開源——STM32F4實現ILI9486顯示屏UI界面系列教程(二):日歷功能實現

    本教程詳細介紹了基于STM32F4和ILI9486觸摸屏的日歷應用開發,涵蓋硬件連接、軟件實現IDE配置。核心功能包括月份視圖展示、滑動切換和日期標記,通過LVGL庫
    的頭像 發表于 06-25 17:34 ?796次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F4</b><b class='flag-5'>實現</b>ILI9486顯示屏UI界面系列教程(二):日歷功能<b class='flag-5'>實現</b>

    開源——STM32F4驅動MAX31865實現PT100高精度測溫

    材料增強板(STM32F407VET6) MAX31865模塊(支持三線制PT100) 三線制PT1
    發表于 05-26 18:52

    開源——STM32F4驅動MAX31865實現PT100高精度測溫

    STM32F
    PCB56242069
    發布于 :2025年05月26日 18:25:17

    開源——STM32F1驅動MAX31865讀取三線PT100溫度傳感器

    簡介本教程基于標準板(主控芯片STM32F103RBT6),演示如何通過MAX31865模塊讀取三線制PT100鉑電阻溫度,并通過I2C
    發表于 05-23 18:27

    開源——STM32F1驅動MAX31865讀取三線PT100溫度傳感器

    本教程詳細介紹了如何使用標準板(STM32F103RBT6)通過MAX31865模塊讀取三線制PT100鉑電阻溫度,并通過I2C OLE
    的頭像 發表于 05-23 18:05 ?2900次閱讀
    <b class='flag-5'>零</b><b class='flag-5'>知</b><b class='flag-5'>開源</b>——<b class='flag-5'>STM32F</b>1<b class='flag-5'>驅動</b><b class='flag-5'>MAX31865</b>讀取三線<b class='flag-5'>PT100</b>溫度傳感器

    PT100溫度采集模塊:數字濾波、線阻修正

    PT100溫度采集模塊是一種基于鉑電阻(Pt100)的高精度溫度檢測裝置,憑借其穩定性、抗干擾能力和寬溫度范圍(-200℃~+850℃),廣泛應用于需要精確溫度監測與控制的場景。 一、產品參數 1.
    的頭像 發表于 05-16 15:06 ?1211次閱讀

    pt100熱電阻采集模塊:0.01℃精度,10HZ高速率

    ,0℃時電阻為100Ω,測溫范圍廣(-200℃~+850℃)。采集模塊通過精密電路測量其微小電阻變化,轉換為標準電信號輸出。 二、技術特性 - 測量精度高精度24位AD轉換,默認采樣
    的頭像 發表于 05-06 16:41 ?1440次閱讀

    max31865測溫跳變大

    pt100max31865測室溫跳變比較大,會從23.04跳到23.47,23.75反復跳變超過了0.5的誤差范圍,在VDD和GND之間加上0.1和10的濾波電容也不行,該怎么解決
    發表于 04-30 23:34