Home » Hardware » Arduino #8: Membaca Output Sensor Suhu DS18B20

Arduino #8: Membaca Output Sensor Suhu DS18B20

by YogaBayu
by YogaBayu

Hai kembali lagi dengan saya pada tutorial seputar Arduino dan sensor nya, pada kesempatan kali ini kita masih akan membahas mengenai jenis sensor suhu yang banyak digunakan yaitu sensor DS18B20. Apaitu sensor DS18B20 ? bagaimana penggunaannya ?, mari kita bahas selengkapnya.

Pengenalan

Sensor DS18B20 adalah salah satu jenis sensor suhu yang yang memiiki 9bit-12bit ADC internal. Sensor suhu ds18b20 merupakan sensor suhu yang bekerja dengan menggunakan protokol komunikasi one-wire, yang menurut datasheet nya hanya perlu satu jalur data (dan satu ground) untuk dapat berkomunikasi dengan microprosessor. Untuk sumber daya nya sensor ini bisa menggunakan daya pada jalur datanya.

Setiap sensor DS18B20 memiliki kode serial 64-bit sehingga teman – teman dapat menggunakan sensor DS18B20 yang lebih dari satu buah sensor pada jalur komunikasi One-Wire yang sama. Jadi, ini akan memudahkan kita dalam menggunakan mengontrol output banyak sensor DS19B20 pada daerah yang luas dengan hanya menggunakan satu microprosesor.

Pengaplikasian sensor ini dalam kehidupan sehari hari diantaranya pada pemantauan suhu lingkungan suatu gedung, termometer anti air, kontrol termostatik, dan banyak lainnya.

Fitur

  • Komunikasi One-wire sehingga hanya membutuhkan satu pin komunikasi
  • Range pengukuran dari -55oC sampai +125 oC
  • Akurasi pada suhu -10oC sampai +85oC adalah 0.5oC
  • Resolusi dari sensor yang dapat dipilih mulai 9 bit sampai 12 bit
  • Untuk Mode sensor daya parasitit (VCC diambil dari jalur data) sensor ini hanya membutuhkan 2 pin yaitu DQ dan GND
  • Tersedia dalam 8-Pin SO (150 mils), 8-Pin µSOP, dan 3-Pin TO-92
  • Lebih lengkapnya silahkan teman – teman baca di datasheet ya.

Gambar diatas adalah gambar dari 3 jenis sensor DS18B20, khususyang paling kiri yang bentuknya memanjang ini anti air ya teman – teman. Secara umum sensor DS18B20 memiliki 3 kaki, yaitu GND (warna hitam), Data (warna kuning), dan VCC (warna merah). Semua jenis sensor DS18B20 memiliki 2 mode power yaitu Normal power dan Parasite Power.

Pada mode Normal power, pin akan terhubung sesuai dengan namanya yaitu VCC ke sumber tegangan (+5V), GND akan terhubung ke ground, dan Data akan terhubung ke pin digital arduino. Namun diantara pin data dan VCC diberi resistor pull-up sebesar +- 4K7 Ohm. Fungsi resistor pull-up ini untuk mengatasi kondisi mengambang (diantara Low dan High) yang terjadi pada rangkaian sensor agar keluaran dapat terdefinisi antara HIGH atau LOW (karena sensor ini outputnya digital ya teman-teman , jadi kalau tidak 0 ya 1 nilainya).

Pada Parasite Power, perbedaannya pada pin GND dan VCC disatukan dan terhubung dengan Ground. sedangkan Data tetap akan terhubung ke pin arduino dengan juga tetap menggunakan resistor pull-up. Pada mode ini daya sensor berasal dari jalur Data.

Lebih jelasnya silahkan teman – teman lihat rangkaian dibawah.

Rangkaian

Setelah mengetahui seluk beluk sensor suhu DS18B20 selanjutnya kita akan melakukan pembacaan hasil pengukurannya, rangkaian yang dipakai adalah:

Bahan yang dibutuhkan adalah:

  • 1 Buah laptop yang terinstal software arduino IDE
  • 1 Buah Arduino Uno
  • 1 Buah sensor DS18B20
  • Kabel jumper secukupnya

Library yang dibutuhkan adalah One-wire dan DallasTemperature. Teman -teman dapat mencari library ini di menu Skect -> include library – > Manage library. Dan pastikan juga laptop atau komputer teman – teman terkoneksi dengan internet agar dapat menginstalnya.

Program Yang dibutuhkan:

#include <OneWire.h> //memasukkan library
#include <DallasTemperature.h>
 
// sensor dihubungkan dengan di pin digital 2 arduino
#define ONE_WIRE_BUS 2
 
// setup sensor
OneWire oneWire(ONE_WIRE_BUS);
 
// berikan nama variabel,masukkan ke pustaka Dallas
DallasTemperature sensorSuhu(&oneWire);
 
float suhu;
 
void setup(void)
{
  Serial.begin(9600);
  sensorSuhu.begin();
}
 
void loop(void)
{
  
  suhu = ambilSuhu();
  Serial.println(suhu);     
  delay(2000);
}
 
float ambilSuhu()
{
   sensorSuhu.requestTemperatures(); //meminta library dallasTemperature untuk membaca sensor
   float suhu = sensorSuhu.getTempCByIndex(0); // 0 menunjukkan bahwa sensor hanya satu yang digunakan
   return suhu;   
}

Sekian Penjelasan dari saya mengenai sensor DS18B20 teman teman dapat mengkreasikan lebih lanjut seperti digunakan untuk termometer digital dengan menambahkan LCD atau menggunakan sensor ini untuk mengontrol sesuatu. Terima kasih

You may also like