Wednesday, July 27, 2016

Menampilkan data Sensor Suhu LM 35 ke LCD 16x2 dengan Arduino UNO

Untuk membuat aplikasi akhir berupa penampil data 1 channel sensor suhu LCD diperlukan pemahaman terlebih dahulu mengenai cara kerja sensor suhu LM 35

Gambar sensor suhu LM 35  tampak samping adalah sebagai berikut


Gambar sensor suhu LM 35  tampak bawah adalah sebagai berikut

sebenarnya ada varian bentuk lain dari LM 35 ini, tapi tidak saya bahas karena yang saya punya adalah yang bentuk nya sebagaimana gambar sensor LM 35 tersebut di atas.

Berdasarkan datasheet sensor suhu LM 35 terdapat penjelasan sebagai berikut

•    Calibrated directly in Celsius (Centigrade)
•    Linear + 10.0 mV/ C scale factor
•    0.5 C accuracy guaranteeable (at +25 C)
•    Rated for full -55 to +150 C range
•    Suitable for remote applications
•    Low cost due to wafer-level trimming
•    Operates from 4 to 30 volts
•    Less than 60 A current drain
•    Low self-heating, 0.08 C in still air
•    Nonlinearity only 1/4 C typical
•    Low impedance output, 0.1 W for 1 mA load


Point  yang digunakan untuk memahamin karakteristik cara kerja sensor LM 35 nya ada di bagian
Linear + 10.0 mV/ C scale factor
Ini menunjukkan bahwa sensor suhu LM35 menghasilkan output berupa tegangan yang nilai nya linear terhadap suhu dengan penjelasan sebagai berikut :
Setiap kenaikan suhu sebesar 1 derajat celcius , akan menghasilkan keluaran sebesar 10mVolt
Jadi jika sensor suhu membaca suhu sebesar 10 derajat celcius, keluaran dari pin sensor tersebut adalah sebesar
10*10 mv >>> 100mV >>>0,1volt
Jika sensor suhu membaca suhu sebesar 100 derajat celcius, keluaran dari pin sensor tersebut adalah sebesar
100*10 mv >>>1000mV >>>1volt
Berdasar penjelasan tersebut kita dapat ambil kesimpulan
Jika tegangan keluaran sensor adalah 1 volt >>> suhu adalah sebesar 100 derajat celcius
Kesimpulan >>> suhu = tegangan output sensor * 100
Arduino uno memiliki pin pin sebagai masukkan untuk membaca tegangan keluaran dari sensor LM35 terserbut, pin nya adalah pin analog to digital converter
Silakan  perhatikan gambar di bawah ini


Pin yang di maksud adalah pin A0,A1,A2,A3,A4,A5
Dimana berdasarkan penjelasan dari web resmi arduino (www.arduino.co.cc )
Dijelaskan bahwa kemampuan baca dari pin analag ini adalah 0-5 volt dengan resolusi 10 bit
Ini penjelelasannya begini
Saat tegangan input ke pin adc misal Adc0 (pin A0) adalah sebesar 5 volt Dc, maka hasil pembacaan konversi nilai adc nya adalah sebagai berikut
tengangan 5 volt adalah tegangan maksimal yang dapat dibaca arduino sehinnga nilai tersebut akan di ubah menjadi nilai 10 adalah sebesar 1111 1111 11 (biner), jika di ubah menjadi decimal nilainya = 1023

tengangan 0 volt adalah tegangan minimal yang dapat dibaca arduino sehinnga nilai tersebut akan di ubah menjadi nilai 10 adalah sebesar 0000 0000 00 (biner), jika di ubah menjadi decimal nilainya = 0

5 volt >>> 1111 1111 11 >>> 1023
0 volt >>> 0000 0000 00 >>> 0
(pergunakan kalkulator anda,pada mode scientific, mudah bukan ? hahaha)

Keismpulannya eh kesimpulannya untuk  membaca tergangan masukkan ADC dapat dihitung dengan persamaan :
Tegangan = nilai adc/ nilai adc maksimal * 5 volt
Dengan penulisan lain menjadi
Tegangan = nilai adc/ 1023 * 5 volt
Dari penjelasan sebelum nya anda dapati bahwa untuk mengubah tegangan menjadi nilai celcius adalah dengan persamaan sebagai berikut :
suhu = tegangan output sensor * 100
sedangkan nilai tegangan diperoleh dengan persamaan
Tegangan = nilai adc/ 1023 * 5 volt
Jadi
Suhu = tegangan output sensor * 100
Suhu = (nilai adc/ 1023 * 5 volt)*100
Suhu = nilai adc*5/10.23

Untuk menuju ke implementasinya silakan rangkai sensor LM35 + kabel + arduino + LCD 16X2
Menjadi seperti gambar di bawah ini





Setelah selesai dirangkai
Upload kan sketch program arduino sebagai berikut :

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
const int PinSuhu = A0;  // pemasangan output pin sensor LM35 ke pin A0
int AdcSuhu = 0;// nilai adc awal sensor sebelum proses pembacaan suhu 1 di set 0
int Suhu=0;// nilai suhu  awal sebelum proses pembacaan sensor suhu 1 di set 0

void setup()
{
  lcd.begin(16,2);
  lcd.print("SUHU = ");

}

void loop()
{
 AdcSuhu = analogRead(PinSuhu);  // baca adc pin suhu  
 Suhu=(AdcSuhu*5)/10.23; // perhitungkan nilai suhu (cek lagi rumus hitung suhu )
 lcd.setCursor(0, 1);
 lcd.print(Suhu);
 delay(1000); // tunda 1 detik
}


Seharusnya pada LCD anda suhu nampil pada baris pertama berisi teks SUHU = dan pada baris kedua tertulis Suhu hasil pembacaan oleh sensor LM35

catatan : jangan lupa atur contrast LCD dengan memutar mutar trimport,sehingga tampilan LCD 16x 2 enak untuk dipandang.


0 comments:

Post a Comment

Silakan dikomentari

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India