方法1: ワンワイヤーライブラリを使用する方法
- Arduino IDEを開き、ツールメニューから「ライブラリをインクルード」を選択します。
- ライブラリマネージャーで「OneWire」を検索し、インストールします。
- 以下のコードを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ライブラリを使用する方法
- Arduino IDEを開き、ツールメニューから「ライブラリをインクルード」を選択します。
- ライブラリマネージャーで「DallasTemperature」を検索し、インストールします。
- 以下のコードを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つの方法とコード例です。これらの方法を使用することで、温度センサーからのデータを取得し、シリアルモニターに表示することができます。さらに、取得したデータを他の用途に活用することも可能です。