“SKU:RB-02S160 DS18B20 水溫傳感器”的版本間的差異

來自ALSROBOT WiKi
跳轉至: 導航搜索
?使用方法
?example1_Arduino
第37行: 第37行:
 
:USB 數據線
 
:USB 數據線
 
* 硬件連接
 
* 硬件連接
 +
[[文件:02S16004.png|500px|縮略圖|居中]]
  
 
* 示例程序
 
* 示例程序

2018年9月3日 (一) 14:35的版本

02S16001.jpg

目錄

產品概述

DS18B20是常用的數字溫度傳感器,其輸出的是數字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。 DS18B20數字溫度傳感器接線方便,封裝成后可應用于多種場合,如管道式,螺紋式,磁鐵吸附式,不銹鋼封裝式等。主要根據應用場合的不同而改變其外觀。
DS18B20水溫水溫傳感器采用的是不銹鋼封裝,防水防潮。封裝后的DS18B20可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合,適用于各種狹小空間設備數字測溫和控制領域。

產品參數

基本參數

  1. 品名:DS18B20水溫傳感器
  2. 貨號:RB-02S160
  3. 品牌:奧松機器人
  4. 產地:哈爾濱
  5. 固定孔:M3*4
  6. 電纜長度:90cm
  7. 傳感器:直徑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位

02S16002.png

使用方法

example1_Arduino

  • 主要硬件
Arduino UNO 控制器
傳感器擴展板 V5.0
DS18B20 溫度傳感器
單頭防插反 3P 傳感器連接線
USB 數據線
  • 硬件連接
02S16004.png
  • 示例程序
#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;
}
  • 程序效果
02S16003.png

example2_Arduino

  • 主要硬件
  • 硬件連接
  • 示例程序
  • 程序效果

example3_Raspberry Pi

  • 主要硬件
  • 硬件連接
  • 示例程序
  • 程序效果

相關資料

  • DS18B20 溫度傳感器 datasheet & 示例程序

百度網盤鏈接: