Lompat ke konten Lompat ke sidebar Lompat ke footer

Arduino part 17. Sensor Suhu - LM35DZ (Alarm kebakaran dan Thermometer digital)

Untuk mendapatkan informasi suhu disuatu tempat maka membutuhkan sensor suhu. Sensor ini akan menghasilkan tegangan didasarkan pada suhu yang terukur. Salah satu sensor suhu yang terkenal dan harganya murah adalah LM35DZ.

Dalam praktik kali ini kita akan melakukan 3 buah percobaan yaitu :

Praktik ke-1 Mengukur suhu menggunakan serial monitor
Praktik ke-2 Membuat Alarm Kebakaran
Praktik ke-3 Membuat Thermometer Digital menggunakan LCD

Bentuknya seperti gambar dibawah ini :


LM35DZ ini merupakan Integrated Circuit (IC) yang mengandung tiga pin. Gambar LM35 bisa dilihat pada gambar di bawah ini:

Tegangan catu daya untuk LM35DZ bisa dari tegangan DC 4 V s.d 30 volt. GND dihubungkan ground dan Vout adalah tegangan keluaran yang besar kecilnya tegangan output tergantung suhu yang terukur. Sesuai spesifikasinya maka output LM35DZ akan mengeluarkan tegangan sesuai kenaikan suhunya sekitar 10 mili volt per 1 derajat Celcius.

Input analog pada arduino uno mempunyai range nilai : 0 – 1023, sehingga terdapat 1024 variasi nilai. Jika kita menggunakan tegangan referensi tegangan analog sebesar 5 volt maka nilai 1 analog = 5/1024 = 0,0049 volt atau 4,9 mili Volt. Dengan demikian setiap perubahan 1 nilai pada analog setara dengan tegangan sebesar 4,9 mV.

Karena pada sensor suhu LM35DZ akan mengeluarkan tegangan output 10 mV tiap perubahan 1 derajat Celcius maka konversi nilai analog menjadi derajat celcius adalah = 4,9 mV/ 10 mV = 0,49.

Dengan demikian maka 1 nilai analog akan mewakili suhu sebesar 0,49 derajat Celcius.

Sehingga rumus pendekatannya pada arduino uno didapatkan rumus sebagai berikut:

Suhu = 0,49 * nilai pada pin analog

PRAKTIK KE-1 : MENGUKUR SUHU MENGGUNAKAN SERIAL MONITOR

Pada praktik ke-1 ini kita akan mengamati suhu yang terukur pada sensor suhu LM35, dan hasil pengukuran akan ditampilkan pada serial monitor. Untuk gambar rangkaiannya adalah sebagai beikut :

Silahkan buat sketch program berikut ini:

// ------------------------
// Sensor suhu LM35DZ
// Tampil di serial monitor
// Oleh : Hendry Kurniawan,S.Pd
// ------------------------
 
const int sensorsuhu = A0;
 
void setup()
{
  // Atur kecepatan komunikasi serial
  Serial.begin(9600);
}
 
