0% menganggap dokumen ini bermanfaat (0 suara)
579 tayangan14 halaman

Penggunaan Sensor Suhu Ds18b20 Dengan Arduino

[Ringkasan] Sensor suhu DS18B20 merupakan sensor digital yang dapat mendeteksi suhu dengan akurasi 0,5 derajat Celcius pada rentang suhu -10 hingga 85 derajat Celcius. Penelitian ini bertujuan untuk mengetahui cara pengoperasian sensor DS18B20 dengan Arduino Uno, meliputi pengukuran suhu, pengaturan resolusi pembacaan, dan pembandingan hasil pengukuran dengan alat ukur lain.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
579 tayangan14 halaman

Penggunaan Sensor Suhu Ds18b20 Dengan Arduino

[Ringkasan] Sensor suhu DS18B20 merupakan sensor digital yang dapat mendeteksi suhu dengan akurasi 0,5 derajat Celcius pada rentang suhu -10 hingga 85 derajat Celcius. Penelitian ini bertujuan untuk mengetahui cara pengoperasian sensor DS18B20 dengan Arduino Uno, meliputi pengukuran suhu, pengaturan resolusi pembacaan, dan pembandingan hasil pengukuran dengan alat ukur lain.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 14

PENGGUNAAN SENSOR SUHU DS18B20 DENGAN ARDUINO UNO

1
Andreas Agung N, 2Joshua Perdana S.P, 3Purwo Ageng M
Politeknik ATMI Surakarta; Jl. Adisucipto Km 9,5 Karanganyar, 57174
Program Studi Teknik Mekatronika, Politeknik ATMI Surakarta
Telp. (0271) 7686220 E-mail: [email protected]
1
[email protected] [email protected] [email protected]

Abstract

Sensor DS18B20 merupakan sensor digital yang memiliki 12-bit ADC internal yang
berfungsi untuk mendeteksi suhu pada suatu ruangan, benda, maupun cairan.
Sensor suhu ini memiliki akurasi +/- 0.5 derajat pada rentang suhu -10 derajat
sampai +85 derajat celcius. Penelitian ini bertujuan untuk mengetahui penggunaan
sensor suhu DS18B20 dengan Arduino Uno

Keywords : Sensor suhu, DS18B20, Microcontroller Arduino Uno

Abstract
DS18B20 is a digital sensor that has an internal 12-bit ADC which detect the
temperature in a room, objects, or liquid. The sensor has an accuracy of +/- 0.5
degrees between -10 degrees to +85 degrees Celsius. The purpose of this research
is to know, how to use sensors DS18B20 with Arduino Uno

Keywords: temperature sensor, DS18B20, Arduino Microcontroller Uno

1. PENDAHULUAN

Sensor suhu adalah komponen yang dipakai untuk merubah besaran panas
menjadi listrik untuk kemudian di analisa besarannya. Pembuatan sensor ini bisa
memakai sejumlah metode, salah satu caranya adalah dengan cara memakai
material yang akan mengubah nilai hambatan listrik tergantung dari suhu yang
diukur (thermistor). Cara lain yang dapat digunakan adalah dengan mengukur
tegangan 2 ujung kawat logam berbeda jenis yang kedua ujungnya disatukan atau
disebut termokopel.
Penelitian ini dilakukan dengan tujuan untuk mengetahui bagaimana cara
pengoperasian sensor suhu DS18B20 dengan menggunakan kontrol Arduino Uno.
Dengan menggunakan DS18B20 pengguna tidak perlu mengukur hambatan
thermistor ataupun termokopel, karena keluaran data sudah ter-digitalisasi.
Pengoperasian sensor suhu yang dimaksud diantaranya
melakukan pengukuran, mengatur resolusi
pembacaan dari sensor, dan membandingkan hasil
pengukuran sensor dengan alat ukur lainnya.

2. TINJAUAN PUSTAKA
2.1 Arduino Uno

Arduino UNO adalah sebuah board mikrokontroler yang berbasis pada


