Sabtu, 23 Januari 2010

Termometer Digital LCD dengan Bascom MCS

Kali ini saya akan mencoba membahas experimen digital yang pernah saya coba, salah satunya adalah Experimen pembuatan termometer digital berbasis MCS-51. termometer ini terbukti sangat akurat dikarenakan sensor yang digunakan sangat presisi. bahan-bahan yang digunakan adalah :
1. MCU 8051 sebagai pemroses (AT89S51,AT89S52,....)
2. ADC 0804 sebagai converter tegangan analog dari sensor agar menjadi data digital
3. LM 35 sebagai sensor suhu
4. LCD 16x2

Gambar diagram blok rangkaiannya



Sensor LM 35
Sensor ini mempunyai range suhu dari 0-150 celcius dengan kenaikan tegangan per step suhunya adalah 0,01 volt sehingga range tegangannya adalah dari 0 volt sampai 1,5 volt. Sensor ini dapat dioperasikan antara 4 volt sampai 20 volt

ADC 0804
ADC 1 channel ini hanya mempunyai inputan type + / - dan mempunyai keluaran data 8 bit. Vref yang digunakan adalah tegangan output dari pembagi tegangan VR(variabel resistor).
perhitungan nilai Vref--->> apabila kita menginginkan suhu maksimal adalah 100 Celcius maka keluaran dari sensor adalah 1Volt Maksimal. tegangan 1volt ini dijadikan sebagai acuan untuk menentukan nilai Vref. Nilai Vref untuk ADC 0804 sendiri sudah ditentukan dengan menggunakan rumus Vref= Vin/2 maka untuk nilai input maksimal untuk 1 volt diketemukan nilai Vref sebesar 0,5 volt agar ADC mengeluarkan data 1111 1111 atau FF pada saat suhu 100 celcius....
Mode Rangkaian yang digunakan--->> mode rangkaian yang digunakan adalah termasuk jenis rangkaian ADC free running. maksud dari free running sendiri adalah ADC akan langsung mengkonverter tegangan analog menjadi digital begitu saat pin WR-INT dihubungkan dan di triger dengan logic 0 (ground) (lihat saklar start)


MCU 8051
MCU ini sudah sangat familiar dikalangan hobi digital karena fitur murah, mudah didapat dan mudah diaplikasikan. mempunyai 4 port I/o dengan kapasitas memori 4kb untuk S51 dan 8kb untuk S52



LCD 16x2
Namanya juga LCD 16x2 jadi mempunyai 16 kolom dan 2 baris dengan 8bit input. mempunyai 2 mode penulisan data LCD dapat menggunakan mode 8 bit data atau menggunakan mode 4bit data MSB. disini rangkaian yang digunakan adalah dengan menggunakan mode 4 bit data MSB dikarenakan lebih irit pemakaian port.




Bahasa pemrograman
yang digunakan adalah Bahasa Bascom(basic compiller), saat ini bascom menjadi pilihan utama dalam memprogram MCU dikarenakan bahasa pemrograman ini sangat dekat dengan bahasa manusia. berikut adalah program termometer :

$crystal = 11059200
$baud = 9600
Enable Interrupts

Config Lcdpin = Pin , Db4 = P0.4 , Db5 = P0.5 , Db6 = P0.6 , Db7 = P0.7 , E = P0.3 , Rs = P0.2
Config Lcd = 16 * 2

Cursor Off
Display On
Cls

Dim Adc As Word , Suhu As Word

P2.0 = 0 'WR-INT triger
Waitms 500
P2.0 = 1

Awal:

Suhu:

Adc = 0
Adc = P3
Adc = Adc * 100
Suhu = Adc * 2
Suhu = Suhu / 5
Suhu = Suhu / 100

Locate 1 , 1
Lcd "Suhu Saat Ini"
Locate 2 , 1
Lcd Suhu
Locate 2 , 4
Lcd "Celcius"

Goto Awal

End


Rumus yang dipakai mengkonversi data digital menjadi derajat celcius
apabila suhu 100 celsius maka data ADC 1111 1111 atau FF atau 256-1 = 255 , Maka :

