溫度感測器技術

客製化 DS18B20 感測器探頭 & 1-電線電纜組件

DS18B20溫度感測器1線防水電纜 + 轉接板組

我們提供各種最佳的 1-Wire DS18B20 感測器連接器, 包括 Nanoflex, 顯示連接埠, USB, 太陽的, SATA, HDMI, 這就是主意, SAS & 還有更多. 所有電纜均按照最高行業標準製造. 使用感測器電路組件進行整機組裝可讓您專注於設計和行銷, 降低成本, 並從我們的裝配線中獲益, 品質保證流程, 和製造專業知識.

DS18B20 感測器使用以下方式進行通訊 “1-金屬絲” 協定, 這意味著它使用一條數據線與微控制器進行所有通信, 允許多個感測器連接在同一條線上並透過其唯一的 64 位元串列程式碼進行識別; 此單一數據線透過電阻器拉高,感測器透過在特定時隙期間拉低線來發送訊息位元來傳輸數據.

DS18B20溫度傳感器: DS18B20防水探頭專為水下使用設計, 能夠在潮濕的環境中運作而不會被水或濕氣損壞.
溫度感測器供電電壓: 3.0電壓~5.25V;
工作溫度範圍:-55 ℃ 至 +125 ℃ (-67 華氏度 至 +257 華氏度);
提供 9 位至 12 位攝氏度溫度測量;
適配器模組配有上拉電阻, 直接連接樹莓派的GPIO,無需外接電阻;
使用此適配器模組套件可以簡化防水溫度感測器與您的專案的連接.

DS18B20數位溫度感測器探頭 & XH2.54轉PH2.0模組

DS18B20數位溫度感測器探頭 & XH2.54轉PH2.0模組

國產DS18B20晶片溫度採集TO-92溫度感測器

國產DS18B20晶片溫度採集TO-92溫度感測器

DS18B20溫度感測器1線防水電纜 + 轉接板組

DS18B20溫度感測器1線防水電纜 + 轉接板組

1. 有關 1-Wire 協議的要點:
單數據線:
感測器和微控制器之間的通訊只需要一條線.
半雙工通信:
資料可以雙向發送, 但一次只有一個方向.
寄生力量:
DS18B20在通訊過程中可以直接由數據線供電, 在某些情況下無需單獨的電源.
唯一的設備位址:
每個 DS18B20 感測器都有一個獨特的 64 位元串列程式碼,允許微控制器識別和定址匯流排上的各個感測器.
與 DS18B20 的通訊步驟:
1.1 重設脈衝:
微控制器透過將數據線拉低一段特定的持續時間來啟動通信 (重設脈衝).
1.2 存在脈衝:
如果總線上存在 DS18B20, 它將以短脈衝響應, 表明它的存在.
1.3 ROM命令:
微控制器發送 ROM 命令來讀取特定感測器的唯一 64 位元代碼 (“匹配ROM”) 或尋址總線上的所有感測器 (“跳過ROM”).
1.4 功能命令:
取決於所需的操作 (例如讀取溫度), 微控制器向感測器發送特定功能命令.
1.5 資料傳輸:
資料是逐位傳輸的, 感測器將數據線拉低以發送 ‘0’ 並讓線路變高以發送“1”.

2. DS18B20的1線通信協議的詳細說明
DS18B20傳感器被廣泛使用的原因很大程度上是由於其獨特的通信協議 – 1-電線通信協議. 該協議簡化了硬件連接的要求,並提供了傳輸數據的有效方法. 本章將深入分析1線通信協議的工作機制和數據交換過程,以為後續的編程實踐奠定堅實的基礎.
2.1 1線通信協議的基礎知識
2.1.1 1線通信協議的功能:
DS18B20 1線路通信協議也稱為 “單巴士” 科技. 它具有以下功能: – 單巴士通信: 僅用於雙向數據傳輸, 與傳統的多線傳感器通信方法相比,這大大降低了接線的複雜性. – 多設備連接: 支持在一個數據總線上連接多個設備, 並通過設備識別代碼來識別和通信. – 低功耗: 溝通過程中, 不參與通信時,該設備可以處於低功率待機狀態. – 高精度: 隨著數據傳輸時間較短, 它可以減少外部干擾並提高數據準確性.
2.1.2 1線通信的數據格式和定時分析
1線通信協議的數據格式遵循特定的計時規則. 它包括初始化時間, 寫入時間並閱讀時間安排:
初始化時機: 主機首先開始存在檢測時間 (存在脈衝) 通過將公共汽車拉下一段時間, 然後,傳感器會發出響應的存在脈衝.
寫入時間: 當主機發送寫入時間時, 它首先將公共汽車拉下來 1-15 微秒, 然後釋放公共汽車, 傳感器將公共汽車拉入 60-120 微秒響應.
閱讀時間: 主機通過拉下公共汽車並釋放傳感器通知傳感器發送數據, 傳感器將在一定的延遲後輸出總線上的數據位.