ATmega328. Arduino UNO mempunyai 14 pin digital input/output (6 di
antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah
osilator Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP
header, dan sebuat tombol reset. Arduino UNO memuat semua yang
dibutuhkan untuk menunjang mikrokontroler, mudah menghubungkannya ke
sebuah computer dengan sebuah kabel USB atau mensuplainya dengan
sebuah adaptor AC ke DC atau menggunakan baterai untuk memulainya.

Mikrokontroler ATmega328
Tegangan pengoperasian 5V
Tegangan input yang
7-12V
disarankan
Batas tegangan input 6-20V
Jumlah pin I/O digital 14 (6 di antaranya menyediakan keluaran PWM)
Jumlah pin input analog 6
Arus DC tiap pin I/O 40 mA
Arus DC untuk pin 3.3V 50 mA
32 KB (ATmega328), sekitar 0.5 KB digunakan
Memori Flash
oleh bootloader
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Clock Speed 16 MHz
2.2
Sensor Suhu
DS18B20

DS18B20 merupakan sebuah sensor suhu dimana akurasi nilai suhu


dan kecepatan pengukuran memiliki kestabilan yang jauh lebih baik dari
sensor LM35DZ. DS18B20 adalah sensor suhu digital yang dikeluarkan oleh
Dallas Semiconductor. Untuk pembacaan suhu, sensor menngunakan protokol
1 wire communication. DS18B20 memilki 3 pin yang terdiri dari +5V, Ground
dan Data Input/Output.

Temperature sensor DS18B20 beroperasi pada suhu -55 celcius


hingga +125 celcius. Keunggulan DS18B20 yaitu output berupa data digital
dengan nilai ketelitian 0.5 celcius selama kisaran temperature 10 celcius
sampai + 85 celcius hingga mempermudah pembacaan oleh
mikrokontroller. Dalam pemograman DS18B20, library terdiri atas
OneWire.cpp dan OneWire.h.

3. METODE PENELITIAN
3.1 METODE
Metode yang dilakukan saat penelitian adalah menentukan proses
input dan output yang terjadi dalam sensor dengan menggunakan komunikasi
onewire karena pada sensor ini, sinyal masuk dan keluar melalui satu kabel.
Sinyal masuk dan keluar ini harus dipisah pembacaannya sehingga data
dapat diolah dengan baik. Setelah mampu menentukan kapan proses input
dan output terjadi, metode selanjutnya adalah membuat program sederhana
untuk mengukur suhu aktual, jika sudah berhasil maka dilanjutkan dengan
membuat program untuk mengatur nilai resolusi dari pembacaan sensor, dan
terakhir membandingkan hasil pengukuran sensor suhu DS18B20 dengan alat
ukur suhu lainnya.
3.2 ALAT DAN BAHAN
Alat yang digunakan saat penelitian yaitu :
1. Arduino Uno
2. Sensor Suhu DS18B20
3. Breadboard
4. Jumper
5. Kabel USB tipe B
6. Resistor 2,2 k
7. Resistor 2,7 k
8. Multimeter Fluke 179

3.3 PROSES PENELITIAN

I. Membuat program sederhana control sensor suhu sehingga sensor suhu


dapat melakukan pengukuran sederhana.

#include <OneWire.h> //menggunakan library OneWire.h untuk komunikasi


dengan DS18B20
OneWire ds(10);
//menggunakan kaki 10 untuk komunikasi OneWire
//dan membuat obyek bernama ds
byte i; //variabel yang digunakan pada pengulangan for
byte data[9];
//array untuk menyalin scratchpad dalam DS18B20
byte addr[8];
//array untuk menyalin ROM dalam DS18B20
int16_t raw;
//variabel 16 bit untuk menyimpan data suhu 2 byte
float celsius;
//variabel suhu yang telah diolah
void setup(void) {
Serial.begin(9600); //menggunakan komunikasi serial untuk menampilkan
suhu di monitor
}
void loop(void) {
ds.search(addr);
if (addr[0] == 0x28) { //apabila byte pertama bernilai 2816
Serial.print(" Chip is DS18B20! "); //chip benar DS18S20
//membandingkan kalkulasi CRC byte 0 s.d. 7 ROM
if (OneWire::crc8(addr, 7) == addr[7]) { //dengan byte ke-8 ROM
Serial.print("Chip CRC is valid! ");//menampilkan tulisan bila CRC
valid
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr); //memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0x48, 1); //mengirim perintah 4816 untuk mengisi EEPROM
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr); //memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0x44, 1);//mengirim perintah 4416 untuk menulis suhu di
scratchpad
delay(1000); //memberi waktu penulisan suhu di scratchpad
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr);//memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0xBE); //mengirim 1 byte perintah permintaan data
scratchpad
for ( i = 0; i < 9; i++) {
data[i] = ds.read(); //menyalin tiap byte scratchpad ke
variabel data
}
//membandingkan kalkulasi CRC byte 0 s.d. 7 scratchpad
if (OneWire::crc8(data, 8) == data[8]) { //dengan byte ke-8
scratchpad
Serial.print("Data CRC is valid!");
raw = (data[1] << 8) | data[0]; //menggabungkan byte 1 dan
byte 0
celsius = (float)raw / 16.0;//mengubah 2 byte suhu ke pecahan
Serial.print(" Temperature = ");
Serial.print(celsius, 4); //menampilkan suhu
Serial.println(" Celsius, ");
} else {
Serial.println("Data CRC is not valid! ");//bila CRC Data tidak valid
}
} else {
Serial.println("Chip CRC is not valid! "); //bila CRC Chip tidak valid
}
} else {
Serial.println("Chip is not DS18B20"); //bila chip bukan DS18B20
}
}
Dari program sederhana diatas maka serial monitor dapat
menampilkan hasil pengukuran dari sensor DS18B20 yang kita
gunakan.