Adc = 255 * 100
Suhu = 25500 * 2
Suhu = 51000 / 5
Suhu = 10200 / 100
suhu = 102 ----->> mbleset atau lebih 2 derajat

Kelebihan 2 derajat dapat ditanggulangi dengan memutar VR pada Vref ADC sehingga dapat pas 100 derajat.......

saatnya beraksi............................demo.........................................................................

Percobaan dengan Suhu ruangan




Percobaan mengukur suhu dengan solder




SELAMAT MENCOBAAAAA.......................... SEMOGA BERHASILLLLL.....................................




13 komentar:

  1. sangat membantu sekali tapi kenapa apabila saat suhu sudah mencapai 100 celsius terus turun itu angka 0 dibelakang tidak bisa hilang...??

    BalasHapus
  2. coba tambahkan program

    if suhu < 100 then
    locate 2,3
    LCD " "
    end if

    sisipkan pada sebelum GOTO AWAL.......
    semoga membantu........

    BalasHapus
  3. sssuuuuuiiippppppp makasihhhh kang atas ilmunya...........

    BalasHapus
  4. yeaahhhhh aku berhasillllll..........thanks kang :-)

    BalasHapus
  5. MAAF,,,SAYA TERTARIK SEKALI MEMBACA PENGETAHUAN SEPERTI INI....

    KALO KITA MEMAKAI BAHASA PROGRAM ASSEMBLER BISA KAN????APAKAH ANDA PUNYA PROGRAMNYA...
    KALAU PUNYA TOLONG KIRIMKAN KE E-MILE SAYA,,,,
    TOLONG YACH...

    DILIHAT DARI BLOG RANGKAIANNYA SAMA SEPERTI PUNYA BAPAK...

    satria_ituaja@yahoo.co.id

    TERIMA KASIH..

    BalasHapus
  6. satria_ituaja@yahoo.co.id

    wahhh dipersori mas.... saya belajarnya pake bahasa bascom karena lebih mudah dimengerti dan mudah diaplikasikan tanpa pengalamatan memori.... kalo pake asembler kurang begitu paham apalagi kalau pake asembler programnya mungkin tidak akan sependek itu bisa lebih panjang.... sekali lagi dipersori....

    BalasHapus
  7. NDAN....BISAKAH ITU ALAT RANCANGAN DIBUAT UNTUK MONITORING SUHU PAKE KOMPUTER?KALAU BISA TOLONG YA DIBANTU DENGAN DITAMBAHIN LAGI POSTINGAN RANCANGANNYA...

    BalasHapus
  8. BOs
    bisakah anda menjelaskan
    fungsi atau peran dari bascom di alat thermometer digital
    mohon di jelaskan ya bos...??

    BalasHapus
  9. bascom adalah sebuah bahasa pemrograman (basic compiller) jadi kita memprogram dengan bahasa yang dekat dengan bahasa manusia kemudian dicompile jadi bahasa mesin/bahasa assembler..... biasanya file yang bentuk sudah bahasa assembler denagn tipe .hex yang kemudian didownloadkan ke microcontroller.......

    BalasHapus
  10. bisa-bisa saja buat monitoring via computer..... hanya dengan menambahkan IC max 232 yang fungsinya mengubah tegangan level TTL pada port tx/rx lalu kita program untuk komunikasi serial dan kita hubungkan dengan port serial(DB9) maka kita bisa memperoleh data dari pembacaan sensor LM35 yang kemudian ditampilkan ke komputer.....

    BalasHapus
  11. wah bagus bagus
    kunjungi juga http://goes-open.blogspot.com/2012/02/pemrograman-bascom-avr-termometer.html

    BalasHapus
  12. bos ane nyoba buat termometer kaya yang diatas tapi pingin nampilin d lcdnya berisi koma, misalnya 50,02. kalo boleh tau gimana caranya ya? tolong bantuannya ya...

    BalasHapus
  13. gan software buat merubah ke file hex apa ya?

    BalasHapus