perancangan sistem pengukur suhu menggunakan
TRANSCRIPT
PERANCANGAN SISTEM PENGUKUR SUHU MENGGUNAKAN
SENSOR LM35 BERBASIS MIKROKONTROLER AVR ATMEGA 8535
1.1 Blok Diagram Sistem
Gambar dibawah ini merupakan gambar blok diagram dari sistem pengukuran suhu
menggunakan LM35 berbasis mikrokontroler ATmega 8535.
Gambar 1.1 Blok diagram sistem pengukur suhu
Dari diagram blok diatas terdiri dari beberapa komponen diantarannya :
A. Power supply , merupakan perangkat yang memberikan sumber energi ke rangkaian
Minimum sistem dan komponen pendukung lainnya.
B. Sensor LM35 merupakan perangkat yang digunakan untuk mengukur suhu
C. Minimum sistem mikrokontroler ATmega 8535 merupakan perangkat yang
digunakan sebagai pusat pengelolaan informasi
D. LCD tipe 16 x 2 (16 kolom 2 baris) merupakan display yang digunakan untuk
menampilkan huruf,angka, atau simbol-simbol tertentu
Dari beberapa komponen diatas dapat dijelaskan prinsip kerja lebih lanjut sebagai berikut :
1.2 Rangkaian Power Supply
Supply yang digunakan pada perancangan sistem pengukur suhu menggunakan
sumber energi 220 V AC dengan menggunakan rectifier (adaptor) tegangan disearahkan
dan diturunkan menjadi 12 V DC
Pada rangkaian elektronik diperlukan bagian power supply untuk menurunkan
tegangan +12 V menjadi tegangan level rendah yaitu sebesar +5V. Tegangan level rendah
akan dibutuhkan untuk memenuhi supply tegangan mikrokontroller yaitu 200 mA 5V
ditambah LED indikator sekitar 15 mA sehingga total 215 mA. Skematik rangkaian yang di
rancang untuk menurunkan tegangan +12 V menjadi +5V adalah sebagai berikut:
U 1
L M 7 8 0 5 / TO
V I N1
V O U T2
1 o h m 1 wa t t
TI P 4 2 C6 A
+2 2 0 0 u F / 5 0 v
0
+2 2 0 0 u F / 5 0 v
0
2 2 0 o h m
D 2 2L E D
0
1 2 V d c
H E A D E R 2
12
0
Vcc
0
Gambar 1.2 Skematik Rangkaian power supply
Pada skematik rangkaian power supply di atas terdapat diode yang berfungsi
sebagai pengaman apabila terjadi humanerror yaitu berupa kesalahan pemasangan kutup
adaptor, kesalahan pemasangan adaptor dapat mengakibatkan rusaknya seluruh
komponen elektronika akibat terbaliknya polaritas tegangan. Perancangan sumber
tegangan +5V digunakan regulator LM 7805, LM 7805 Merupakan IC regulator tegangan
positif yang bekerja dengan keluaran tegangan tetap, masukan tegangan maksimal pada
25 V dan memiliki arus keluaran 1A, IC regulator ini memiliki fasilitas pembatas arus dan
thermal shutdown yang melindunginya dari kelebihan beban. Karena IC LM 7805 hanya
memiliki arus keluaran 1A sedangkan yang dibutuhkan oleh beban kemungkin lebih maka IC
ini dihubungkan dengan komponen transistor TIP42C yang berfungsi sebagai penguat arus.
Pada masa riset tidak jarang perancang menggunakan sumber tegangan AC yang tentu
saja dipakai setelah melewati rectifier sehingga dipasang kapasitor pada rangkaian power
supply sebagai filter sedangkan untuk indikator tegangan dipasang sebuah LED warna
merah.
1.3 Mikrokontroller ATMega 8535
Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas
dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam 1 (satu)
siklus clock , berbeda dengan instruksi MCS51 yang membutuhkan 12 Siklus clock. tentu
saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda.
AVR Menggunakan RISC(reduced instruction set computing), sedangkan MCS51
berteknologi CISC(complex instruction set computing). Secara umum, AVR dapat
dikelompokkan dalam 7 kelas, yaitu keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega,
keluarga ATXMega, keluarga ATUSBxx, keluarga ATPWMxx dan AT86RFxx. Pada
dasarnya yang membedakan masing-masing kelas adalah memori, peripheral dan
fungsinya. Salah satu mikrokontroler AVR yang sering dipakai adalah ATMega 8 dan
ATMega 8535.
1.4 Karakteristik ATmega 8535
Prosesor yang digunakan sebagai pengendali utama robot adalah 8 bit
mikrokontroler dari keluarga AVR, yaitu ATmega8535. Alasan penggunaan mikrokontroler
ini adalah karena harga yang relatif murah, mudah diperoleh, kemudahan dalam
pemrograman, dan fitur-fitur menarik yang dimilikinya. Beberapa karakteristik dan fitur yang
dimiliki mikrokontroler ATMega8535 antara lain:
1) Resolusi data 8 bit.
2) RISC arsitektur.
3) 8 K byte In System Programmable Flash.
4) 512 Bytes EEPROM.
5) 512 Bytes SRAM internal.
6) 8 channel, 10 bit resolusi ADC.
7) 4 channel PWM.
8) 2 timer/counter 8 bit.
9) 1 timer/counter 16 bit.
10) Osilator internal yang dikalibrasi.
11) Internal dan eksternal sumber interrupt.
12) 6 mode sleep.
1.5 ATmega 8535 memiliki bagian struktur bagian sebagai berikut :
1) Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
2) Tiga buah Timer/Counter dengan kemampuan perbandingan.
3) CPU yang terdiri atas 32 buah register.
4) Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
5) Unit interupsi internal dan eksternal.
6) Port antarmuka SPI
7) EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
8) Antarmuka komparator analog.
9) Port Usart untuk komunikasi serial
Mikrokontroler ATMega 8535 mempunyai tugas mengendalikan seluruh sistem.
Untuk dapat berfungsi sesuai dengan yang diharapkan maka programmer harus
mempogram mikrokontroller dengan algoritma yang telah dirancang. Dalam proses
pemograman, mikrokontroller menerima program dalam format heksadesimal dari komputer
dan menyimpannya dimemori flash. Berikut merupakan rangkaian mikrokontroller ATMega
8535
Gambar 1.3 Skematik Rangkaian sistem minimum
Pada rangkaian di atas terdapat beberapa komponen yang dihubung dengan
mikrokontroller, komponen tersebut merupakan komponen minimal yang wajib dipasang
supaya mikrokontroller dapat bekerja. Oscillator yang dipasang berfungsi sebagai clock
speed untuk mode kerja mikrokontroller sedangkan Pin reset pada mikrokontroller
dihubungkan pada resistor dan kapasitor, bila push botton ditekan minimal selama 1,5 us
maka pin reset akan bekerja karena mendapatkan pulsa rendah (aktif low ).
1.6 Tata Letak Penempatan Komponen Mini Trainer ATmega 8535
Gambar 1.4 Mini Trainer ATmega 8535
Keterangan :
PORTA = Merupakan port I/O 8-bit dua arah dengan resistor pull-up internal,
selain sebagai Port I/O 8-bit Port A juga dapat berfungsi sebagai masukan 8
channel ADC,PORTA berisi 8 buah saklar yang berfungsi sebagai modul input.
LCD PORTC
Sakl
ar
PORT
A
Led
PO
RTB
PIN
A.0
Pow
er S
uppl
y
Serial USART
PORTB = Merupakan Port I/O 8-bit dua arah (bi-directional) dengan resistor
pull- up internal, selain sebagai Port I/O 8-bit PORTB berisi modul output 8 buah
LED.
PORTC = Merupakan port I/O 8-bit dua arah ( bi-directional ) dengan
resistor pull-up internal, selain sebagai Port I/O 8-bit Port C berisi modul output
LCD 16 karakter
PORTD = Merupakan port I/O 8-bit dua arah ( bi-directional )
dengan resistor pull-up internal, selain Sebagai Port I/O 8-bit
USART = Sistem komunikasi serial mikrokontroler dengan PC
Power Supply = Sebagai pencatu tengangan supply inputan 12 V dan 5V
Potensio meter = Merupakan PIN inputan untuk melakukan fungsi ADC
1.7 Sensor Suhu LM35
Sensor suhu LM35 merupakan komponen elektronika yang berfungsi untuk
mengubah besaran fisis yang berupa suhu menjadi besaran elektris tegangan. Sensor suhu
LM35 memiliki parameter bahwa setiap kenaikan 1ºC tegangan keluarannya naik sebesar
10mV dengan batas maksimal keluaran sensor adalah 1,5 V pada suhu 150°C. Misalnya
pada perancangan menggunakan sensor suhu LM35 kita tentukan keluaran adc mencapai
full scale pada saat suhu 100°C, sehingga saat suhu 100°C tegangan keluaran transduser
(10mV/°C x 100°C) = 1V.
Gambar 1.5
Bentuk Fisik LM 35
pin 1 berfungsi
sebagai sumber tegangan kerja dari LM35, pin 2 atau tengah digunakan sebagai tegangan
keluaran atau Vout dengan jangkauan kerja dari 0 Volt sampai dengan 1,5 Volt dengan
tegangan operasi sensor LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt.
A. Prinsip Kerja
Mula-mula vcc sebesar 5 V digunakan untuk menghidupkan sensor LM35 yang akan
mendeteksi suhu. Keluaran sensor ini akan naik sebesar 10 mV setiap derajad celcius
sehingga diperoleh persamaan sebagai berikut :
VLM35 = Suhu*10Mv
Secara prinsip sensor akan melakukan penginderaan pada saat perubahan suhu
setiap suhu 1 ºC akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35
dapat ditempelkan dengan perekat atau dapat pula disemen pada permukaan akan tetapi
suhunya akan sedikit berkurang sekitar 0,01 ºC karena terserap pada suhu permukaan
tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan
dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara
disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35
berada pada suhu permukaan dan suhu udara disekitarnya .
Meskipun tegangan sensor suhu LM35 ini dapat mencapai 30 volt akan tetapi yang
diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya
tunggal dengan ketentuan bahwa LM35 hanya membutuhkan arus sebesar 60 µA hal ini
berarti LM35 mempunyai kemampuan menghasilkan panas (self-heating) dari sensor yang
dapat menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 ºC pada suhu
25 ºC .
B. Berikut ini adalah karakteristik dari sensor suhu LM35.
Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10
mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC seperti terlihat
pada gambar 2.2.
Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
Bekerja pada tegangan 4 sampai 30 volt.
Memiliki arus rendah yaitu kurang dari 60 µA.
Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada
udara diam.
Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
1.8 Display LCD
Gambar 1.6 Display LCD
LCD berfungsi untuk menampilkan informasi yang diterima oleh sensor, data tersebut
di proses melalui mikrokontroler kemudian ditampilkan berupa data digital,text maupun
simbol lainnya.LCD ini terdiri dari dua baris karakter dimana dua baris karakter memiliki
panjang karakter sebanyak 16.
1.9 Deskripsi kerja
Prinsip kerja sistem pengukuran suhu menggunakan LM35 dapat di lihat dari diagram
box dibawah ini :
Gambar 1.7 diagram BOX Sistem pengukur suhu menggunakan Sensor LM35
Selama prosesnya, pengukuran suhu melakukan tiga operasi utama diantaranya :
1. Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu
menjadi besaran elektris tegangan. Sensor suhu LM35 memiliki parameter bahwa
setiap kenaikan 1ºC tegangan keluarannya naik sebesar 10mV.
2. Data sensor suhu berupa sinyal analog kemudian di konversi menjadi data digital
melalui PORT A pada mikrokontroler Analog to Digital Converter (ADC). Data digital
diolah oleh mikrokontroler Atmega 8535 sebagai pusat pengendali melalui
pemrograman menggunakan compiler codevision AVR .
3. Hasil pengelolaan informasi tersebut kemudian ditampilkan menggunakan display
LCD.
1.10 Pembuatan Algoritma
Algoritma merupakan suatu urutan langkah-langkah (steps) yang disusun
secara logis dan sistematis untuk menyelesaikan suatu masalah dan dapat dieksekusi.
Pembuatan algoritma berkaitan erat dengan proses pemograman, algoritma menjadi
panduan programer pada saat melakukan proses pemograman. Setelah melakukan
identifikasi hardware dan penetapan input output selanjutnya melakukan proses pembuatan
algoritma, dengan merujuk kepada langkah-langkah sebelumnya penulis membuat algoritma
dalam bentuk flowchart, berikut flowchart algoritma yang dibuat :
Gambar 1.8 Flowchart Algoritma Program Pengukuran Sensor Suhu
1.11 Pembuatan Program Pengukuran sensor suhu
Penulisan program menggunakan software CodeVision v.1.25.6. sebagai proses
editor program dan compiler. Dengan program ini penulis memanfatkan fasilitas dalam
programnya dengan bantuan code wizard yang dapat membuat settingan register-register
khusus (SFR) dalam mikrokontroler AVR secara otomatis.
Berikut ini penyettingan yang dilakukan penulis dalam menerjemahkan algoritma
yang telah dibuat seperti diatas kedalam bentuk pemrogramanan bahasa C untuk
embedded system.
(a) (b) (c)
Gambar 1.9 (a) Inisialisasi PORTA sebagai Input
(b) Inisialisasi PORTC sebagai Output LCD
(C) Pengaktifan Fungsi ADC
Gambar 1.10 Proses generate and save dalam melakukan prosess code wizard
otomatis
Short cort program Sensor Suhu
/*****************************************************This program was produced by theCodeWizardAVR V2.03.9 StandardAutomatic Program Generator© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com
Project :Version :Date : 10/12/2010Author : LPKIACompany : BandungComments:
Chip type : ATmega8535Program type : ApplicationAVR Core Clock frequency : 11.059200 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 128*****************************************************/
#include <mega8535.h>unsigned char adc,bar1[16],bar2[16],bar3[16],bar4[16],bar5[16];float suhu1;unsigned char x=0;#define arah_motor_kanan PORTB.1// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Alphanumeric LCD Module functions#asm .equ __lcd_port=0x15 ;PORTC#endasm#include <lcd.h>
// Standard Input/Output functions#include <stdio.h>#include <delay.h>#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits// of the AD conversion resultunsigned char read_adc(unsigned char adc_input){ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);// Delay needed for the stabilization of the ADC input voltagedelay_us(10);// Start the AD conversionADCSRA|=0x40;// Wait for the AD conversion to completewhile ((ADCSRA & 0x10)==0);ADCSRA|=0x10;return ADCH;}// Declare your global variables here
void main(void){// Declare your local variables here
// Input/Output Ports initialization// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTA=0x00;DDRA=0x00;
// Port B initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTB=0x00;DDRB=0xFF;
// Port C initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;DDRC=0x00;
// Port D initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTD=0x00;DDRD=0x00;
// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x01;TCNT0=0x00;OCR0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;
// External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: Off
MCUCR=0x00;MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;
// USART initialization// Communication Parameters: 8 Data, 1 Stop, No Parity// USART Receiver: On// USART Transmitter: On// USART Mode: Asynchronous// USART Baud Rate: 9600UCSRA=0x00;UCSRB=0x18;UCSRC=0x86;UBRRH=0x00;UBRRL=0x47;
// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;
// ADC initialization// ADC Clock frequency: 345.600 kHz// ADC Voltage Reference: AVCC pin// ADC High Speed Mode: On// ADC Auto Trigger Source: None// Only the 8 most significant bits of// the AD conversion result are usedADMUX=ADC_VREF_TYPE & 0xff;ADCSRA=0x85;SFIOR&=0xEF;SFIOR|=0x10;// Global enable interrupts// LCD module initializationlcd_init(16);lcd_gotoxy(1,0);lcd_putsf("-=LPKIA=-");lcd_gotoxy(0,0);lcd_putsf("Mempersembahkan");lcd_gotoxy(0,1);lcd_putsf("-=sensor suhu=-");delay_ms(2500);lcd_clear(); #asm("sei")while (1) { // Place your code here
lcd_clear(); adc=read_adc(0); suhu1=adc; suhu=1.92*suhu1; sprintf(bar1,"Data ADC:%d",adc);
if ((suhu>=30)&&(suhu<=40)) { lcd_clear();
lcd_gotoxy(0,0);lcd_putsf("Suhu haredang"); sprintf(bar2,"Suhu:%0.01f Der Cel",suhu); lcd_gotoxy(0,1);lcd_puts(bar2); delay_ms(500); } if ((suhu>=40)&&(suhu<=60)) { lcd_clear(); lcd_gotoxy(3,0);lcd_putsf("Suhu Hangat"); sprintf(bar3,"Suhu:%0.01f Der Cel",suhu); lcd_gotoxy(0,1);lcd_puts(bar3); delay_ms(500); } if ((suhu>=60)&&(suhu<=80)) { lcd_clear(); lcd_gotoxy(3,0);lcd_putsf("Suhu Panas"); sprintf(bar4,"Suhu:%0.01f Der Cel",suhu); lcd_gotoxy(0,1);lcd_puts(bar4); delay_ms(500); } if ((suhu>=80)&&(suhu<=100)) { lcd_clear(); lcd_gotoxy(3,0);lcd_putsf("sangat Panas"); sprintf(bar5,"Suhu:%0.01f Der Cel",suhu); lcd_gotoxy(0,1);lcd_puts(bar5); delay_ms(500); } if ((suhu>=0)&&(suhu<=30)) { lcd_clear(); lcd_gotoxy(3,0);lcd_putsf("Suhu kini"); sprintf(bar1,"Suhu:%0.01f Der Cel",suhu); lcd_gotoxy(0,1);lcd_puts(bar1); delay_ms(500); } } ;}
Setelah program telah ditulis, maka selanjutnya program siap untuk dimasukan ke
dalam mikrokotroler ATMEGA8535, berikut ini langkah-langkah yang dilakukan dalam
melakukan pen-download-an program:
1. Setting terlebih dahulu programmer yang akan dipakai. Programmer yang dipakai
oleh penulis adalah jenis kanda system STK200+/300.
Gambar 1.11 Setting programmer yang akan dipakai
2. Setting pada configure pilih tab after make dan centang untuk program the chip
Gambar 1.12 Settingan untuk konfigurasi sistem compile dan download
3. Pilih make the project, jika tidak ada kesalahan akan terlihat tampilan sebagai berikut
dan tekan enter untuk memasukan program ke dalam chip.
Gambar 1.13 Tampilan make the project yang siap untuk pen-download-an ke-chip
Gambar 1.14 Proses pemasukan program ke-chip mikrokontroler