ホームページをリニューアルしました。旧HPはこちら
Arduino ソフト・ハードウェア

DS18B20 温度測定(Arduino)

DS18B20(デジタル温度センサー)を使った防水型温度センサーを使って、Arduinoで温度計測をする。(1-Wireインターフェースで接続する電子部品)
購入先: ShenZhen KELI Electronics Co.,Ltd
Free Shipping 5pcs DS18B20 Stainless steel package 1 meters waterproof DS18b20 temperature probe temperature sensor new in stock

Price:
US $4.68 / lot 5 pieces / lot , US $0.94 / piece

データシートDS18B20

特 徴(データシートより)
 
・DS18B20デジタル温度計は、9ビットから12ビットの摂氏温度を測定し、不揮発性で上下の境界点をユーザーがプログラム可能なアラーム機能を持っています。
・DS18B20は、マイクロプロセッサとの通信のために、1本のデータ線とGND線だけを必要とする、1-Wireバスで通信します。
・-55℃から+125℃までの動作温度範囲を持ち、-10℃から+85℃までの範囲で、±0.5℃の精度です。
・さらにDS18B20は、外部電源の供給を省略し、電源をデータ線から直接得ることができます。
 (パラサイト・パワー)
・個々のDS18B20には、独自の64ビットシリアル番号を持っています。(複数のDS18B20が、同じ1-Wireバス上で機能できます)
・したがって、1台のマイクロプロセッサを使い、広い地域に分配された多くのDS18B20を簡単に制御できます。
・この機能の恩恵を受けるアプリケーションは、空調環境制御、建物内の温度監視システム機器、または機械、およびプロセスの監視および制御システムを含んでいます。

プログラマブル分解能1-Wireデジタルサーモメータ

Arudino回路とスケッチ
参考URL:

DS18B20(1-Wire)で温度計測

Arduino+DS18B20で温度測定してみた ; 複数のDS18B20センサーの扱い記事あり

DS18B20 (digital temperature sensor) and Arduino © GPL3+

PLC – Arduino – Multiple DS18B20 Digital Temperature Sensor  ; 複数のDS18B20センサーの扱い記事あり

スケッチ例:

milesburton/Arduino-Temperature-Control-Libraryのexamples/Simple/Simple.pdeを試しました。

#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}
void loop(void)
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");

  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));

  delay(500);
}

これでシリアルコンソールに温度が表示されます。

Requesting temperatures...DONE
Temperature for the device 1 (index 0) is: 29.50
Requesting temperatures...DONE
Temperature for the device 1 (index 0) is: 29.50
Requesting temperatures...DONE
Temperature for the device 1 (index 0) is: 30.00
Requesting temperatures...DONE
Temperature for the device 1 (index 0) is: 30.00
/********************************************************************/
// First we include the libraries
#include <OneWire.h> 
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino 
#define ONE_WIRE_BUS 2 
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices  
// (not just Maxim/Dallas temperature ICs) 
OneWire oneWire(ONE_WIRE_BUS); 
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
/********************************************************************/ 
void setup(void) 
{ 
 // start serial port 
 Serial.begin(9600); 
 Serial.println("Dallas Temperature IC Control Library Demo"); 
 // Start up the library 
 sensors.begin(); 
} 
void loop(void) 
{ 
 // call sensors.requestTemperatures() to issue a global temperature 
 // request to all devices on the bus 
/********************************************************************/
 Serial.print(" Requesting temperatures..."); 
 sensors.requestTemperatures(); // Send the command to get temperature readings 
 Serial.println("DONE"); 
/********************************************************************/
 Serial.print("Temperature is: "); 
 Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?  
   // You can have more than one DS18B20 on the same bus.  
   // 0 refers to the first IC on the wire 
   delay(1000); 
} 

Makeの参考記事:DS18B20 digital temperature sensor with Arduino

コメント

タイトルとURLをコピーしました