II. Membuat program yang dapat mengatur resolusi pembacaan dari


sensor suhu dengan tujuan untuk mendapat ketelitian pembacaan saat
sensor digunakan

#include <OneWire.h> //menggunakan library OneWire.h untuk komunikasi


dengan DS18B20
OneWire ds(10);
//menggunakan kaki 10 untuk komunikasi OneWire
//dan membuat obyek bernama ds
byte i; //variabel yang digunakan pada pengulangan for
byte data[9];
//array untuk menyalin scratchpad dalam DS18B20
byte addr[8];
//array untuk menyalin ROM dalam DS18B20
int16_t raw;
//variabel 16 bit untuk menyimpan data suhu 2 byte
float celsius;
//variabel suhu yang telah diolah
void setup(void) {
Serial.begin(9600); //menggunakan komunikasi serial untuk menampilkan
suhu di monitor
}
void loop(void) {
ds.search(addr);
if (addr[0] == 0x28) { //apabila byte pertama bernilai 2816
Serial.print(" Chip is DS18B20! "); //chip benar DS18S20
//membandingkan kalkulasi CRC byte 0 s.d. 7 ROM
if (OneWire::crc8(addr, 7) == addr[7]) { //dengan byte ke-8 ROM
Serial.print("Chip CRC is valid! ");//menampilkan tulisan bila CRC
valid
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr);//memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0x4E, 1);//mengirim perintah 4E16 untuk mengisi EEPROM
ds.write(0b00000000, 1); //perintah byte pertama
ds.write(0b00000000, 1); //perintah byte kedua
//ds.write(0b00011111, 1);//perintah byte ketiga 1F16 agar resolusi
0,5oC
//ds.write(0b00111111, 1);//perintah byte ketiga 3F16 agar resolusi
0,25oC
//ds.write(0b01011111, 1);//perintah byte ketiga 5F16 agar resolusi
0,125oC
ds.write(0b01111111, 1);//perintah byte ketiga 7F16 agar resolusi
0,0625oC
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr); //memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0x48, 1); //mengirim perintah 4816 untuk mengisi EEPROM
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr); //memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0x44, 1);//mengirim perintah 4416 untuk menulis suhu di
scratchpad
delay(1000); //memberi waktu penulisan suhu di scratchpad
ds.reset(); //reset komunikasi sebelum memulainya
ds.select(addr);//memilih chip dengan ROM sesuai nilai terakhir
variabel
ds.write(0xBE); //mengirim 1 byte perintah permintaan data
scratchpad
for ( i = 0; i < 9; i++) {
data[i] = ds.read(); //menyalin tiap byte scratchpad ke
variabel data
}
//membandingkan kalkulasi CRC byte 0 s.d. 7 scratchpad
if (OneWire::crc8(data, 8) == data[8]) { //dengan byte ke-8
scratchpad
Serial.print("Data CRC is valid!");
raw = (data[1] << 8) | data[0]; //menggabungkan byte 1 dan
byte 0
celsius = (float)raw / 16.0;//mengubah 2 byte suhu ke pecahan
Serial.print(" Temperature = ");
Serial.print(celsius, 4); //menampilkan suhu
Serial.println(" Celsius, ");
} else {
Serial.println("Data CRC is not valid! ");//bila CRC Data tidak valid
}
} else {
Serial.println("Chip CRC is not valid! "); //bila CRC Chip tidak valid
}
} else {
Serial.println("Chip is not DS18B20"); //bila chip bukan DS18B20
} }
Dari program diatas, pada barisyang berwarna biru dapat kita atur nilai
resolusi yang diinginkan. Nilai yang diinputkan pada baris tersebut harus
sesuai dengan parameter sensor DS18B20 karena sensor ini memiliki
beberapa nilai resolusi yang bisa digunakan.

