“SKU:RB-02S160 DS18B20 水溫傳感器”的版本間的差異
來自ALSROBOT WiKi
(→?使用方法) |
(→?example1_Arduino) |
||
第37行: | 第37行: | ||
:USB 數據線 | :USB 數據線 | ||
* 硬件連接 | * 硬件連接 | ||
+ | [[文件:02S16004.png|500px|縮略圖|居中]] | ||
* 示例程序 | * 示例程序 |
2018年9月3日 (一) 14:35的版本
目錄 |
產品概述
DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。 DS18B20數字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式等。主要根據應用場合的不同而改變其外觀。
DS18B20水溫水溫傳感器采用的是不銹鋼封裝,防水防潮。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合,適用于各種狹小空間設備數字測溫和控制領域。
產品參數
基本參數
- 品名:DS18B20水溫傳感器
- 貨號:RB-02S160
- 品牌:奧松機器人
- 產地:哈爾濱
- 固定孔:M3*4
- 電纜長度:90cm
- 傳感器:直徑6mm,長30mm
電氣參數
1.接口類型:3P防插反接口
2.信號類型:數字信號
3.工作電壓:3V - 5.5V
4.引腳定義:
- +:電源正極
- -:電源負極
- S:信號端
5.傳感器接口:KF2510-3P防插反接口
6.測試范圍:-55℃~+125℃(-67°F至+ 257°F)
7.測量精度:在-10~+85℃范圍內精確度為±5℃
8.測量分辨率:溫度計分辨率可以被使用者選擇為9~12位
使用方法
example1_Arduino
- 主要硬件
- Arduino UNO 控制器
- 傳感器擴展板 V5.0
- DS18B20 溫度傳感器
- 單頭防插反 3P 傳感器連接線
- USB 數據線
- 硬件連接
- 示例程序
#define Skip_ROM 0xCC #define Convert_T 0x44 #define Read_scratchpad 0xBE #define Port_18B20 7 #define Tx_18B20 pinMode(Port_18B20, OUTPUT) #define Rx_18B20 pinMode(Port_18B20, INPUT) #define Set_Port_18B20_High digitalWrite(Port_18B20, HIGH) #define Set_Port_18B20_Low digitalWrite(Port_18B20, LOW) #define Read_Port_18B20 digitalRead(Port_18B20) unsigned char DS18B20_reset(); void DS18B20_write(char WRT); unsigned char DS18B20_read(); unsigned short tempL = 0; unsigned short tempH = 0; void setup() { Serial.begin(9600); } void loop() { unsigned int temp = 0; float Temperature = 0.0; if(!DS18B20_reset()) { DS18B20_write(Skip_ROM); DS18B20_write(Convert_T); delay(750); DS18B20_reset(); DS18B20_write(Skip_ROM); DS18B20_write(Read_scratchpad); tempL = DS18B20_read(); tempH = DS18B20_read(); temp = ((unsigned int)tempH << 8) + (unsigned int)tempL; temp = (float)temp * 6.25; Temperature = (float)temp/100; Serial.print("Temperature: "); Serial.println(Temperature); } } unsigned char DS18B20_reset() { Tx_18B20; Set_Port_18B20_Low; delayMicroseconds(480); Rx_18B20; delayMicroseconds(60); if(Read_Port_18B20 == 0) { delayMicroseconds(480); return 0; } else { delayMicroseconds(480); return 1; } } void DS18B20_write(char WRT) { char i = 0, Cmd = 0; Cmd = WRT; Rx_18B20; for(i = 0; i< 8; i++) { if((Cmd & (1<<i)) != 0) { Tx_18B20; Set_Port_18B20_Low; delayMicroseconds(1); Rx_18B20; delayMicroseconds(60); } else { Tx_18B20; Set_Port_18B20_Low; delayMicroseconds(60); Rx_18B20; } } } unsigned char DS18B20_read() { char i = 0, result = 0; Rx_18B20; for(i = 0; i < 8; i++) { Tx_18B20; Set_Port_18B20_Low; delayMicroseconds(2); Rx_18B20; if(Read_Port_18B20 != 0) result |= 1<<i; delayMicroseconds(60); } return result; }
- 程序效果
example2_Arduino
- 主要硬件
- 硬件連接
- 示例程序
- 程序效果
example3_Raspberry Pi
- 主要硬件
- 硬件連接
- 示例程序
- 程序效果
相關資料
- DS18B20 溫度傳感器 datasheet & 示例程序
百度網盤鏈接: