Sensor DS18B20 adalah sensor digital untuk mengukur suhu dengan tingkat akurasi yang baik. Sensor ini menggunakan protokol komunikasi OneWire, sehingga cukup dengan satu pin data untuk membaca suhu.
Spesifikasi Utama:
- Tegangan kerja: 3V – 5,5V
- Rentang suhu: -55°C hingga +125°C
- Akurasi: ±0,5°C pada -10°C hingga +85°C
- Protokol komunikasi: OneWire
- Resolusi: 9 – 12 bit
- Bentuk: paket TO-92 kecil (mirip transistor)
Karena keakuratannya, DS18B20 banyak dipakai dalam proyek IoT, sistem pendingin, inkubator, serta alat monitoring suhu.
Alat dan Bahan
No | Alat & Bahan | Jumlah |
---|---|---|
1 | Arduino Uno R3 | 1 unit |
2 | Sensor DS18B20 | 1 unit |
3 | Resistor 4.7kΩ | 1 buah |
4 | Kabel jumper | Beberapa |
5 | Breadboard (opsional) | 1 unit |
6 | Kabel USB Arduino | 1 unit |
⚠️ Catatan Penting: Pastikan resistor 4.7kΩ dipasang sebagai pull-up antara pin Data dan VCC agar sensor bekerja stabil.
Wiring Diagram DS18B20 ke Arduino Uno

Keterangan Pin:
DS18B20 Pin | Arduino Uno Pin |
---|---|
VCC | 5V |
GND | GND |
DATA | A0 |
Program Arduino Membaca Suhu DS18B20
#include <Arduino.h>
#include <OneWire.h>
#include <DallasTemperature.h>
const int oneWireBus_DS18B20 = A0;
OneWire oneWire_DS18B20(oneWireBus_DS18B20);
DallasTemperature DS18B20(&oneWire_DS18B20);
float baca_DS18B20() {
DS18B20.requestTemperatures();
delay(100);
float temperatureC = DS18B20.getTempCByIndex(0);
return temperatureC;
}
void setup() {
Serial.begin(9600);
DS18B20.begin();
}
void loop() {
float nilai_DS18B20 = baca_DS18B20();
if (nilai_DS18B20 != DEVICE_DISCONNECTED_C) {
Serial.print("Temperature: ");
Serial.print(nilai_DS18B20);
Serial.println(" °C");
} else {
Serial.println("Error: Could not read temperature data");
}
}
Penjelasan Kode Program
Agar lebih mudah dipahami, mari kita bahas per bagian:
- Library yang digunakan
OneWire.h
→ untuk komunikasi OneWire.DallasTemperature.h
→ untuk memudahkan pembacaan suhu dari DS18B20.
- Inisialisasi Sensor
const int oneWireBus_DS18B20 = A0; OneWire oneWire_DS18B20(oneWireBus_DS18B20); DallasTemperature DS18B20(&oneWire_DS18B20);
Pin A0 digunakan untuk data sensor. - Fungsi
baca_DS18B20()
- Meminta data suhu dari sensor.
- Mengembalikan nilai suhu dalam °C.
- Fungsi
setup()
- Memulai komunikasi serial pada 9600 baud.
- Menginisialisasi sensor DS18B20.
- Fungsi
loop()
- Membaca suhu dan menampilkannya di Serial Monitor.
- Memberikan pesan error jika sensor tidak terbaca.
Langkah Pengujian Sensor
Ikuti langkah berikut untuk memastikan sensor bekerja:
- Hubungkan Arduino Uno ke komputer menggunakan kabel USB.
- Upload kode di atas melalui Arduino IDE.
- Buka Serial Monitor (baud rate 9600).
- Amati hasil pembacaan suhu.
- Uji dengan menyentuh sensor; nilai suhu akan meningkat.
Tips Penting:
- Pastikan resistor pull-up 4.7kΩ terpasang.
- Hindari kabel data terlalu panjang agar pembacaan tidak terganggu.
- Jika sensor tidak terbaca, cek kembali jalur data dan koneksi ground.
Kesimpulan
Sensor DS18B20 adalah solusi sederhana dan akurat untuk mengukur suhu menggunakan Arduino Uno. Dengan hanya membutuhkan satu pin data, sensor ini sangat cocok untuk proyek monitoring suhu. Setelah memahami wiring, kode, dan pengujiannya, Anda bisa mengembangkan proyek seperti termometer digital, monitor suhu ruangan, atau sistem pendingin otomatis.
Diskusi lebih lanjut kontak di bawah :

Media sosial lainnya :
Baca juga :
Cara Menggunakan Sensor pH Tanah dengan Arduino Uno
Cara Menggunakan Sensor Jarak Laser TOF10120 dengan Arduino Uno