Jumat, 29 Januari 2010

soal LM35


Seperti kita tahu bahwa LM35, sensor suhu yg memiliki output yang linear sebesar 10mV/oCelcius. Jadi tiap kenaikkan 10mV, maka suhu bertambah 1 oC. Dengan tingkat akurasi 0.5 oC. Memiliki range pengukuran antara -55 s/d 150 oC.

Dengan menggunakan rangkaian dasar, atau yang disebut Basic Centigrade Temperature Sensor, maka si LM35 memiliki range pengukuran 0mV - 10mV/oC. Jika dibuatkan kesetaraaan antara voltage dengan suhu, maka akan terlihat sbb :
0V = 0 oC
10mv = 1 oC
100mV = 10 oC
1000mV = 100 oC
1500mV = 150 oC

Jika menggunakan rangkaian Full-Range Centigrade Temperature Sensor, lain lagi range pengukurannya.

Dengan melihat karakteristik tersebut, maka dengan teknik ADC (Analog to Digital Convertion) kita bisa melakukan konversi dari tegangan ke suhu.

Karena yang didiskusikan kali ini menggunakan mikrokontroler ATMEGA8535. Maka secara internal dia sudah memiliki ADC yang berjumlah 8 channel 10 bit. Range voltage dari 0 s/d volt_max sama dengan nilai 0 s/d 1024 (n10).

Secara internal, si uC menggunakan rumus sebagai berikut untuk mengeluarkan output ADC :

Hasil Konversi ADC = (Vin * 1024) / Vref Dimana Vin adalah output LM35.

Jika Vref diberi tegangan 5 V (5000 mV). Dan LM35 tidak mengeluarkan tegangan, maka

0 * 1024 / 5000 = 0

Jika LM35 mengeluarkan tegangan sebesar 1 mV, maka uC akan mengeluarkan angka digital:

1 * 1024 / 5000 = 0.2048 => 0

Jika LM35 mengeluarkan tegangan sebesar 10 mV, maka uC akan mengeluarkan angka digital :

10 * 1024 / 5000 = 2.048 => 2

Jika LM35 mengeluarkan tegangan sebesar 1 V (1000 mV), maka uC akan mengeluarkan angka digital

1000 * 1024 / 5000 = 204.8 => 205

Sekarang cara membacanya dibalik. Setiap kita mendapatkan output digital dari uC, berapa hasil konversinya dalam bentuk tegangan?. Dari pertanyaan tersebut dihasilkan kesimpulan, bahwa setiap satu digit LSB yang dikeluarkan ADC uC akan bernilai sebesar :

1 LSB = Vref / (2n - 1)

Jika Vref adalah 5000 mV, maka : 1 LSB-nya kurang lebih = 4.9 mV (pembulatan)

Sehingga rumus konversinya adalah :

SUHU = Ouput_ADC * Kenaikan_satu_LSB / Volt_per_Celcius

dimana :
Output_ADC = adalah hasil pembacaan ADC uC
Kenaikan_satu_LSB = 4.9 (jika Vref = 5V)
Volt_per_celcius = 10 (karakteristik LM35, 10mV/oC)


DAN ADA JUGA...............

Kali ini kami akan membahas lebih jauh mengenai sensor suhu dengan IC LM 35, dimana dalam pembahasan ini sensor di seting untuk pembacaan suhu antara 0 – 100 C. Sebelum itu apa sih IC LM 35 itu?

IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk Integrated Circuit (IC) 3 pin yang berbentuk seperti transistor FCS9013, dimana output tegangan keluaran sangat linear terhadap perubahan suhu. Sensor ini berfungsi sebagai pegubah dari besaran fisis suhu ke besaran tegangan yang memiliki koefisien sebesar 10 mV/°C yang berarti bahwa kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.

IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indikator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari suplai sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan (27oC). Berikut adalah bentuk simbol IC LM 35.





Adapun keistimewaan dari IC LM 35 adalahKalibrasi dalam satuan derajat celcius.

* Lineritas +10 mV/ º C.
* Akurasi 0,5 º C pada suhu ruang.
* Range – 55 º C – 150 º C.
* Dioperasikan pada catu daya 4 V – 30 V.
* Arus yang mengalir kurang dari 60 µA.

Bagaimana menghubungkan IC LM 35 dengan mikrokontroler?

Apabila kita ingin membaca suhu aktual dari sensor IC LM 35 ini menggunakan mikrokontroler maka kita perlu menggunakan ADC (analog to digital converter). Misalkan kita menggunakan mikrokontroler AVR Atmega 16 maka kita tidak perlu menambahkan IC ADC, karena didalam mikrokontroler AVR Atmega 16 sudah terdapat 8 channel ADC 10 bit, dimana port ADC terhubung dengan portA (silahkan lihat datasheet AVR Atmega16).