模擬器件 DS18B20+, MAXIM 可編程解析度 1-Wire 數位溫度計

模擬器件 DS18B20+, MAXIM 可編程解析度 1-Wire 數位溫度計

DS18B20 12 位元 1 線數位溫度感測器 1 儀表電纜

DS18B20 12 位元 1 線數位溫度感測器 1 儀表電纜

DS18B20感測器探頭專用於冷鏈冷庫溫濕度採集

DS18B20感測器探頭專用於冷鏈冷庫溫濕度採集

2.2 數據通訊的軟體實現
2.2.1 1線通訊的初始化與重設
在軟體層面, 1-Wire通訊的初始化和重設是通訊的第一步. 下面是實現這個過程的偽代碼:

// OneWire通訊初始化函數
無效 OneWire_Init() {
// 將總線設定為輸入模式並啟用上拉電阻
設定引腳模式(DS18B20_PIN, 輸入上拉);
// 等待公車空閒
延遲微秒(1);
// 發送復位脈衝
OneWire_重置();
}

// OneWire通訊重設功能
無效 OneWire_Reset() {
// 把公車拉下來
設定引腳模式(DS18B20_PIN, 輸出低電平);
延遲微秒(480);
// 釋放總線
設定引腳模式(DS18B20_PIN, 輸入上拉);
延遲微秒(70);
// 等待脈衝的出現
如果 (!等待OneWire存在())
// 未偵測到脈搏, 可能是感測器沒有連接或初始化失敗
處理錯誤();
延遲微秒(410);
}

// 等待脈衝的出現
布爾 WaitForOneWirePresence() {
返回讀取密碼(DS18B20_PIN) == 0; // 假設低電平是訊號存在
}

2.2.2 資料讀寫操作

數據讀寫操作是感測器通訊的核心部分. 下面的程式碼展示如何將一個位元組寫入單線匯流排:
// 將一個位元組寫入單線匯流排
無效 OneWire_WriteByte(位元組數據) {
為了 (整數我 = 0; 我 < 8; 我++) {
OneWire_WriteBit(數據 & 0x01);
數據 >>= 1;
}
}

// 向單線總線寫入一位
無效 OneWire_WriteBit(位元數據) {
設定引腳模式(DS18B20_PIN, 輸出低電平);
如果 (數據) {
// 寫入時釋放總線 1
設定引腳模式(DS18B20_PIN, 輸入上拉);
延遲微秒(1);
} 別的 {
// 寫入時繼續將總線拉低 0
延遲微秒(60);
}
設定引腳模式(DS18B20_PIN, 輸入上拉);
延遲微秒(1);
}

接下來是讀取一個位元組的函數:
// 從單線總線讀取一個位元組
位元組 OneWire_ReadByte() {
位元組資料= 0;
為了 (整數我 = 0; 我 < 8; 我++) {
數據 >>= 1;
如果 (OneWire_ReadBit())
數據 |= 0x80;
}
傳回數據;
}

// 從單線總線讀取一位
位元 OneWire_ReadBit() {
設定引腳模式(DS18B20_PIN, 輸出低電平);
設定引腳模式(DS18B20_PIN, 輸入上拉);
延遲微秒(3);
布林結果 = ReadPin(DS18B20_PIN);
延遲微秒(57);
回傳結果;
}

2.2.3 OneWire通訊的驗證機制

OneWire通訊協定在資料交換過程中採用簡單的驗證機制, 通常透過讀回寫入的資料來驗證資料的正確性. 以下是驗證寫入資料的範例程式碼:

位元組資料 = 0x55; // 假設要傳送的數據

OneWire_WriteByte(數據); // 將資料寫入 OneWire 總線

位元組讀取資料 = OneWire_ReadByte(); // 從 OneWire 總線讀回數據

如果 (讀取數據 != 數據) {
處理錯誤(); // 如果讀回的資料與寫入的資料不匹配, 處理錯誤