III. Memastikan hasil pengukuran dari sensor suhu DS18B20 sesuai dengan
hasil pengukuran dari alat ukur suhu lainnya. Sebagai suatu alat ukur,
sensor suhu perlu dikalibrasi. Dengan menggunakan program diatas,
sensor DS18B20 dapat mulai melakukan pengukuran. Saat melakukan
pengukuran tersebut, alat ukur lain bisa kita gunakan sebagai
pembanding dari hasil ukur sensor DS18B20. Dalam penelitian ini, kami
membandingkan hasil ukur sensor DS18B20 dengan multimeter Fluke
179.
4. Hasil Pengukuran (dalam oC)

Pengukur Rata-rata
Aktual Selisih
an Selisih
1 11.7 11 -0.7 -0.7
-
0.637
2 11.7 11.0625 5 -0.66875
3 11.7 11.125 -0.575 -0.6375
-
0.512
4 11.7 11.1875 5 -0.60625
5 11.7 11.25 -0.45 -0.575
-
0.487
6 11.8 11.3125 5 -0.56042
7 11.8 11.375 -0.425 -0.54107
-
0.462
8 11.9 11.4375 5 -0.53125
9 11.9 11.5 -0.4 -0.51667
-
0.437
10 12 11.5625 5 -0.50875
11 12 11.625 -0.375 -0.49659
-
0.312
12 12 11.6875 5 -0.48125
13 12.1 11.75 -0.35 -0.47115
14 12.2 11.8125 - -0.46518
0.387
5
15 12.3 11.875 -0.425 -0.4625
-
0.362
16 12.3 11.9375 5 -0.45625
17 12.3 12 -0.3 -0.44706
-
0.337
18 12.4 12.0625 5 -0.44097
19 12.5 12.125 -0.375 -0.4375
-
0.412
20 12.6 12.1875 5 -0.43625
21 12.6 12.25 -0.35 -0.43214
-
0.387
22 12.7 12.3125 5 -0.43011
23 12.8 12.375 -0.425 -0.42989
-
0.362
24 12.8 12.4375 5 -0.42708
25 12.9 12.5 -0.4 -0.426
-
0.437
26 13 12.5625 5 -0.42644
27 13 12.625 -0.375 -0.42454
-
0.412
28 13.1 12.6875 5 -0.42411
29 13.1 12.75 -0.35 -0.42155
-
0.387
30 13.2 12.8125 5 -0.42042
31 13.3 12.875 -0.425 -0.42056
-
0.362
32 13.3 12.9375 5 -0.41875
33 13.4 13 -0.4 -0.41818
-
0.337
34 13.4 13.0625 5 -0.41581
35 13.5 13.125 -0.375 -0.41464
-
0.412
36 13.6 13.1875 5 -0.41458
37 13.6 13.25 -0.35 -0.41284
38 13.7 13.3125 - -0.41217
0.387
5
39 13.8 13.375 -0.425 -0.4125
-
0.362
40 13.8 13.4375 5 -0.41125
41 13.9 13.5 -0.4 -0.41098
-
0.437
42 14 13.5625 5 -0.41161
43 14 13.625 -0.375 -0.41076
-
0.412
44 14.1 13.6875 5 -0.4108
45 14.2 13.75 -0.45 -0.41167
-
0.487
46 14.3 13.8125 5 -0.41332
47 14.3 13.875 -0.425 -0.41356
-
0.462
48 14.4 13.9375 5 -0.41458
49 14.5 14 -0.5 -0.41633
-
0.437
50 14.5 14.0625 5 -0.41675
51 14.5 14.125 -0.375 -0.41593
-
0.412
52 14.6 14.1875 5 -0.41587
53 14.7 14.25 -0.45 -0.41651
-
0.387
54 14.7 14.3125 5 -0.41597
55 14.8 14.375 -0.425 -0.41614
-
0.462
56 14.9 14.4375 5 -0.41696
57 14.9 14.5 -0.4 -0.41667
-
0.437
58 15 14.5625 5 -0.41703
59 15 14.625 -0.375 -0.41631
-
0.412
60 15.1 14.6875 5 -0.41625
61 15.1 14.75 -0.35 -0.41516
62 15.2 14.8125 - -0.41472
0.387
5
63 15.3 14.875 -0.425 -0.41488
-
0.362
64 15.3 14.9375 5 -0.41406
65 15.4 15 -0.4 -0.41385
-
0.337
66 15.4 15.0625 5 -0.41269
67 15.5 15.125 -0.375 -0.41213
-
0.412
68 15.6 15.1875 5 -0.41213
69 15.6 15.25 -0.35 -0.41123
-
0.387
70 15.7 15.3125 5 -0.41089
71 15.7 15.375 -0.325 -0.40968
-
0.362
72 15.8 15.4375 5 -0.40903
73 15.9 15.5 -0.4 -0.4089
-
0.337
74 15.9 15.5625 5 -0.40794
75 16 15.625 -0.375 -0.4075
-
0.412
76 16.1 15.6875 5 -0.40757
77 16.1 15.75 -0.35 -0.40682
-
0.387
78 16.2 15.8125 5 -0.40657
79 16.2 15.875 -0.325 -0.40554
-
0.362
80 16.3 15.9375 5 -0.405
81 16.3 16 -0.3 -0.4037
-
0.337
82 16.4 16.0625 5 -0.4029
83 16.5 16.125 -0.375 -0.40256
-
0.412
84 16.6 16.1875 5 -0.40268
85 16.6 16.25 -0.35 -0.40206
86 16.6 16.3125 - -0.40073
0.287
5
87 16.7 16.375 -0.325 -0.39986
-
0.362
88 16.8 16.4375 5 -0.39943
89 16.8 16.5 -0.3 -0.39831
-
0.337
90 16.9 16.5625 5 -0.39764
91 17 16.625 -0.375 -0.39739
-
0.312
92 17 16.6875 5 -0.39647
93 17.1 16.75 -0.35 -0.39597
-
0.387
94 17.2 16.8125 5 -0.39588
95 17.3 16.875 -0.425 -0.39618
-
0.362
96 17.3 16.9375 5 -0.39583
97 17.4 17 -0.4 -0.39588
-
0.337
98 17.4 17.0625 5 -0.39528
99 17.5 17.125 -0.375 -0.39508
-
0.412
100 17.6 17.1875 5 -0.39525
101 17.6 17.25 -0.35 -0.3948
-
0.387
102 17.7 17.3125 5 -0.39473
103 17.8 17.375 -0.425 -0.39502
-
0.362
104 17.8 17.4375 5 -0.39471
105 17.9 17.5 -0.4 -0.39476
-
0.337
106 17.9 17.5625 5 -0.39422
107 18 17.625 -0.375 -0.39404
-
0.312
108 18 17.6875 5 -0.39329
109 18.1 17.75 -0.35 -0.39289
110 18.2 17.8125 - -0.39284
0.387
5
111 18.3 17.875 -0.425 -0.39313
-
0.362
112 18.3 17.9375 5 -0.39286
113 18.4 18 -0.4 -0.39292