Apabila kita menginginkan sensor IC LM 35 ini untuk membaca suhu dengan range 0 – 100oC maka dapat dihitung bahwa tegangan keluaran dari sensor ini berkisar antara 0V – 1 Volt ( 10mV/oC), sedangkan ADC dari mikrokontroler dapat membaca tegangan antara 0 – 5V (bila Vreff diseting 5V), maka supaya pembacaan sensor lebih teliti dengan resolusi perubahan yang halus maka keluaran tegangan dari sensor yang semula berkisar antara 0 – 1V kita buat menjadi berkisar antara 0 – 5V dengan menggunakan rangkaian signal conditioning / pengkondisi sinyal. Suatu misal dengan menggunakan rangkaian penguat non-inverting amplifier, berikut adalah contoh rangkaiannya.

Dari gambar rangkaian diatas pengkondisisn sinyal analog terdiri dari penguat penyangga (buffer) dan penguat non-inverting amplifier, dimana penguat penyangga berfungsi untuk merubah tegangan impedansi tinggi menjadi tegangan sama pada impedansi rendah. Karena sensor suhu LM35 menghasilkan tegangan yang berubah-ubah sesuai dengan perubahan suhu, maka penguat penyangga memastikan agar sinyal ini tidak terpengaruh oleh pembebanan dari penguat berikutnya. Dan penguat non-inverting amplifier berfungsi untuk menguatkan sinyal yang keluar dari rangkaian buffer. Dimana didalam rangkaian diatas penguatan dari rangkaian palifier ini dapat diatur dengan mengubah posisi variabel resistor 100K.

Berikut adalah contoh program dengan bascom AVR untuk penampilan suhu dengan sensor IC LM 35 dengan menggunakan mikrokontroler AVR Atmega 16 dan ditampilkan ke LCD matriks 2*16 karakter.


$regfile "m16def.dat"

$crystal = 12000000

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off Noblink
Cls

Dim Adc0 As Integer
Dim Temp As Single
Dim S_temp As String * 5

Upperline
Lcd "Welcome In... "
Lowerline
Lcd "Juragan Elektro "
Wait 2

Cls
Upperline
Lcd "Sensor Suhu LM35"
Lowerline
Lcd "Temp= C"

Do
Adc0 = Getadc(0)
Temp = Adc0 / 10.23
S_temp = Fusing(temp , "#.##")
Locate 2 , 7
Lcd S_temp
Waitms 100
Loop
End

Sebelum menguji coba maka kalibrasikan terlebih dahulu rangkaian signal konditioning yaitu dengan cara lepas IC LM 35 dan beri tegangan pada masukan rangkaian signal conditioning tegangan 1V dan adjust VR100K supaya tegangan keluaran dari rangkaian signal conditioning sebesar 5V. Setelah selasai pasang kembali IC LM 35 ke rangkaian signal conditioning dan hubungkan keluaran rangkaian ke mikrokontroler dan hubungkan LCD ke portC. Apabila anda bingung bagaimana mengubungkan LCD ke portC maka lihatlah sambungan seperti gambar berikut.

VR 10K digunakan untuk mengatur kontras dari LCD. Kemudian download program diatas kemikrokontroler dan lihat hasilnya. Apabila pembacaan sensor terjadi osilasi yang tinggi maka pasanglah kapasitor elektrolit bernilai 47uF/16V untuk membuang/ mengurangi ripple pada tegangan keluaran rangkaian signal conditioning dan kapasitor non polar senilai 100nF untuk membuang effek arus kejut yang terinduksi ke sinyal analog ADC 0. Kedua kapasitor tersebut dipasang paralel dengan keluaran rangkaian signal conditioning atau paralel dengan portA.0(ADC0) mikrokontroler AVR Atmega16. Apabila masih terjadi osilasi maka periksa tegangan yang masuk ke AVCC (analog VCC) mikrokontroler, pasanglah rangkaian LPF (low pass filter > untuk memfilter frekuensi rendah) pada kaki tersebut (lihat dalam artikel www.juraganelektro.com > tutorial > mikrokontroler > minimum system AVR Atmega16) dan jangan lupa Vreff (ADC referensi) harus diberi tegangan 5V khusus untuk aplikasi ini.

Demikianlah uraian kami tentang sensor suhu IC LM 35. Semoga bermanfaat bagi anda. Apabila anda mengalami kesulitan silahkan menghubungki kami. Kritik dan saran yang membangun selalu kami nantikan. Terimakasih.

1 komentar: