ArduinoでDallas 18B20温度センサーを使用する方法


方法1: ワンワイヤーライブラリを使用する方法

  1. Arduino IDEを開き、ツールメニューから「ライブラリをインクルード」を選択します。
  2. ライブラリマネージャーで「OneWire」を検索し、インストールします。
  3. 以下のコードをArduinoに書き込みます:
#include <OneWire.h>
#define ONE_WIRE_BUS_PIN 2
OneWire oneWire(ONE_WIRE_BUS_PIN);
void setup() {
  Serial.begin(9600);
}
void loop() {
  byte addr[8];
  float temp;
  if (oneWire.search(addr)) {
    if (OneWire::crc8(addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return;
    }
    if (addr[0] != 0x28) {
      Serial.println("Device is not DS18B20!");
      return;
    }
    oneWire.reset();
    oneWire.select(addr);
    oneWire.write(0x44, 1); // Start temperature conversion
    delay(800); // Wait for conversion to complete
    oneWire.reset();
    oneWire.select(addr);
    oneWire.write(0xBE); // Read scratchpad
    for (byte i = 0; i < 9; i++) {
      byte data = oneWire.read();
      if (i == 0) {
        temp = (float)data * 0.0625;
      }
    }
    Serial.print("Temperature: ");
    Serial.print(temp);
    Serial.println(" °C");
  }
}

方法2: DallasTemperatureライブラリを使用する方法

  1. Arduino IDEを開き、ツールメニューから「ライブラリをインクルード」を選択します。
  2. ライブラリマネージャーで「DallasTemperature」を検索し、インストールします。
  3. 以下のコードをArduinoに書き込みます:
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS_PIN 2
OneWire oneWire(ONE_WIRE_BUS_PIN);
DallasTemperature sensors(&oneWire);
void setup() {
  Serial.begin(9600);
  sensors.begin();
}
void loop() {
  sensors.requestTemperatures();
  float temp = sensors.getTempCByIndex(0);
  Serial.print("Temperature: ");
  Serial.print(temp);
  Serial.println(" °C");
  delay(1000);
}

以上が、Dallas 18B20温度センサーをArduinoで使用するための2つの方法とコード例です。これらの方法を使用することで、温度センサーからのデータを取得し、シリアルモニターに表示することができます。さらに、取得したデータを他の用途に活用することも可能です。