Grafik Perbandingan Suhu Aktual dan Pengukuran (oC)


20 0.6
19 0.5
18 0.4
17
0.3
16
0.2
15
14 0.1
13 0
Suhu Aktual dan Pengukuran 12 -0.1 Selisih dan Rata-rata Selisih
11 -0.2
10 -0.3
9
-0.4
8
-0.5
7
6 -0.6
5 -0.7
4 -0.8

Aktual Pengukuran
Selisih Rata-rata Selisih

5. Kesimpulan
Tingkat resolusi dari sensor suhu DS18B20 berada pada kisaran
0.0625oC, 0.125oC, 0.25oC, dan 0.5oC
Kecepatan pembacaan sensor DS18B20 93.75ms 750 ms.
Hasil pengukuran dari sensor DS18B20 memiliki beda dengan hasil
pengukuran menggunakan multimeter fluke rata-rata sebesar 0.4 oC
dibawah suhu aktual.
6. Daftar Pustaka
[1] http://arduino.cc/en/Main/ArduinoBoardUno/
[2] https://uehealth.wordpress.com/2013/02/10/temperature-sensor-ds18b20-
arduino/

[3] http://zhiescreamous.wordpress.com/2012/05/14/sensor-suhu-sederhana-
menggunakan-lm35/

[4] http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
[5] https://www.maximintegrated.com/en/products/1-
wire/flash/overview/index.cfm

Anda mungkin juga menyukai