Skip to content Skip to sidebar Skip to footer

Mengukur Suhu Dengan Sensor LM 35 Melalui Serial Monitor Arduino

Sebelum mengenal arduino, mengukur suhu lingkungan sekitar adalah hal yang cukup merepotkan. Dikatakan merepotkan karena kita harus memiliki seperangkat alat pengukur suhu yang sering kita kenal sebagai termometer, baik termometer analog maupun termometer digital. Tentu alat pengukur suhu tersebut tidaklah didapat dengan cuma-cuma. Dan ujung-ujungnya, kita wajib menyiapkan dana tambahan untuk membelinya. 

Baiklah untuk mensiasati masalah diatas, kali ini saya akan menjelaskan bagaimana merangkai alat untuk mengukur suhu (termometer buatan) dengan mudah menggunakan mikrokontroller populer, bernama Arduino Uno beserta sensor suhu LM 35, output berupa suhu yang dideteksi oleh sensor akan ditampilkan oleh serial monitor arduino. Kita mulai dengan mempersiapkan komponen-komponen yang kita butuhkan, antara lain : 
  1. Project Board 
  2. Arduino Uno 
  3. Sensor Suhu LM 35
  4. Kabel Jumper 
  5. Kabel USB Arduino
Sebelum kita rangkai lebih jauh, akan saya jelaskan sekilas mengenai sensor suhu LM 35. Sensor ini cukup populer sebagai sensor pengukur suhu dengan harga yang terjangkau. LM35 merupakan IC sensor suhu dengan bentuk yang mirip dengan transistor. Kaki IC ini hanya ada tiga, yaitu untuk VCC (kaki 1), Output (kaki 2), dan GND (kaki 3), lebih jelasnya lihat gambar 1

Gambar 1. Sensor Suhu LM 35

Sensor ini bisa digunakan untuk mengukur suhu dari -55 derajat – 150 derajat celcius. Lebih dari cukup untuk mengukur suhu lingkungan sekitar kita, bukan ! Berdasarkan datasheet LM35, maka kita bisa menggunakan pengukuran penuh (-55 – 150 derajat celcius) atau pengukuran sebagian yaitu hanya bisa menghitung dari 2 – 150 derajat celcius. Maka, yang kita perlukan kali ini adalah pengukuran suhu secara sebagian, dengan rangkaian dasar sensor sebagai berikut : 

Gambar 2. rangkaian dasar sensor suhu
Rangkaian sensor suhu pada gambar 2 akan berbeda seandainya kita menggunakannya untuk pengukuran penuh. Tahap berikutnya adalah merangkai komponen yang dibutuhkan, skema rangkain dapat dilihat seperti pada gambar 3 berikut :

Gambar 3. Rangkaian sensor suhu LM 35
Cara merangkai :
  1. Sambungkan kaki 1 sensor LM 35 ke VCC 5 Volt Arduino
  2. Sambungkan kaki 2 (tengah) ke pin analog A0. Alasan disambungkannya kaki tengah ke pin analog adalah input yang akan masuk ke sensor LM35 sejatinya adalah input analog, yaitu suhu. Input analog tersebut nantinya akan ditampilkan dalam bentuk digital. 
  3. Sambungkan kaki 3 ke GND Arduino 
Oke, sampai disini cukup mudah, kan ! Yang merasa kesulitan hanyalah yang tidak memiliki komponennya, hehehe, kasian deh.... 

Rangkaian pada gambar 3 jika dirangkai beneran akan menjadi seperti gambar 4 berikut :

Gambar 4 implementasi rangkaian sensor suhu
Tahap berikutnya adalah memprogram arduino agar sensor suhu LM35 dapat berfungsi dan dapat ditampilkan dalam serial monitor. Namun, sebelum membuat program, kita akan menghitung bagaimana cara mengukur dan mengkonversi output dari LM35 menjadi suhu. Kita akan mengkonversi voltase pada kaki output LM35, kemudian menghitungnya berdasarkan tegangan referensi yang digunakan,  dan mengubahnya menjadi celcius, lalu mengirimkannya ke komputer melalui komunikasi serial.

Jika kita menggunakan tegangan referensi 5 volt, maka Arduino bisa mengukur setidaknya hingga 5000 mV. padahal kemampuan LM35 hanya sebatas 150o celcius atau 150 x 10 mV = 1500 mV 1.5 volt). Sehingga tegangan yang keluar dari kaki output LM35 tidak akan mungkin melebihi 1.5 volt. Berdasarkan persamaan sederhana, maka kita bisa menghitung suhu berdasarkan perbandingan antara kapasitas voltase yang bisa dicacah oleh pin analog Arduino (1024) dan kemampuan LM35 mengukur suhu. Begini cara menghitungnya : 

Suhu dalam Voltase (T) : 0 - 500
Cacahan Voltase input (Vin) : 0 - 1024
0/500 = 0/1024
T/500 = Vin/1024

T = (Vin * 500) / 1024

Program arduino dapat ditulis seperti berikut :

int PinSuhu = A0 ; 
float suhu, data ; 

void setup() {
Serial.begin(9600) ; 
pinMode(PinSuhu, INPUT) ; 
}

void loop() {
  data = analogRead(PinSuhu) ; 
  suhu = data * 500 / 1024 ; 
  
  Serial.print("data : ") ; 
  Serial.print(data ) ; 
  Serial.print("  Suhu : ");
  Serial.print(suhu) ; 
  Serial.print(" C") ; 
  Serial.println();
  delay(1000) ; 
}

Program diatas akan membaca data dari sensor suhu pada pin A0 di board Arduino kemudian mengkonversinya menjadi suhu. Informasi suhu akan dikirim ke komputer melalui komunikasi serial dengan baud rate 9600 setiap 1000 milisekon.

Variabel suhu dan data menggunakan float, yaitu tipe data yang memungkinkan memuat angka desimal. Di sini menggunakan desimal karena adanya pembagian sehingga jika kita menggunakan integer, maka hasil perhitungan kita kurang presisi karena hasil pembagiannya akan selalu dibulatkan.

Fungsi analogRead() digunakan untuk membaca masukan dari sensor analog. Nilai dari analog read ini berkisar dari 0 hingga 1023 berdasarkan kemampuan dari mikrokontroller dalam mencacah dari 0 – 5 volt. Selanjutnya hasil perhitungan suhu akan dimasukkan dalam variabel suhu, lalu nilai dari varibel suhu akan ditampilkan melalui Serial.print(suhu)

Hasil perhitungan suhu ditampilkan dalam serial monitor arduino secara real-time setiap 1000 milisekon.

Output deteksi suhu melalui serial monitor arduino
Agar lebih menarik, maka rangkaian dapat dikembangkan lebih jauh untuk dapat menampilkan hasil perhitungan suhu melalui layar LCD. Semoga tutorial sederhana ini bermanfaat bagi teman-teman yang sedang belajar arduino. Tunggu tutorial proyek arduino berikutnya.... 

salam







Referensi :  Hari Santoso (elangsakti.com), Panduan Praktis Arduino Untuk Pemula


5 comments for "Mengukur Suhu Dengan Sensor LM 35 Melalui Serial Monitor Arduino"

  1. Berikan juga utk pemula contoh mengukur suhu negatifny...gan

    ReplyDelete
    Replies
    1. Suhunya sesuai realita gan... ndak mungkin menghasilkan negatif

      Delete
  2. CRT monitors are good, but most people prefer the LCD monitors instead because they take up less room. and it is not able to take the same abuse as the CRT terminals might be able to.
    Click here

    ReplyDelete