void loop()
{
  int nilaiPin = analogRead(sensorsuhu);
  float suhu = 0.49 * nilaiPin;
 
  Serial.print("Suhu = ");
  Serial.print(suhu);
  Serial.println(" 'C");
  delay(1000);

Setelah selesai maka lakukan verify dan jika sukses tanpa ada kesalahan maka silahkan upload program ke arduino uno. Buka serial monitor atau baudratenya 9600, maka saat suhu kamar dia akan menunjukkan seperti gambar di bawah ini:

Dekatkan sensor LM35DZ dengan sumber panas seperti ujung solder dll. Maka amati perubahan suhu yang tampil di serial monitor.

REVISI PROGRAM AGAR LEBIH AKURAT

Cara diatas guna mempeoleh suhu sebenarnya masih kurang teliti karena kita menggunakan tegangan referensinya sekitar 5 volt. Belum lagi bisa saja terjadi muncul nilai suhu yang tidak masuk akal, misalnya nilai analognya = 1023 maka setara dengan 0,49 x 1023 = 501,27 derajat Celcius. Suhu tersebut sangat tinggi sekali bisa melelehkan laptop anda…… Tentu saja hal ini tidak mungkin terjadi karena sesuai spesifikasinya sensor suhu LM35DZ maksimum hanya bisa mengukur suhu sekitar 100 s.d 110 derajat Celcius.

Untuk mengatasi hal tersebut dan guna memperoleh ketelitian yang lebih baik lagi maka kita harus merubah tegangan referensinya menjadi 1,1 Volt. Sehingga nilai 1 analognya = 1,1/1024 = 0,001074 volt = 1,074 mili Volt. Dengan demikian setiap perubahan 1 nilai pada analog sama saja dengan tegangan sebesar 1,074 mili Volt.

Karena pada sensor suhu LM35DZ akan mengeluarkan tegangan 10 mV per 1 derajat Celcius maka konversi nilai analog menjadi derajat celcius adalah = 1,074 mV/ 10 mV = 0,1074.

Dengan demikian maka 1 nilai analog akan mewakili suhu sebesar 0,1074 derajat Celcius.

Sehingga rumus pendekatannya pada arduino uno didapatkan rumus sebagai berikut:

Suhu = 0,1074 * nilai pada pin analog

Berdasarkan rumus diatas yang menggunakan tegangan referensi 1,1 volt maka pada saat angka analog yang muncul 1023 didapatlah suhu sebesar = 0,1074 X 1023 = 109,87 derajat Celcius. Angka ini tentunya masuk akal dan lebih teliti sesuai dengan spesifikasi sebenarnya pada sensor suhu LM35DZ.

Bagaimana cara membuat tegangan referensi 1,1 Volt ? Kita tidak perlu repot-repot membuat catu daya eksternal 1,1 Volt karena Arduino sudah menyiapkan tegangan internal untuk referensi 1,1 volt. Perintah untuk mengaktifkan tegangan referensi internal adalah :

AnalogReference(INTERNAL);

Silahkan ketik sketch program dibawah ini:

// ----------------------------------------
// Sensor suhu LM35DZ
// Tampil di serial monitor
// Tegangan Referensi 1,1 Volt
// Oleh : Hendry Kurniawan,S.Pd
// -----------------------------------------
 
const int sensorsuhu = A0;
 
void setup()
{
  // Atur kecepatan komunikasi serial
  Serial.begin(9600);
  analogReference(INTERNAL);
}
 
void loop()
{
  int nilaiPin = analogRead(sensorsuhu);
  float suhu = 0.1074 * nilaiPin;
  Serial.print("Suhu = ");
  Serial.print(suhu);
  Serial.println(" 'C");
  delay(1000);
}

Setelah selesai silahkan upload ke arduino uno. Lakukan cek suhu pada serial monitor.

PRAKTIK KE-2 : MEMBUAT ALARM KEBAKARAN

Untuk membuat alarm kebakaran bisa menggunakan sensor asap atau sensor suhu, bisa juga menggunakan kedua sensor tersebut. Dalam kesempatan ini kita coba memanfaatkan sensor suhu LM35DZ sebagai sensor untuk alarm kebakaran. Untuk membuat  alarm kebakaran kita membutuhkan komponen-komponen sebagai berikut:

  • Arduino uno
  • Sensor suhu LM35DZ
  • Buzzer
  • Modul Relay
  • Lampu 220 V
  • Kabel jumper

Rakitlah rangkaian seperti pada gambar di bawah ini:

Alarm kebakaran kita set pada suhu ruang 50 derajat celcius. Jadi pada saat suhu tercapai maka relay akan aktif sehingga lampu berkedip dan diiringi bunyi alarm dari buzzer. Sekarang silahkan membuat sketch program dibawah ini.   

// ------------------------
// ALARM KEBAKARAN
// Sensor suhu LM35DZ
// Oleh : Hendry Kurniawan,S.Pd
// ------------------------
 
const int sensorsuhu = A0;
const int Relay = 13;
const int Buzzer = 10;
 
void setup()
{
  // Atur kecepatan komunikasi serial
  Serial.begin(9600);
  analogReference(INTERNAL);
  pinMode(Relay, OUTPUT);
  pinMode(Buzzer, OUTPUT);
}
 
void loop()
{
  int nilaiPin = analogRead(sensorsuhu);
  float suhu = 0.1074 * nilaiPin;
 
if(suhu >=50)//set suhu 50 derajat celcius
  {
    digitalWrite(Relay, HIGH);
    digitalWrite(Buzzer, HIGH);
    delay(100);
    digitalWrite(Relay, LOW);
    digitalWrite(Buzzer, LOW);
    delay(100);
    Serial.println("KEBAKARAN");
  }
  else
  {
    digitalWrite(Relay, LOW);
    digitalWrite(Buzzer, LOW);
    Serial.println("AMAN");
  }
  delay(500);
}

Setelah selesai dekatkan sensor LM35DZ ke sumber api misalnya korek api. Cek di serial monitor akan muncul tulisan “kebakaran” dan akan terdengar bunyi alarm yang diiringi dengan lambu merah yang berkedip-kedip. Untuk hasilnya bisa lihat pada video berikut ini :


PRAKTIK KE-3 : MEMBUAT THERMOMETER DIGITAL

Kita dapat membuat suatu thermometer digital yang menggunakan LCD. Gambar rangkaiannya seperi ini:

Tampilannya akan seperti ini :


Silahkan diketik sketch program Thermometernya dibawah ini:
// ----------------------------------------
// Thermometer Digital dengn LCD
// Sensor suhu LM35DZ
// Tegangan Referensi 1,1 Volt
// Oleh : Hendry Kurniawan,S.Pd
// pin A4 arduino uno ke SDA I2C
// pin A5 arduino ke SCL I2C
// pin +5 volt arduino ke VCC I2C
// pin GND arduino ke GND I2C
// pin A0 ke sensor suhu
// ------------------------------------------
#include <LiquidCrystal_I2C.h>   
LiquidCrystal_I2C lcd(0x27,16,2);
const int sensorsuhu = A0;
const byte SIMBOLDERAJAT = B11011111;
 
void setup()
{
  lcd.init();                  
  lcd.backlight();
  Serial.begin(9600);
  analogReference(INTERNAL);
}
 
void loop()
{
  int nilaiPin = analogRead(sensorsuhu);
  float suhu = 0.1074 * nilaiPin;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Thermometer HEN");
  lcd.setCursor(0, 1);
  lcd.print("Suhu : ");
  lcd.setCursor(7, 1);
  lcd.print(suhu);
  lcd.setCursor(12, 1);
  lcd.write(SIMBOLDERAJAT);
  lcd.setCursor(13, 1);
  lcd.print("C");
  delay(1000);
}

Demikianlah 3 macam praktek tentang sensor suhu. Rangkaian ini bisa dikembangkan lagi untuk peralatan lainnya misalnya alat penetas telur, atau untuk aplikasi alat lainnya yang membutuhkan sistem pengaman atau sistem kendali otomatis, yang penting suhu tersebut tidak melebihi 100 derajat Celcius. Jika ingin digunakan lebih dari 100 derajat Celcius maka bisa menggunakan sensor suhu jenis lainnya misalnya thermocouple.

1 komentar untuk "Arduino part 17. Sensor Suhu - LM35DZ (Alarm kebakaran dan Thermometer digital)"