Daftar Pustaka
DAFTAR PUSTAKA
[1] Ogata, Katsuhiko. Teknik kontrol Automatik jilid 1. Jakarta : Penerbit Erlangga, (1985). [2] Microchip Technology Inc., MPLAB C18 C Compiler Getting Started. (2005), MPLAB C18 C Compiler Libraries. (2005), MPLAB C18 C Compiler Users Guide. (2005), PIC18F2420/2520/4420/4520 28/40/44-Pin Enhanced Flash
Microcontrollers with 10-Bit A/D and nanoWatt Technology
Datasheet. (2004). [3] Suryadi, Perancangan dan implementasi modul kontrol temperatur berbasis mikrokontroler PIC16F877, Skripsi Sarjana Fisika, ITB, (2005). [4] Hall Effect Sensing and Application tersedia di http://www.emt.unilinz.ac.at/education/Inhalte/pr_emtsens/unterlagen_downloads/hallbook.pdf [5] Allegro MicroSystems Inc., Hall Effect IC Application Guide, (tanpa tanggal), Ratiometic, Linear Hall Effect Sensor UGN3503, (tanpa tanggal) [6] Sutrisno. Elektronika Lanjutan. Diktat Kuliah Departemen Fisika ITB, (1986). [7] Sony Sugema College. Diktat 3 SMU dan Alumni, (2001) [8] Coughlin, Robert F. dan Driscoll, Frederick F. Penguat Operasional dan Rangkaian Terpadu Linear. Jakarta : Erlangga, (1983). [9] Wobschall, Darold. Circuit design for electronic instrumentation. McGrawHill, Inc., (1987).
Tugas Akhir 10203067
xiv
Daftar Pustaka
[10] Fairchild
Semiconductor
Corporation.
6-Pin
Dip
Random-Phase
Optoisolators Triac Driver Output (250/400 Volt Peak) MOC3020-M, (2002) [11] Gilbert, Joe dan Dewey, Ray. Linear Hall Effect Sensor, Application Information 27702A Allegro MicroSystems Inc.,(tanpa tanggal). [12] Kusuma, Markus R. Belajar Turbo C dengan Cepat dan Mudah. Jakarta : Penerbit PT. Elex Media Komputindo, (1991). [13] Phillips, Charles L. dan Harbor, Royce D., Feedback Control System 3e, Prentice Hall, Inc., New Jersey, (1996). [14] Sutrisno. Elektronika Jilid 1 dan 2. Bandung : Penerbit ITB, (1987).
Tugas Akhir 10203067
xv
LAMPIRAN A Rangkaian Sistem Kontrol
1
2
3
4
6
5
VCC Qct1 TIP3055
VCC 2
C
3
ot
B
in
gnd
1
D RA0
RES2
+
D2 DIODE
VCC
Cct1 CAPACITOR POL 12
R0
1
Cct3 CAP
Dct1 DIODE
Cct7 CAP
+
Cct5 CAPACITOR POL
JPct
Dct2 DIODE
BRIDGE1 JP1 Lamp1
+
Cct2 CAPACITOR POL
RES2
JP2 Lamp2
S1 SW-PB
1 2
Rt3 RES2
C1
Jt3 1 2 3
RC3 VCC
6 5 4
CAP Y1
JP3 Lamp3
Qt3 TRIAC
CRYSTAL C2
1 2
MOC3020-M
R2 RES2
B
2 RA0 3 4 5 6 7
RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS OSC1/CLKIN OSC2/CLKOUT
MCLR 1
MCLR/VPP
+ C3 12 S2 SW-PB 31
Jt4 RC4
RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD
13 14
CAP
VCC
Rt4 RES2
33 RB0 34 RB1 35 RB2 36 RB3 RB4 37 38 RB5 39 RB6 RB7 40
1 2 3
6 5 4
Qt4 TRIAC
MOC3020-M
VSS VSS
reg2 7905 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 VDD VDD
3
ot C
E Qct2 TIP2955
15 16RC1 17RC2 18RC3 23RC4 24RC5 25 26
RL3 RL2 POT2
19RD0 20RD1 21RD2 22RD3 27RD4 28RD5 29RD6 30RD7
VCC
8 RE0 9 RE1 10RE2 11 32
C
Q1 PNP1
B
RES2
A
A
K
K LCD LCD16X2 VCC SW
CAPACITOR POL
JP4 Lamp4
in
1 2 3 4 RE0 5 RE1 RE2 6 7 RD0 RD1 8 9 RD2 RD3 10 11 RD4 RD5 12 13 RD6 14 RD7 15 16
VCC MOC3020-M
Cct8 CAP
+0 +5 Cn Rs Rw E D0 D1 D2 D3 D4 D5 D6 D7 +5 +0
VCC Qt2 TRIAC
Cct4 CAP
E
U1 R1
Jt2 6 5 4
sensor
VCC 2
1 2 3
Cct6 CAPACITOR POL
B
1 2
Rt2 RES2
RC2
+
11
Qt1 TRIAC
MOC3020-M
C
1 2 3
gnd
6 5 4
JPctsens
3
1 2 3
VCC
2 Dbdge
trafo
Jt1 RC1
4
22
1
Rt1 RES2
1 2 3
C
1 2
reg1 7805 D1 DIODE
12
JP0 Hall effect sense
D
E
RB7_k
VCC
RB7
B
RB7_p
PIC18F4520-04/P C4 CAP
1 2
RB6_k
RK2A RK2B RK2C RK2D RK2E RK2F RK2G RESPAK RESPAK RESPAK RESPAK RESPAK RESPAK RESPAK
RB6 SW DPDT RB6_p
VCC RB7_k RB6_k RB5 RB4 RB3 RB2 RB1
+
C1 C2 C3 R1 R2 R3 R4
CAPACITOR POL VCC Rt5 RES2
6 5 4
JP5 Lamp5
Qt5 TRIAC
Js 1 6 2 7 3 8 4 9 5
1 2
MOC3020-M
A
VCC
+
1 2 3
C1+ Vcc V+ Vss CAPACITOR POL C1T1out Cs3 C2+ R1in C2R1out CAPACITOR POL VT1in T2out T2in R2in R2out +
RC5
Cs1 U2
Cs2
Jt5
+ Cs4 CAPACITOR POL
JPp RB6_p 1 RB7_p 2 3 4 MCLR 5 HEADER 5
1
2
3
4
5
6
7
8
9
*
0
#
MAX232 Jk KEYPAD1 A Title
DB9
Size
Number
Revision
B Date: File: 1
2
3
4
5
28-Sep-2007 D:\My TA\design for TA\TA.ddb
Sheet of Drawn By: 6
1
2
3
4
6
5
D
D
VCC
R0 RESISTOR TAPPED -VCC R20
33k
10k
2 4 6 8
R60
u4
10k
1 3 5 7
u3 TL082
1 3 5 7
C
R30
R10 VCC
R50
33k
10k
1 2 3
-VCC
C
HEADER 3 R40 10k
TL082(2) VCC
R70
Hall Effect Sense
100k 2 4 6 8
VCC JP1
R6
catu daya -VCC
20K
10uF
R1
R2
20K
20K
R3
B LM101A 1 3 5 7 R4 VCC 15K
C1
R7
10K
C4 10p
2 4 6 8
1 2 3
C2
22.2K B
U2
D2 IN914
1 3 5 7
-VCC
2 4 6 8
-VCC Out
LM101A2
U1
150p
D1
VCC
IN914
R5 6.2K
1 2
C3
Connector to ADC
30p
A
A Title Size
Number
Revision
B Date: File: 1
2
3
4
5
28-Sep-2007 D:\My TA\design for TA\TA.ddb
Sheet of Drawn By: 6
LAMPIRAN B Gambar Pengujian Sistem
Gambarr A. Keadaan awal rangkaian
Gambar B. Penggunaan daya 150W
Gambar C. Setting point daya maksimum = 110 W
Gambar D. Keadaan setelah terjadi aksi kontrol
LAMPIRAN C Publikasi Paper
Simulasi Program Aplikasi Modul A/D Converter PIC16F877 dengan Menggunakan PIC Microtrainer Nur Asiah Aprianti, Suryadi, Heri Permadi, Suryadi#) dan Khairurrijal Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jalan Ganesa 10, Bandung 40132 #) Pusat Penelitian Fisika LIPI, Komplek Puspiptek Serpong, Tangerang 15314 E-mail :
[email protected] Abstrak - Mikrokontroler memiliki posisi yang cukup penting dalam perkembangan teknologi. Salah satu aplikasi mikrokontroler adalah akusisi data dalam pengukuran yang mengkonversi sinyal masukan analog menjadi sinyal digital sebanding. Dengan menggunakan PIC Microtrainer dari Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA ITB, simulasi program aplikasi modul A/D Converter (ADC) dapat dengan mudah dilakukan karena PIC Microtrainer tersebut memanfaatkan mikrokontroler PIC16F877 yang telah dilengkapi dengan ADC di dalamnya. Beberapa contoh simulasi program aplikasi ADC dengan memanfaatkan beberapa fitur PIC Microtrainer diberikan dalam makalah ini. Kata Kunci : A/D Converter, Mikrokontroler PIC16F877 dan PIC Microtrainer 1. PENDAHULUAN
dan penstranferan data ke PC menjadi lebih mudah karena tidak perlu lagi dirangkaikan dengan rangkaian ADC eksternal. PIC Microtrainer, simulator yang berfungsi untuk mempermudah mempelajari arsitektur, aplikasi serta pemograman mikrokontroler dari keluarga PICmicro, yang diproduksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika ITB dirancang khusus untuk mikrokontroler tipe PIC16F877 atau tipe lainnya yang memiliki kompatibilitas pinout seperti PIC18F425 atau PIC16F4520. PIC Microtrainer ini telah dilengkapi dengan beberapa modul aplikasi selain aplikasi ADC, di antaranya adalah aplikasi deret LED, peraga 7 segmen, peraga LCD, komunikasi serial dengan RS232 dan keypad. Dengan menggunakan PIC Microtrainer simulasi program aplikasi ADC menjadi lebih mudah dan efisien. Gambar 1 berikut menunjukkan tampilan kit PIC Microtrainer.
Akusisi data merupakan hal penting dalam suatu pengukuran. Salah satu komponen yang berfungsi sebagai akusisi data adalah A/D converter, suatu komponen yang mampu mengkonversi sinyal masukan analog menjadi sinyal digital sebanding. Saat ini A/D converter yang dikenal juga dengan sebutan ADC telah memiliki banyak spesifikasi. Pada umumnya, harga dan kerumitan suatu ADC akan bertambah seiring dengan kecepatan konversi dan keakuratan yang dimiliki ADC tersebut1). Kecepatan konversi dan keakuratan suatu ADC merupakan dua parameter penting yang harus diperhatikan dalam pengukuran/aplikasi lainnya. Kini dengan kemajuan teknologi semikonduktor telah memungkinkan manusia untuk memadukan ribuan transistor beserta komponen lainnya dalam satu chip IC yang dapat diprogram (programmable device) seperti mikrokontroler2). Pada beberapa jenis mikrokontroler ada yang telah dilengkapi dengan komponen ADC sebagai modul pengkonversi. Salah satunya adalah mikrokontroler PIC16F877 dari keluarga PICmicro. Mikrokontroler PIC16F877 telah dilengkapi dengan modul internal ADC 10 bit. Keakuratan yang dimiliki modul internal ini cukup baik dan memiliki waktu pengkonversian yang cukup cepat. Dengan menggunakan mikrokontroler yang telah dilengkapi modul internal ADC ini, proses akusisi data mulai dari pengukuran, pengkonversian
Gambar 1. PIC Microtrainer
2. DESKRIPSI MODUL A/D CONVERTER A/D converter pada PIC PIC16F877 memiliki delapan buah masukan yang mengkonversi sinyal masukan analog ke dalam bilangan digital 10 bit. Modul A/D memiliki pilihan input tegangan rendah dan tinggi, hal tersebut dapat disetting dengan mengatur VDD, VSS, RA2 atau RA3 pada register ADCON1. Modul ini memiliki empat buah register, yaitu : 9 ADRESH (A/D result high register) 9 ADRESL (A/D result low register) 9 ADCON0 (A/D control register 0)
9 ADCON1 (A/D control register 1) Register ADCON0 berfungsi sebagai kontrol dalam pengoperasian modul ADC sedangkan register ADCON1 berfungsi untuk mengkonfigurasi fungsi dari port ADC. Modul internal ADC pada PIC16F877 memiliki fitur yang unik, yaitu mampu beroperasi saat dalam keadaan mode SLEEP.
7, potensiometer (sebagai masukan analog) oleh no. 6 dan terminal (sebagai masukan analog) oleh no. 8
Urutan waktu pengkonversian modul ADC adalah sebagai berikut :
Acquisition time merupakan waktu yang diperlukankan untuk menghubungkan kapasitor modul ADC pada level tegangan eksternal. Hal ini terjadi saat channel ADC disetting dan setelah pengkonversian ADC terjadi. Sedangkan A/D Conversion time merupakan waktu yang diperlukan untuk melakukan konversi ADC. Konversi ADC dimulai saat bit GO pada Register ADCON0 disetting berlogika ‘1’ dan saat berakhir hasil konversi ADC diisikan ke register ADRES. Langkah-langkah untuk melakukan konversi ADC : 1. mengkonfigurasi modul ADC 2. mengkonfigurasi interrup ADC (bila perlu) 3. menunggu untuk Acquisition time 4. memulai konversi dengan men set bit GO (ADCON0) 5. menunggu untuk menyelesaikan pengkonversian dengan mencek bit GO masih berlogika ‘1’ atau tidak 6. membaca hasil konversi ADC pada register ADRESH atau ADRESL
Gambar 2. Tata letak papan PIC Microtrainer
Program aplikasi yang akan di load ke mikrokontroler dapat langsung diisikan setelah diperoleh file hexsanya dengan bantuan rangkaian ICSP (In-Circuit Serial Programming) yang telah terpasang dalam PIC Microtrainer dan perangkat lunak WinPIC. Beberapa contoh program aplikasi ADC adalah sebagai berikut : 3.1 ADC – LED Start Port A = input Port D = output Setting modul ADC
Modul internal ADC memiliki keakuratan yang cukup baik dgn resolusi 10bit namun masih terdapat error dalam pengoperasiannya. Untuk VDD=Vref nilai error yang terjadi pada konversi ADC adalah < ± 1 LSb. Pada sistem yang memiliki frekuensi operasi rendah, penggunaan clock RC pada saat konversi ADC sangat dianjurkan. Dengan menggunakan clock RC, saat sistem mengaktifkan mode SLEEP sesaat setelah penkonversian dimulai, digital noise dari modul akan berhenti.
Baca port A, 0
Konversi ADC
Tidak
Konversi selesai Ya W = ADRESH
3. HASIL DAN PEMBAHASAN Simulasi program aplikasi ADC pada PIC Microtrainer dapat dilakukan dengan mengkonfigurasi swicth SW1 dan jumper J1 sesuai dengan input dan output yang digunakan. konfigurasi SW1 menentukan modul output yang aktif (LED, peraga 7 segmen atau peraga LCD) dan J1 menentukan tegangan input ADC yang digunakan (potensiometer / terminal). Pada Gambar 2 di bawah ini, LED indikator setting SW1 ditunjukkan oleh no.
Tampilkan di port D
End
Gambar 3. Diagram alir ADC-LED
Program aplikasi ini merupakan program aplikasi ADC yang paling sederhana, output hasil konversi ADC ditampilkan pada modul deret LED. Nilai hasil konversi ADC yang ditampilkan deret LED merupakan nilai dalam bilangan biner. Diagram alir dari program tersebut dapat dilihat pada Gambar 3 di atas
ground (0 Volt) sedangkan common katode dengan menghubungkan pada VCC (5 Volt).
3.2 ADC - 7 segmen Start Port A = input Port D = output
Setting modul ADC
Baca port A, 0
Konversi ADC
Tidak
Konversi selesai
Ya Terjemahkan nilai hasil konversi
Tampilkan di Peraga 7 segmen
End
Gambar 5. Diagram alir ADC-7 segmen
Pada program aplikasi ADC – 7 segmen, output hasil konversi ADC ditampilkan pada peraga 7 segmen. Pada peraga 7 segmen output yang ditampilkan bukan dalam bilangan biner namun berupa tampilan angka desimal. Karena itu pensettingannya pun menjadi lebih rumit dibandingkan program aplikasi ADC – LED. Peraga 7 segmen merupakan susunan 7 buah LED yang membentuk angka delapan (Gambar 4). Ada dua buah jenis peraga 7 segmen, yaitu common anode dan common cathode. Perbedaan keduanya adalah bagaimana cara mengaktifkannya. Common anode dapat diaktifkan dengan menghubungkan pada
Gambar 4. Peraga 7 segmen
Untuk dapat menampilkan angka desimal (mis. Angka 1) maka perintahnya adalah memberikan logika high (1) pada LED b dan LED c. Namun hal tersebut sangat lah tidak praktis. Karena itu pada rangkaian aplikasi 7 segmen dalam PIC Microtrainer dipasangkan IC 74LS247 sebagai IC yang dapat mengkonversi secara otomatis angka desimal yang ingin ditampilkan. Diagram alir dari program aplikasi ADC – 7 segmen ini titunjukkan pada Gambar 5. 3.3 ADC – LCD Sama halnya dengan peraga 7 segmen, peraga LCD dapat menampilkan output hasil konversi ADC dalam bentuk angka desimal. Bukan hanya itu, peraga LCD pun dapat menampilkan bentuk karakter yang lebih beragam dibandingkan dengan peraga 7 segmen. Jenis perga LCD yang digunakan dalam PIC Microtrainer ini adalah jenis LCD yang dapat menampilkan 2x16 karakter. Peraga LCD memiliki delapan buah pin untuk jalur data, tiga pin untuk jalur kontrol, dua pin untuk jalur catu daya dan satu pin untuk mengatur kekontrasan tampilan layar LCD. Dengan mengkombinasi rangkaian aplikasi ADC dan LCD maka dapat diperoleh tampilan hasil konversi ADC dari tegangan input yang telah ditentukan (potensiometer/terminal) pada peraga LCD. Selain itu dengan program aplikasi ADC – LCD, programmer dapat menyelipkan pesan / keterangan untuk di tampilkan pada peraga LCD bersamaan dengan nilai hasil konversi ADC. Diagram alir dari program aplikasi tersebut diberikan pada Gambar 6.
Start Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD
Baca port A, 0
hasil konversi ADC. Diagram alir contoh program aplikasi ADC-7 segmen-serial ditunjukkan pada Gambar 7. 3.5 ADC-LCD-Serial Sama halnya dengan yang telah dijelaskan pada aplikasi ADC-7 segmen-Serial, program aplikasi ADC-LCD-Serial sangat berguna dalam akusisi data. Pebedaannya hanya pada tampilan data. Pada peraga LCD, data yang ditampilkan dapat lebih dari sekedar angka hasil konversi ADC. Misalnya, menampilkan keterangan urutan data yang masuk (data ke : 1/2/3...). Diagram alir contoh program aplikasi ADC-LCDSerial dapat dilihat pada Gambar 8. Start
Konversi ADC
Port A = input Port D = output
Tidak Konversi selesai Ya
Setting modul ADC
Terjemahkan nilai hasil konversi
Setting mode Asinkron
Tampilkan di Peraga LCD
Baca port A, 0
Konversi ADC
End
Tidak
Gambar 6. Diagram alir ADC-LCD
3.4 ADC-7 segmen–serial Salah satu hal penting dalam melakukan akusisi data adalah pentransferan data dari mikrokontroler ke PC (Personal Computer). Jenis komunikasi yang umum digunakan untuk melakukan transfer data ini adalah komunikasi serial dengan RS232. PIC Microtrainer telah dilengkapi pula dengan modul komunikasi serial RS232 yang memudahkan penstransferan data dari mikrokontroler ke PC atau sebaliknya. Dengan mengkombinasikan rangkaian aplikasi ADC, peraga 7 segmen dan aplikasi komunikasi serial RS232, hasil konversi A/D dapat dilihat langsung pada peraga 7 segmen dan ditransfer ke PC untuk dapat diolah lebih lanjut. Pada rangkaian komunikasi serial dalam PIC Microtrainer dipasangkan IC MAX232 di antara sambungan mikrokontroler dan port RS232, hal ini dimaksudkan untuk menjembatani perbedaan tegangan antara mikrokontroler dan PC. Data yang ditransfer ke PC dapat dilihat pada Hyperterminal, sebuah perangkat lunak yang terinstal secara otomatis pada PC saat menginstal Windows, dengan menset Hyperterminal sesuai dengan set mikrokontroler. Data yang dikirim ke PC merupakan nilai ASCII dari data
Konversi selesai Ya Terjemahkan nilai hasil konversi
Cek register PIR1,4 Tidak
TXIF= 1 Ya Hasil konversi + d’48’ Kirim ke PC & tampilkan di 7 segmen
End
Gambar 7. Diagram alir ADC-7 segmen-serial
Start Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD Setting mode Asinkron Baca port A, 0
Konversi ADC Tidak
Konversi selesai Ya Terjemahkan nilai hasil konversi
Cek register PIR1,4 Tidak
TXIF= 1 Ya Setting DDRAM Hasil konversi + d’48’ Kirim ke PC & tampilkan di LCD
End
Gambar 7. Diagram alir ADC-7 segmen-serial
4. KESIMPULAN Penggunaan mikrokontroler PIC16F877 pada PIC Microtrainer tidak membutuhkan tambahan rangkaian ADC eksternal untuk melakukan simulasi program. Dengan menggunakan beberapa modul aplikasi lainnya yang ada di PIC Microtrainer, pemprograman serta simulasi program mikrokontroler PIC16F877 menjadi lebih mudah. DAFTAR REFERENSI [1] Wobschall, Darold. Circuit Design for Electronic Instrumentation. Second edition. United States of America : McGraw-Hill, Inc [2] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC16F84. Jakarta : PT. ElexMediaKomputindo [3] http://pdf1.alldatasheet.com/datasheetpdf/view/75016/MICROCHIP/PIC16F877.html [4] Elkahfi PIC Microtrainer, User Manual ver.1.0. Program Studi Fisika, FMIPA, ITB [5] Modul Praktikum Sistem Instrumentasi. Program Studi Fisika, FMIPA, ITB.
Pemrogaman Lanjut Menggunakan PIC Microtrainer Heri Permadi, Nur Asiah Aprianti, Suryadi, Suryadi#), dan Khairurrijal#) Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi Bandung Jl. Ganesha 10, Bandung 40132 #) Pusat Penelitian Fisika LIPI, Komplek Puspiptek Serpong, Tangerang 15314 #) E-mail :
[email protected] Abstrak – PIC Microtrainer merupakan sebuah kit yang dirancang untuk mempermudah mempelajari arsitektur, aplikasi, serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Untuk tujuan tersebut Microtrainer ini telah dilengkapi dengan beberapa modul yang memungkinkan untuk mempelajari/merancang aplikasi menggunakan LED, 7-segmen, LCD, komunikasi serial melalui RS232, ADC maupun aplikasi keypad heksadesimal. Microtrainer ini dirancang untuk mikrokontroler tipe PIC16F877, namun dapat digunakan juga tipe lain yang memiliki kompatibilitas pinout seperti PIC18F452 atau PIC16F4520. Pada paper ini akan dijelaskan dua aplikasi dalam PIC Microtrainer yaitu aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232. Kedua aplikasi tersebut merupakan lanjutan dari pemrogaman dasar mikrokontroler menggunakan PIC Microtrainer.
Program Studi Fisika, FMIPA ITB, sebagai simulator mikrokontroler dari keluarga PIC tipe PIC16F877/18F452/16F4520, kita dapat dengan mudah untuk mempelajari arsitektur, aplikasi, serta pemrograman mikrokontroler. Hampir semua aplikasi mikrokontroler dapat dilakukan pada PIC Microtrainer ini sehingga dapat mempercepat pemahaman kita dalam mempelajari mikrokontroler.
Kata kunci : PIC Microtrainer, LCD, komunikasi serial I. PENDAHULUAN Dengan adanya kemajuan dalam bidang teknologi semikonduktor, pemaduan ribuan transistor beserta komponen yang lain dalam satu buah chip yang dikenal sebagai IC (Integrated Circuit) sudah dimungkinkan. Teknologi IC tersebut berkembang dengan pesat sehingga di pasaran beredar ribuan jenis IC dengan spesifikasi dan kegunaan yang beragam [1]. Penemuan piranti elektronika yang dapat diprogram (progammable devices) memberikan keuntungan bagi manusia, terutama dalam hal penekanan biaya, penghematan ruang dan fleksibilitas yang tinggi. Semikonduktor yang termasuk dalam semikonduktor jenis ini antara lain mikroprosesor dan mikrokontroler. Mikrokontroler merupakan piranti elektronika yang dapat diprogram yang paling sering digunakan untuk membuat sistem dengan berbagai keperluan karena praktis dan murah. Dengan tersedianya PIC Microtrainer seperti ditunjukkan dalam Gambar 1, yang dibuat di Laboratorium Elektronika dan Instrumentasi,
Gambar 1: PIC Microtrainer.
Dalam makalah ini, kami mengemukakan aplikasi mikrokontroler PIC 16F877 terutama untuk aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232 yang akan dimanfaatkan untuk praktikum pembelajaran mikrokontroler bagi mahasiswa di Program Studi Fisika ITB. II. APLIKASI TAMPILAN PERAGA LCD Peraga LCD dapat menampilkan bentuk karakter yang jauh lebih beragam dibandingkan dengan peraga 7 segmen. Jenis peraga LCD yang digunakan dalam microtrainer ini adalah jenis LCD yang dapat menampilkan 2x16 karakter. Peraga LCD memiliki delapan buah pin untuk jalur data (D0 s.d. D7), tiga pin jalur kontrol (RS, R/W, dan En) serta beberapa pin yang lain untuk catu daya serta pengatur kekontrasan tampilan layar LCD. Rangkaian selengkapnya untuk aplikasi tampilan menggunakan peraga LCD diberikan oleh Gambar 2. Delapan buah pin jalur data LCD dihubungkan dengan kedelapan pin pada port D mikrokontroler
PIC16F877, sementara tiga buah pin jalur kontrol dihubungkan dengan pin-pin pada port E-nya. Data yang dikirimkan ke LCD dapat berupa perintah (command) maupun berupa data karakter yang ingin ditampilkan.
Program Utama: Mulai
Inisialisasi PORTD&PORTE sebagai output, Inisialisasi LCD
Masukkan 00h
Set_DDRAM
Masukkan 00h
DISP_MSG
stop
Rutin Set_DDRAM:
Rutin LCD_cmd:
Mulai
Mulai
LCD_cmd
Clear-kan pin R/W & RS pada LCD
ret
LCD_pulse
ret
Rutin DISP_MSG:
Gambar 2: Rangkaian aplikasi tampilan peraga LCD.
Salah satu contoh tampilan dari aplikasi peraga LCD diperlihatkan pada Gambar 3.
Mulai
A Pindahkan lcd_tmp(22h) ke W
Masukkan 00h ke INDEX (21h)
LCD_Data MSG1 Pindahkan isi INDEX (21h) ke W
Pindahkan MSG1 ke lcd_tmp(22h)
Addlw 01h
Gambar 3: Tampilan pada peraga LCD.
Gambar 4 memberikan diagram alir dari program aplikasi tampilan peraga LCD, yang terdiri dari satu program utama dan enam rutin. Program utama dimulai dengan inisialisasi Port D dan Port E sebagai keluaran. Kemudian mengeksekusi rutin Set_DDRAM yang berisi rutin LCD_cmd untuk mengirim command ke LCD. Jika pin R/W dan RS clear, maka dipilih fungsi write pada pin R/W dan instruction input pada pin RS. Untuk menuliskan message atau karakter yang ingin kita tampilkan, maka panggil rutin DISP_MSG.
sublw '#'
B Cek STATUS,Z = 0
No MSG_END
Yes
A
B
modul aplikasi ADC dengan masukan analog dari potensiometer pada pin RA0/AN0.
Rutin MSG1: Mulai Addwf PCL,F
Return with literal Retlw ‘ASCII code’ MSG1_END retlw ‘#’
Rutin LCD_Data:
Rutin LCD_pulse: Mulai
Mulai
Set pin En pada LCD Clear-kan pin R/W pada LCD
delay
Set pin RS pada LCD
Clear-kan pin En pada LCD
LCD_pulse
delay ret
ret
Gambar 4: Diagram alir tampilan peraga LCD.
Pada rutin DISP_MSG juga terdapat rutin MSG1 yang berisi pesan yang ingin kita tampilkan di layar peraga LCD. Karakter huruf yang diterima merupakan kode ASCII. Gambar 5: Rangkaian aplikasi komunikasi serial PIC 16F877 dengan komputer melalui RS232.
III. APLIKASI KOMUNIKASI SERIAL RS232 PIC Microtrainer telah dilengkapi dengan modul yang memungkinkan mikrokontroler untuk berkomunikasi dengan komputer dan sebaliknya. Untuk menjembatani perbedaan level tegangan antara mikrokontroler (TTL) dengan port serial pada komputer digunakanlah IC MAX232. Mikrokontroler PIC telah memiliki modul USART (Universal Synchronous/Asynchronous Receiver/ Transmitter) internal atau dikenal juga dengan sebutan SCI (Serial Communications Interface) yang semakin memudahkan proses komunikasi. Modul USART dapat dikonfigurasi sebagai full duplex asynchronous system yang bisa berkomunikasi dengan alat lain seperti terminal CRT dan komputer, atau juga dapat dikonfigurasi sebagai half duplex synchronous system yang dapat berkomunikasi dengan alat lain seperti IC A/D atau D/A, EEPROM serial dan sebagainya. Gambar 5 memberikan rangkaian aplikasi komunikasi serial RS232 yang digabungkan dengan
Mikrokontroler PIC yang digunakan oleh Microtrainer ini telah menyertakan modul ADC (Analog to Digital Converter) 10 bit sebagai modul internal. Pada modul tersebut terdapat sebuah sumber tegangan analog yang dapat diatur dengan menggunakan potensiometer serta dilengkapi dengan terminal untuk memasukkan tegangan analog dari luar (A0, A1, A2, dan A3). Hasil konversi oleh modul ADC diambil 8 bit MSB-nya dan dikirimkan ke komputer melalui RS232. Data hasil konversi tersebut pada akhirnya akan ditampilkan pada perangkat lunak Hyperterminal. Pembahasan mengenai penggunaan perangkat lunak Hyperterminal untuk komunikasi serial mikrokontroler PIC dengan komputer akan diberikan pada bagian akhir. Proses komunikasi menggunakan pin RC6 sebagai pin transmitter untuk mengirimkan data dari mikrokontroler ke komputer dan pin RC7 sebagai pin receiver untuk menerima data serial dari komputer. Program komunikasi serial pada
mikrokontroler dirancang untuk menerima data dari luar (dari komputer) untuk kemudian mengirimkannya kembali ke komputer dengan nilai/karakter yang sama.
Rutin set async:
Rutin serial: Mulai
Mulai
Pindahkan isi W ke alamat 22h
Program Utama:
banksel SPBRG
set_async
Mulai1
Masukan d’64’ ke SPBRG
A
Inisialisasi PORTA sebagai input Inisialisasi PORTD sebagai output Inisialisasi ADC
banksel ADRESH
Pindahkan isi alamat 22h ke W
Pindahkan isi ADRESH ke W
kirim
banksel TXSTA
Masukan b’00100100’ ke TXSTA
Mulai konversi banksel PORTD wait_acq_t
Pindahkan isi W Ke PORTD
banksel ADCON0
Kirimkan d’10’ ke W untuk karakter line feed
banksel RCSTA
Masukan b’10010000’ ke RCSTA
Kirimkan d’13’ ke W untuk karakter carriage return
serial ret
bsf ADCON0,GO
Mulai1
end
no
ADCON0,G O=0
Rutin kirim: Mulai
yes A
Banksel PIR1
Rutin wait_acq_t :
Rutin serial: TXIF=1
Mulai
Mulai
banksel count (21h)
Pindahkan isi W ke alamat 22h
Masukkan d’50’ ke W
yes banksel TXREG
Movwf TXREG set_async
Pindahkan isi W ke alamat 21h Pindahkan isi alamat 22h ke W
decfsz 21h,f
kirim
21h = 0
Kirimkan d’10’ ke W untuk karakter line feed
ret
no
Kirimkan d’13’ ke W untuk karakter carriage return
Mulai1
Movwf PORTD
ret
Gambar 6: Diagram alir aplikasi komunikasi serial RS232.
Gambar 6 memberikan diagram alir dari program aplikasi komunikasi serial melalui RS232, yang terdiri dari satu program utama dan empat rutin yaitu wait_acq_t, serial, set_async, dan kirim. Pada program utama dilakukan inisialisasi Port A sebagai masukan, PORTD sebagai keluaran, dan inisialisasi ADC. Setelah dilakukan inisialisasi, masukan analog akan mulai dikonversi. Kemudian kita panggil rutin wait_acq_t (wait for acquisition time) yang berfungsi sebagai delay pada proses konversi. Untuk memulai konversi, kita pilih register ADCON0 dan set bit GO pada register tersebut. Kemudian kita lakukan pengecekan bit GO tersebut, jika nilainya satu maka akan terjadi proses looping sampai nilainya sama dengan nol.
Jika nilai bit GO pada register ADCON0 sama dengan nol maka akan dipilih register ADRESH yang menyimpan data 8 bit MSB hasil dari konversi analog ke digital. Kemudian kita kirim data dari register ADRESH tersebut ke PORTD jika nilai konversinya ingin kita tampilkan pada deret LED. Untuk melakukan komunikasi serial antara mikrokontroler dengan komputer, kita panggil rutin serial. Rutin ini digunakan untuk mengirimkan data hasil konversi dari ADRESH ke komputer melalui RS232. Pada rutin set_async kita pilih komunikasi serial dengan asynchronous mode dengan BRGH=1 (High Speed) untuk menentukan baudrate sebesar 9600 bps. Setelah menentukan baudrate kita lakukan konfigurasi transmitter dan receiver untuk asynchronous mode dengan memasukkan bilangan b’00100100’ ke register TXSTA dan b’10010000’ ke register RCSTA.
Gambar 7: Pemilihan icon dan nama koneksi pada Hyperterminal.
Pada rutin kirim kita pilih register PIR1 dan cek bit TXIF. Jika nilainya 1 maka pilih register TXREG untuk menulis data ke transmit buffer. Kemudian pindahkan data tersebut ke Port D yang berfungsi sebagai keluaran. Untuk menguji program komunikasi serial, perangkat lunak Hyperterminal yang ada pada setiap PC yang dioperasikan dengan Windows dapat digunakan. Hyperterminal
Salah satu cara untuk melakukan komunikasi antara perangkat keras di luar komputer secara serial yaitu dengan menggunakan perangkat lunak Hyperterminal. Program ini ada secara otomatis ketika kita melakukan instalasi Windows. Untuk mengakses program ini klik Start Æ All Programs Æ Accessories Æ Communications Æ Hyperterminal. Akhirnya kita memperoleh tampilan seperti ditunjukkan pada Gambar 7.
Gambar 8: Pemilihan port serial.
Isikan Nama Koneksi yang akan kita buat pada textbox Name dan pilihlah ikon yang kita hendaki. Setelah itu kita harus mengatur port mana yang akan kita gunakan untuk berkomunikasi antara komputer dan hardware di luar komputer. Hal ini diberikan dalam tampilan pada Gambar 8. Pada combo box Connect using kita memilih port mana yang akan kita gunakan untuk berkomunikasi. Setelah kita pilih port mana yang akan digunakan untuk berkomunikasi, kita harus mengatur properties port tersebut seperti diberikan pada Gambar 9.
Gambar 9: Pengaturan propertis port.
Terakhir, kita harus memastikan port komunikasi yang digunakan adalah port yang sama pada komputer dengan baudrate yang sama (9600 bps) tanpa flow control dan jumlah data = 8. Keadaan tampilan sebelum dilakukan komunikasi serial diperlihatkan pada Gambar 10. Setelah komunikasi berhasil dilakukan, tampilannya menjadi seperti pada Gambar 11 dengan masukan dari modul ADC.
Gambar 11: Tampilan Hyperterminal setelah dilakukan komunikasi serial dengan masukan dari modul ADC.
IV. KESIMPULAN
Gambar 10: Tampilan Hyperterminal sebelum dilakukan komunikasi serial.
Pada Gambar 11, data yang dikirim pada Hyperterminal merupakan karakter huruf “u” yang merupakan kode ASCII dengan nilai 117 untuk bilangan desimal dan 75 untuk bilangan heksadesimal. Jika program ADC tersebut digunakan untuk menghasilkan konversi tegangan analog menjadi digital dengan keluaran untuk menyalakan deret led 8 bit, maka nilai dari deret led tersebut sebanding dengan nilai karakter yang ditampilkan pada perangkat lunak Hyperterminal. Karakter huruf “u” yang ditampilkan pada Hyperterminal sama nilainya dengan nyala deret led yang memberikan bilangan 75 heksadesimal Hal ini membuktikan bahwa proses komunikasi serial antara mikrokontroler PIC dengan komputer berhasil dilakukan.
Dengan adanya PIC microtrainer dapat mempermudah kita dalam mempelajari arsitektur, aplikasi, serta pemprograman mikrokontroler keluarga PIC16F877/18F452/16F4520. Hampir semua aplikasi mikrokontroler dapat dilakukan pada PIC microtrainer ini diantaranya adalah aplikasi tampilan peraga LCD dan komunikasi serial melalui RS232. DAFTAR PUSTAKA
[1] PIC16F8X Datasheet. Microchip Tech. Inc. [2] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC 16F84. Jakarta : PT.ElexMediaKomputindoKelompokGramedia [3] User manual Elkahfi PIC Microtrainer. Oktober 2005.
PIC Microtrainer untuk Pemrograman Dasar Mikrokontroler Keluarga PIC Suryadi, Heri Permadi, Nur Asiah Aprianti, Suryadi*), dan Khairurrijal#) Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jl. Ganesa 10, Bandung 40132 #) E-mail :
[email protected] Abstrak - PIC Microtrainer produksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA, ITB adalah sebuah kit yang dirancang untuk mempermudah mempelajari arsitektur, aplikasi serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Microtrainer ini dilengkapi dengan modul LED, 7-segmen, LCD, komunikasi serial melalui RS232, dan ADC. Modul LED dan 7-segmen merupakan contoh aplikasi sederhana yang merupakan dasar untuk mempelajari pemrograman untuk aplikasi lain yang lebih rumit. Mikrokontroler yang digunakan dalam PIC Microtrainer ini adalah PIC16F877, tetapi tidak menutup kemungkinan untuk menggunakan mikrokontroler produksi Microchip yang lain dengan konfigurasi pinout yang sama.
mempermudah mempelajari arsitektur, aplikasi serta pemrograman mikrokontroler khususnya dari keluarga mikrokontroler PIC produksi Microchip Technology Inc. Untuk tujuan tersebut Microtrainer ini, seperti yang ditunjukkan pada Gambar 1, telah dilengkapi dengan beberapa modul yang memungkinkan untuk mempelajari aplikasi menggunakan modul LED, 7segmen, LCD, komunikasi serial RS232, dan ADC. Microtrainer ini dirancang untuk mikrokontroler bertipe PIC 16F877, namun dapat digunakan juga tipe lain yang memiliki kompatibilitas pinout, seperti PIC18F452 atau PIC18F4520. Untuk mendownload program ke mikrokontroler, PIC Microtrainer ini telah dilengkapi oleh rangkaian ICSP (In-Circuit Serial Programming) sehingga memudahkan bagi para pengguna yang akan mendownload program ke dalam mikrokontroler.
Kata kunci: PIC Microtrainer, PIC16F877 1.
Pendahuluan
Kemajuan teknologi semikonduktor telah memungkinkan manusia untuk memadukan ribuan transistor beserta komponen lain ke dalam satu chip yang dikenal sebagai IC (Integrated Circuit). Seiring dengan kemajuan tersebut telah berkembang pula piranti semikonduktor yang dapat diprogram. Semikonduktor yang termasuk dalam semikonduktor jenis ini antara lain mikroprosesor, mikrokontroler CPLD (Complex Programmable Logic Device) dan FPGA (Field Programmable Gate Array). Penggunaan piranti yang dapat diprogram memiliki banyak keuntungan, terutama dalam hal penekanan biaya, penghematan ruang dan fleksibilitas yang tinggi. Dengan manipulasi perangkat lunak, piranti dapat deprogram tersebut dapat mengoptimumkan kerja suatu sistem. Mikrokontroler merupakan salah satu contoh piranti yang dapat diprogram yang banyak diminati orang1). 2.
PIC Microtrainer
PIC Microtrainer, produksi Laboratorium Elektronika dan Instrumentasi, Program Studi Fisika, FMIPA, ITB adalah sebuah kit yang dirancang untuk *)
Sekarang bekerja di Pusat Penelitian Fisika LIPI, Kompleks Puspitek Serpong, Tangerang 15314, Indonesia
Gambar 1. PIC Microtrainer
3.
Instruksi-Instruksi PIC16F877
Dari segi arsitekturnya, mikroprosesor atau mikrokontroler dapat digolongkan menjadi dua, yaitu arsitektur Harvard dan von-Neumann. Pada arsitektur Harvard, bus data dan bus alamat dipisahkan, sehingga aliran data dari ke CPU menjadi lebih lancar dan kecepatan kerja mikrokontroler menjadi lebih tinggi. Biasanya, arsitektur Harvard memiliki lebih sedikit macam instruksi dibandingkan arsitektur vonNeumann. Mikrokontroler dengan arsitektur Harvard disebut juga mikrokontroler jenis RISC (Reduced Instruction Set Computer)1).
Mikrokontroler PIC16F877 tergolong mikrokontroler berjenis RISC sehingga instruksi yang digunakan relatif sedikit, hanya 35 instruksi. Instruksi-instruksi tersebut terdiri dari 6 instruksi untuk transfer data, 15 instruksi untuk operasi aritmatika dan logika, 2 instruksi untuk operasi bit, 9 instruksi pengarah aliran program dan 3 instruksi umum. Terdapat beberapa simbol yang digunakan dalam menulis program dalam PIC 16F877 yaitu f menunjukkan register file, W register kerja (work register) yang berfungsi sebagai akumulator, b register alamat bit, k register medan literal, konstanta atau label. d register tujuan, jika d = 0, hasil operasi disimpan di register W, sedangkan jika d = 1, hasil operasi ditempatkan di register f. Label menunjukkan nama suatu bagian program. Instruksi untuk transfer data terdiri dari MOVLW, MOVWF, MOVF, CLRW, CLRF, dan SWAPF. Instruksi MOVLW digunakan untuk memindahkan nilai literal ke register W. MOVWF untuk memindahkan isi register W ke f. MOVF untuk memindahkan isi register f ke W jika d = 0, atau ke register f jika d = 1. CLRW untuk membersihkan isi register W. CLRF untuk membersihkan isi register f. Sedangkan SWAPF untuk menukarkan 4 bit atas dengan 4 bit bawah pada register f dan hasilnya disimpan di tujuan d. Instruksi untuk operasi aritmatika terdiri dari ADDLW, ADDWF, SUBLW, SUBWF, ANDLW, ANDWF, IORLW, IORWF, XORLW, XORWF, INCF, DECF, RLF, RRF, dan COMF. Instruksi ADDLW digunakan untuk menjumlahkan suatu literal dengan register W, dan hasilnya disimpan di register W. ADDWF untuk menjumlahkan isi register W dengan f, kemudian hasilnya disimpan di tujuan d. SUBLW untuk mengurangkan isi register W dari suatu nilai literal, hasilnya disimpan di register W. SUBWF untuk mengurangkan isi register W dari register f, hasilnya disimpan di tujuan d. ANDLW untuk melakukan operasi logika AND antara nilai literal dengan register W, hasil operasi disimpan di register W. ANDWF untuk operasi logika AND antara register W dengan register f, hasilnya disimpan di tujuan d. IORLW untuk melakukan operasi OR antara register W dengan nilai literal k, hasilnya disimpan di W. IORWF untuk operasi logika OR antara register W dengan register f, hasilnya disimpan di tujuan d. XORLW untuk melakukan operasi logika XOR antara register W dengan nilai literal k, hasilnya disimpan di W. XORWF untuk operasi XOR antara register W dengan register f, hasilnya disimpan di tujuan d. INCF untuk menaikkan 1 nilai register f, hasilnya disimpan di tujuan d. DECF untuk mengurangi 1 nilai register f, hasilnya disimpan di tujuan d. RLF untuk menggeser ke kiri bit-bit dalam register f, bit 0 ke 1, bit 1 ke 2 dan seterusnya, bit 7 ke carry, carry ke bit 0, dan hasilnya disimpan di tujuan d. RRF untuk menggeser
ke kanan bit-bit dalam register f, bit 7 ke 6, bit 6 ke 5 dan seterusnya, bit 0 ke carry, carry ke bit 7. COMF digunakan untuk mendapatkan nilai komplemen dari isi register f, hasilnya disimpan di tujuan d. Instruksi untuk operasi bit meliputi BCF dan BSF. Instruksi BCF digunakan untuk membersihkan suatu bit pada register f. BSF untuk menetapkan suatu bit pada register f menjadi berlogika 1. Instruksi-instruksi untuk pengarah aliran program terdiri dari BTFSC, BTFSS, DECFSZ, INCFSZ, INCFSZ, GOTO, CALL, RETURN, RETLW, dan RETFIE. Instruksi BTFSC digunakan untuk menguji logika suatu bit pada register f, jika nilainya 0 instruksi berikutnya akan dilompati, sedangkan jika nilainya 1 instruksi berikutnya tetap dieksekusi. BTFSS untuk memeriksa bit pada register f, jika 0 instruksi berikutnya akan dilompati, sedangkan jika berlogika 1 instruksi berikutnya tetap dieksekusi. DECFSZ untuk melakukan pengurangan terhadap register f, jika hasilnya 0 instruksi berikutnya dilompati, hasilnya disimpan di tujuan d. GOTO untuk mengarahkan suatu program ke suatu tempat dengan nama atau alamat tertentu. CALL untuk memanggil suatu subrutin. RETURN untuk kembali dari suatu subrutin. RETLW untuk kembali dari suatu subrutin sambil memberi nilai literal k pada W. RETFIE untuk mengakhiri suatu rutin interupsi. Instruksi-instruksi umum terdiri dari NOP, CLRWDT, SLEEP. Instruksi NOP digunakan untuk mengulur waktu kerja mikrokontroler dan menghabiskan satu cycle namun tidak melakukan operasi apapun. CLRWDT untuk me-reset WDT. Jika WDT diaktifkan, maka mikrokontroler akan mengalami reset saat WDT mengalami overflow, maka WDT ini harus di reset agar WDT tidak mengalami overflow. SLEEP digunakan untuk menjadikan mikrokontroler berada dalam keadaan standby Proses pemindahan data antar register f dalam PIC16F877 harus dilakukan melalui register W. Contoh dari instruksi jenis ini adalah MOVF, yaitu memindahkan isi register f ke tujuan d. Dengan membuat d bernilai 0, maka isi dari register f akan dipindahkan (dikopikan) ke register W. Instruksi MOVWF memindahkan isi register W ke f. Pada dasarnya operasi aritmatika dalam PIC16F877 hanya terdiri dari operasi penjumlahan dan pengurangan. Proses operasi aritmatika ini mempengaruhi nilai bit C, DC, dan Z pada register status. Contoh dari instruksi jenis ini adalah ADDWF dan SUBWF. Instruksi ADDWF berfungsi untuk menjumlahkan isi register W dengan isi register f. SUBWF berfungsi untuk mengkurangkan isi register W dari register f.
PIC16F877 memiliki operasi logika yang terdiri dari operasi AND, OR, XOR, COMF dan rotasi RLF atau RRF. Contoh dari instruksi jenis ini adalah ANDLW yang berfungsi untuk melakukan operasi AND antara literal dengan isi register W dan hasilnya disimpan di register W. IORLW untuk melakukan operasi logika antara literal dengan isi register W, hasilnya disimpan di register W.
padam dapat terlihat oleh mata. Diagram alir untuk menampilkan data dengan menyalakan LED diberikan dalam Gambar 3. MULAI
Inisialisasi PORT D PortD sebagai Output
Operasi bit terdiri dari dua jenis yaitu BCF dan BSF. Instruksi BCF berfungsi untuk membersihkan bit pada register tertentu dan BSF untuk menset bit pada register tertentu menjadi berlogika 1. 4.
Matikan LED di PORTD (PORTD = H’00’)
Aplikasi Tampilan Deret LED
Delay
Dalam PIC Microtrainer, rangkaian perangkat keras untuk aplikasi dengan modul LED ditunjukkan oleh Gambar 2.
Nyalakan LED di PORTD (PORTD = H’0FF’)
Delay
Gambar 3. Diagram alir modul aplikasi tampilan LED
Langkah pertama yang harus dilakukan dalam memprogram mikrokontroler adalah melakukan inisialisasi portnya dahulu, apakah port itu akan berfungsi sebagai input atau output. Dari Gambar 2 terlihat bahwa PORTD berfungsi sebagai output yang kemudian terhubung pada delapan buah LED. Untuk menjadikan fungsi PORTD sebagai output, register TRISD harus diberi logika 0. Untuk mematikan deret LED, PORTD harus diberi logika 0, dan untuk menyalakan deret LED, PORTD harus diberi logika 1 pada setiap bitnya, atau sebesar 0FF dalam bilangan hexa. Agar aplikasi LED ini bekerja bekelanjutan, maka program untuk mematikan dan menyalakan LED ini harus diulang terus-menerus. Namun, kerja dari mikrokontroler ini sangat cepat sehingga mata manusia tidak dapat mengikuti perubahan nyala LED tersebut. Supaya perubahan nyala LED tersebut dapat diikuti oleh mata manusia, maka harus diberi waktu tunda (delay) kira-kira satu detik, sehingga mengakibatkan LED akan mati selama satu detik, lalu nyala selama satu detik, lalu mati kembali selama satu detik, dan begitu seterusnya. Gambar 2. Perangkat keras untuk aplikasi tampilan deret LED
Delapan buah LED yang diberi label D0 sampai D7 dihubungkan dengan delapan buah pin yang terdapat pada port D mikrokontroler. LED akan menyala apabila pin pada port D yang terhubung ke LED yang bersangkutan diberi logika 1 (High) serta akan padam bila diberikan logika 0 (Low). Untuk membuat LED agar menyala kemudian padam kembali, perlu diberi delay (waktu tunda) agar perubahan antara nyala dan
5.
Aplikasi Tampilan 7-Segmen
Empat buah peraga 7-segmen tipe common anode dirangkai secara paralel untuk membentuk peraga yang dapat menampilkan empat digit angka. Untuk menampilkan empat digit angka dengan satu jalur data yang diparalel, digunakan teknik multiplexing dimana keempat peraga 7-segmen dinyalakan secara bergantian dengan data yang ingin ditampilkan pada setiap peraga dikirimkan pada saat unit peraga tersebut
dinyalakan. Dengan mengatur refresh-rate yang cukup akan diperoleh tampilan yang nyaman di mata manusia. Jalur data peraga 7-segmen yang yang dirangkai paralel, dihubungkan ke mikrokontroler melalui IC driver yaitu 74LS247. Port mikrokontroler yang digunakan untuk aplikasi ini adalah port D, dimana bagian LSB (RD0 sampai RD3) digunakan sebagai jalur data dan bagian MSB (RD4 sampai RD7) digunakan untuk mengontrol hidup mati keempat unit peraga 7-segmen. Rangkaian untuk aplikasi tampilan dengan peraga 7-segmen diberikan oleh Gambar 4.
akan bernilai 0 volt, sehingga tegangan pada kaki kolektornya akan menjadi +5 volt, hal ini akan menyebabkan 7-segmen akan menyala. Untuk menampilkan sebuah angka pada sebuah unit peraga, data yang bersesuaian dengan angka yang ingin ditampilkan dikirim melalui bagian LSB dari port D mikrokontroler sementara pin pada bagian MSB untuk mengontrol unit peraga yang ingin dihidupkan diberi logika 0 (low) sementara pin pengontrol unit yang lain diberi logika 1 (high).
D
MULAI
A
Inisialisasi PORTD PORTD sebagai output
Masukkan angka 2 ke register W W = 02
Masukkan angka 1 ke register W W = 01
W OR B’11110000' PORTD = W Clear PORTD,6
W OR B’11110000' PORTD = W Clear PORTD,5
Delay
Delay B A
B
C
Masukkan angka 3 ke register W W = 03
Masukkan angka 4 ke register W W = 04
W OR B’11110000' PORTD = W Clear PORTD,6
W OR B’11110000' PORTD = W Clear PORTD,7
Delay
Delay
C
D
Gambar 4. Perangkat keras aplikasi tampilan 7-segmen
Gambar 5. Diagram alir tampilan 7-segmen
Bagian LSB pada port D (RD0 sampai RD3) yang berfungsi sebagai jalur data dihubungkan ke IC driver 74LS247. IC ini berfungsi untuk mengkonversi nilai yang berbentuk desimal yang masuk menjadi kodekode biner yang kemudian dihubungkan secara paralel ke empat buah 7-segmen. Untuk memilih 7-segmen yang akan diaktifkan digunakan bagian MSB pada port D (RD4 sampai RD7). Masing-masing pin ini dihubungkan ke bagian basis dari transistor yang berjenis PNP setelah melewati resistor. Kaki emitor pada transistor ini dihubungkan pada tegangan +5 volt, sedangkan kaki kolektornya dihubungkan pada kaki anoda pada 7-segmen. Apabila pin ini diberi logika low (0), maka tegangan pada basis transistor ini
Untuk menampilkan angka 1234 pada 7-segmen dilakukan dengan cara memberi nilai 1,2,3,4 pada PORTD serta mengaktifkan 7-segmen ke 1,2,3,4 secara bergantian. Dengan adanya delay yang sangat kecil menyebabkan mata kita tidak dapat melihat perubahan tersebut sehingga seolah-olah kita hanya melihat nilai 1234 pada keempat 7-segmen tersebut. Program aplikasi 7-segmen diawali dengan proses inisialisasi. Karena port yang digunakan sebagai output adalah PORTD, maka port ini perlu diinisialisasi terlebih dahulu agar berfungsi sebagai output. Untuk menjadikan PORTD berfungsi sebagai
output, register TRISD diberi nilai 0. Untuk menampilkan angka 1 pada 7-segmen yang pertama (digit ke-1), register W diisi dengan nilai 1 lalu di-ORkan dengan B’11110000’ hal ini dimaksudkan agar seluruh 7-segmen mati. Nilai W ini kemudian dikirim ke PORTD, dengan menjadikan bit ke 4 pada PORTD berlogika 0, maka 7-segmen yang pertama akan menampilkan angka 1. Untuk menampilkan angka 2 pada 7-segmen yang kedua (digit ke-2), register W diisi dengan nilai 2 lalu di-OR-kan dengan B’11110000’ hal ini dimaksudkan agar seluruh 7segmen mati. Nilai W ini kemudian dikirim ke PORTD, dengan menjadikan bit ke 5 pada PORTD berlogika 0, maka 7-segmen yang kedua akan menampilkan angka 2. Demikian juga halnya dengan 7-segmen yang ketiga dan keempat. Proses ini diulang secara terus menerus dengan delay yang sangat kecil sehingga seolah-olah kita hanya melihat angka 1234 pada empat 7-segmen tersebut.
6.
Kesimpulan
PIC Microtrainer ini telah dirancang untuk mempelajari arsitektur dan pemrograman mikrokontroler PIC16F877 secara mudah dan cepat. Modul Apliksi LED dan 7-segmen merupakan contoh aplikasi sederhana yang merupakan dasar untuk mempelajari aplikasi lain yang lebih rumit Daftar Pusaka [1] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC16F84. Jakarta. PT ElexMediaKomputindo. [2] Elkahfi PIC Microtrainer Manual Book. Bandung: Program Studi Fisika, FMIPA, ITB. [3] http://pdf1.alldatasheet.com/datasheetpdf/view/75016/MICROCHIP/PIC16F877.html
Analysis of Laboratory Scale Temperature Control System using MatLab Nur Asiah Aprianti, Suryadi, and Khairurrijal Physics of Electronic Materials Research Division, Faculty of Mathematics and Natural Sciences Institut Teknologi Bandung Jalan Ganesa 10, Bandung 40132, Indonesia Abstract- A laboratory scale temperature control system consisting of a plastic box as a thermal plant, dc lamp as well as dc fan as two actuators, and a microcontroller based controller was modeled as a second-order lumpedelement system and theoretically analyzed by using MatLab, Control Toolbox and Simulink. The root locus method and the Bode analysis were applied to the control system. The best simulation result obtained Kp=40 and Ki=1. Experimental result of the control system with the PI control action gave Kp=20 and Ki=1. The difference between the simulation and experimental results occurs because the materials’ parameters used in modeling the thermal plant are not known exactly. KeyWords: Control system, MatLab, Microcontroller, Thermal plant
II. IDENTIFICATION OF CONTROL SYSTEM A temperature control system, which is composed of a controller and a thermal plant, has been designed [3,4] and is used in the Electronics and Instrumentation Laboratory of Physics Study Program at Institut Teknologi Bandung as seen in Fig. 1. The controller employs the PIC18F452 microcontroller, a potentiometer to give a setting point value and control parameters, and an LCD to display the setting point, the control parameters and the measured temperature, and the RS232 serial communication. The thermal plant is made of a plastic box confining dc lamp and fan actuators as well as an LM 35 temperature sensor.
I. INTRODUCTION Computer technology expands along with expanding electronics technology. Control technology gets advancement from the expansion of electronics technology starting from conventional control to automatic control to smart control. Today, the automatic control gives very big role in human life, especially in industry and science fields. Among the others are robots, controlling the temperature of a tank, the humidity of air in a room, air pressure in a closed pipe, etc. The domination of control systems both in the case of practice and also theory will yield a response system that fits with requirements. Controller is usually needed to eliminate error from the system until control specification is obtained. It is the problem in control. There are many ways to handle it, such as the choice of the best sensor to sense control output and the best actuator performance, the development of a mathematical model of the system, the design of controller, the evaluation of controller’s design based on analytic, simulation and experiment [1,2]. In this paper, we evaluate a microcontroller-based laboratory scale temperature control system. Analytical and experimental methods as well simulation using MatLab, Control Toolbox, and Simulink will be performed to evaluate the laboratory scale temperature control system and the results will be discussed.
Plant
RS232
Controller Figure 1. A temperature control system board consisting of a controller and a thermal plant.
The thermal plant as a dynamic system is modeled as a second-order lumped-element system as given in Fig. 2. The state variables of the dynamic system are Ta and Tb, where the air and box temperatures, respectively. The inputs to the dynamic system are heat Q(t) provided by the heater and the ambient temperature To. The heat transfer rate because of the temperature change in a material is [5] dTm dQ = mm c m , dt dt
(1)
where mm and cm are the mass and the specific heat capacity of the material, respectively.
τs =
mb cb 291.696 = = 108035.56, A2 h2 0.0027
Δs =
( mb cb s + A1h1 + A2 h2 ) s 291.696 s 2 + 0.31182 s = . A2 h2 0.0027 Q(s)
Ta(s)
Gol(s)
Figure 3. The open loop system.
Figure 2. A thermal plant as a dynamic system.
The rate of heat transfer from the air to the plastic box is dQ = A1h 1 (Ta − Tb ) , dt
(2)
where A1 is the contact area between the air and plastic box and h1 is the heat transfer coefficient from the air to the box. Substituting Eq. (1) into (2) we obtain Eq. (3). mac a
dTa = A1h 1 (Ta − Tb ) , dt
(3)
where ma and ca are the mass and specific heat capacity of the air, respectively. The heat transfer rate between the air and plastic box as well as between the plastic box and the ambient rate is dQ = A1h 1 (Ta − Tb ) − A 2h 2 (Tb − T o ) , dt
dynamic system Gol ( s) =
(5)
where mb and cb are the mass and specific heat capacity of the plastic box, respectively. III. OBTAINING TRANSFER FUNCTION OF DYNAMIC SYSTEM
(8.a)
or Gol ( s ) =
Ta ( s ) 102.7937 s + 0.00095 = Q ( s ) 291.696 s 2 + 0.31182 s
,
(8.b)
with To(s) is assumed as a disturbance. The open loop system is described in Fig. 3. Tsp(t)
Ta(t) Gol(s)
H(s)
Figure 4. The closed loop system.
The closed loop system illustrated in Fig. 4 has a transfer function given by Gcl ( s) =
Ta ( s) Gol ( s ) . = Tsp ( s ) 1 + H ( s)Gol ( s)
(9.a)
Taking H(s) = 1, Eq. (9.a) becomes G cl ( s ) =
By taking the Laplace transform to Eqs. (3) and (5), we obtain Eqs. (6.a) and (6.b), respectively. A h T ( s) + A2 h2To ( s ) (6.a) T (s) = 1 1 a . b
Ta ( s ) k (τ s s + 1) = Q( s ) Δs
(4)
where A2 is the contact area between the plastic box and ambient and h2 is the heat transfer coefficient from the plastic box to the ambient. Substituting Eq. (1) into (4) to obtain Eq. (5). dTb mbc b = A1h 1 (Ta − Tb ) − A 2h 2 (Tb − T o ) , dt
We get an open loop transfer function of the
Ta ( s ) 102.7937 s + 0.00095 . (9.b) = Tsp ( s ) 291.696 s 2 + 103.10552 s + 0.00095
IV. ANALYSIS OF CONTROL SYSTEM
mb cb s + A1h1 + A2 h2
and ma caTa ( s ) Ta ( s ) Tb ( s ) . = − A1h1 s s
(6.b)
With substitution of Eq. (6.a) into Eq. (6.b), Eq. (7) is obtained. Ta ( s) = k [τ s s + 1]
Q( s) To ( s) , − Δs Δs
where Ah 0.30912 k = 12 1 2 = = 0.3524, 0.8772 ma ca
(7)
Analysis of the temperature control was doing step by step by using MatLab and Control Toolbox [6] for the open loop system (Fig. 3), the closed loop system without controller (Fig. 4), and the closed loop system with controller as shown in Fig. 5. Tsp(t)
Ta(t) CONTROLLER
Gol(s)
H(s)
Figure 5. Block diagram of the closed loop system with controller.
It is seen that the transient response of the open loop system, with the step input Q(s)=A/s where A is a constant of 80, given by Eq. (8.b) is shown in Fig. 6. The open loop system is unstable because the temperature Ta increases monotonously with the increase of time. 4
Step Response
x 10
3
The root locus plot of the closed-loop system illustrated in Eq.(10) is depicted in Fig. 8. There are two poles, i.e. (-0.35,0) and near (0,0) and a zero near (0,0). Since the pole and zero near zero forms a pair, the pole at (-0.35,0) move toward -∞ as the value of K is increased. All the poles are therefore on the real axis. This corresponds to an overdamped system and the transient response is nonoscillatory. Root Locus 1
0.76
2.5 0.8
0.5
0.38
0.24
0.12
0.88
0.6
2
0.4
1.5
Imaginary Axis
Amplitude
0.64
1
0.97
0.2 1.2
0
1
0.8
0.6
0.4
0.2
-0.2 0.97
-0.4
0.5 -0.6
0
0.88
-0.8
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000 -1 -1.4
Time (sec)
Figure 6. Transient response of the open loop system.
0.76 -1.2
0.64 -1
0.5
-0.8
-0.6
0.38 -0.4
0.24
0.12
-0.2
0
Real Axis
Figure 8. Root locus of the closed-loop system.
Figure 7 gives the transient response, with the setting point input Tsp(s)=80/s, for the closed loop system in Eq. (9.b). It is clearly shown that the system is stable and only requires 16 seconds to reach the setting point temperature of 80 oC. Step Response
Figure 9 shows the Bode plot of the closed-loop system in Eq. (10). It is found that the frequency bandwidth (BW) of the closed-loop system is equal to 0.347 rad/sec. and the rise time tr obtained from tr≥1.8/BW, where BW in rad/sec. [6] is more or equal to 5 seconds.
80 Bode Diagram Gm = Inf , Pm = -180 deg (at 0 rad/sec)
70
0 -5 Magnitude (dB)
60
Amplitude
50
40
-15 -20 -25 -30 0
30
Phase (deg)
20
10
0
System: untitled1 Frequency (rad/sec): 0.347 Magnitude (dB): -3.01
-10
-45
-90
0
2
4
6
8
10
12
14
16
Time (sec)
=
K (102.7937 s + 0.00095 ) 291.696 s 2 + ( K102.7937 + 0.31182 ) s + K 0.00095
-4
10
-3
10
-2
10
-1
10
0
10
1
10
Figure 9. Frequency response of the closed-loop system.
Further analysis of the closed loop system using the root locus method needs a controller with the gain K so that the closed loop transfer function becomes Ta ( s ) Tsp ( s )
-5
10
Frequency (rad/sec)
Figure 7. Step response of the closed loop system.
Gcl ( s ) =
-6
10
.(10)
Now, we need a controller to get a better response of the closed-loop system. The control action is proportional-integral (PI). The block diagram of the PI control action is given in Fig. 10. With simulation using Simulink [6] the parameter values of the controller (Kp and Ki) were obtained. The best value of of Kp is 40. However, an error in the steady state still exists. The error is eliminated by employing an integral with Ki=1. The simulation result of output response of the closed-loop system is demonstrated in
Fig. 11. It is found that the output response is overdamped.
Figure 12. Experimental result of transient response with Kp=20 and Ki=1.
V CONCLUSION
Figure 10. Block diagram of closed loop system with simulink (Kp=40, Ki=1)
Figure 12 present the experimental result of the closed-loop system controlled by the PI action. The output response is good for Kp=20 and Ki=1. The parameters between the simulation and experimental results are different. One reason why the parameters are different is the materials’ parameters used in modeling the thermal plant are not known exactly.
A microcontroller-based laboratory scale temperature control system has been modeled as a second-order lumped-element system. The root locus method and the Bode analysis have been applied to analyze the control system. MatLab and Control Toolbox have been used to obtain the transient responses of the open-loop and closed-loop systems and their characteristics including poles and zero as well as magnitude and phase. Simulink has been used to simulate the PI control action applied to the control system. The best simulation result obtained Kp=40 and Ki=1. Experimental result of the control system with the PI control action gave Kp=20 and Ki=1, which differ from those obtained from the simulation because the materials’ parameters used in modeling the thermal plant are not known exactly REFERENCES [1] [2] [3] [4]
Figure 11. Simulation result of transient response with Kp=40 and Ki=1.
Step Response
50 Temperature
40 30 20 10 0 0
200
400Time600 800 (second)
1000
1200
[5] [6]
C. L. Phillips, R. D. Harbor, Feedback Control System 3e, Prentice Hall, Inc., New Jersey, 1996. K. Ogata, Teknik Kontrol Automatik Jilid 1 dan 2, Jakarta: Penerbit Erlangga, 1985. Suryadi, “Perancangan dan implementasi modul kontrol temperatur berbasis mikrokontroler PIC16F877”, Skripsi Sarjana Fisika, ITB, 2005. Suryadi, Suryadi, dan Khairurrijal, “Implementasi modul kontrol temperatur menggunakan digital PI controller”, Prosiding Seminar Nasional Teknologi dan Rekayasa Industri SNTRI 07 (Serpong, 11-12 April 2007), pp.TI-17-1-TI-17-4, 2007. Y. A. Çengel and M. A. Boles, Thermodynamics An Engineering Approach, 4th ed., McGraw Hill, Boston, 2002. T.W.D. Hartanto dan Y.W.A. Prasetyo, Analisis dan Desain Sistem Kontrol dengan MatLab. Yogyakarta: Penerbit Andi, 2002.
Pengontrolan Temperatur Menggunakan Kontroler PID Digital Berbasis Mikrokontroler PIC18F4520 Suryadi, Asep Suhendi, Nur Asiah Aprianti dan Khairurrijal Kelompok Keahlian Fisika Material Elektronik Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung Jl. Ganesa 10, Bandung 40132
Abstrak Kontroler PID digital merupakan kontroler yang paling baik dari kelompok kontroler konvensional. Sistem kontrol ini bekerja dengan membandingkan keluaran “plant” dengan harga yang diinginkan, menentukan deviasi (error) dan menghasilkan sinyal kontrol yang akan memperkecil error sampai harga yang kecil. Secara garis besar sistem kontrol di industri dapat diklasifikasikan menjadi beberapa jenis yaitu kontroler on-off, proporsional, integral, proporsional - derivatif (PD), proporsional - integral (PI), dan kontroler proporsional – integral - derivatif (PID). Salah satu arah perkembangan sistem kontrol adalah implementasi sistem kontrol pada sistem terintegrasi (embedded system). Kontroler PID digital merupakan salah satu aplikasi dari sistem terintegrasi yang menggunakan sistem kontrol PID yang bekerja secara digital. Sistem ini memanfaatkan karakteristik dari mikrokontroller PIC18F4520 yang memiliki dua buah sumber PWM, ADC internal, dan 32 Kb flash memory yang bisa diisi program sebagai pengontrol. Sistem ini diaplikasikan dalam pengontrolan suhu dengan mengunakan algoritma PID, diperoleh nilai suhu yang sesuai dengn Setting Point dengan cepat dan tanpa menghasilkan error steady state. Kata Kunci: Digital, PID, Kontroler I.
Pendahuluan
Kontroler PID merupakan kontroler yang paling baik dari kelompok kontroler konvensional. Kontroler PID digital merupakan algoritma PID secara digital sehingga memungkinkan untuk diimplementasikan pada mikrokontroler sebagai pengontrol. Kontroler ini merupakan penggabungan dari kontroler poporsional, integral dan derivatif. Apabila kontroler ini diimplementasikan pada mikrokontroler untuk mengontrol temperatur maka akan dihasilkan suatu sistem kontrol temperatur yang bisa berjalan sendiri dengan temperatur keluaran sesuai dengan setting point dan error yang sangat kecil.
Gambar 1 Board Kontroler PID Salah satu arah perkembangan sistem kontrol adalah implementasi sistem kontrol pada sistem
terintegrasi (embedded system)1). Gambar 1 memperlihatkan modul kontroler PID lengkap dengan Plant yang akan dikontrol temperaturnya. Kontroler ini memanfaatkan karakteristik dari PIC18F4520 yang bisa diprogram sebagai kontroler dan pengolahan data. II.
Teori Dasar Sistem Kontrol
Sebuah pengontrol otomatik bekerja dengan membandingkan keluaran aktual dari plant (process variable/PV) terhadap masukan referensi (set point/SP) sebagai nilai yang diinginkan. Dari perbandingan tersebut diperoleh nilai error yang menyatakan deviasi dari kedua parameter. Selanjutnya pengontrol akan menghasilkan sinyal kontrol sebagai upaya korektif yang akan mereduksi error. Mekanisme bagaimana pengontrol otomatik menghasilkan sinyal kontrol lazim disebut sebagai aksi kontrol (control action)2). Sinyal kontrol yang dihasilkan kemudian dikrimkan ke aktuator untuk mengontrol plant agar diperoleh error yang sangat kecil.
Gambar 2 Diagram blok sistem kontrol lingkar tertutup
III.
Perangkat Keras Digital PID Controller
Kontroler PID digital menggunakan mikrokontroler PIC18F4520 dengan fitur 32Kb flash programming, ADC dan PWM internal dengan resolusi 10 bit, serta mendukung untuk melakukan komunikasi USART. Aplikasi ini juga dilengkapi dengan resistor variabel yang berfungsi untuk mengatur nilai setting point dan parameter-parameter kontrol yang diperlukan, LCD sebagai penampil nilai temperatur plant yang terukur, sensor temperatur LM35, serta komunikasi serial RS232. Diagram blok dari sistem kontrol temperatur secara keseluruhan terlihat pada gambar 3.
Gambar 3. Diagram blok sistem kontrol temperatur R3
4
12K VCC
LM35 3 2 1
VCC
R2
2
3K Input1
3
A
1
U4A TL084ACN RA1
11
Kontroler PID merupakan penggabungan antara kontroler proporsionl, integral, dan derivatif. Kontroler proporsional bekerja dengan menguatkan error yang terjadi. Kontroler ini mempercepat proses, meningkatkan overshoot, tidak menghilangkan offset dan tidak merubah orde sistem. Kontroler proporsional-integral merupakan kontroler dimana errornya dikuatkan kemudian dijumlahkan dengan hasil integral dari error yang sudah terjadi. Kontroler ini mempercepat proses dan menghilangkan offset tetapi meningkatkan orde sistem sehingga akan menimbulkan osilasi. Kontroler proporsionalderivative bekerja dengan cara menguatkan error dan menjumlahkan dengan hasil diferensial dari error tersebut. Kontroler jenis ini akan meredam osilasi dan mengurangi overshoot tetapi tidak menghilangkan offset. Kontroler proporsional-integral-derivatif merupakan kontroler dimana errornya dikuatkan ditambah dengan hasil integral dari error yang terjadi lalu ditambah dengan hasil diferensial dari error yang terjadi. Persamaan umum dalam kontroler PID terlihat pada persamaan 12). t de ( t ) (1) u ( t ) = K p e ( t ) + K i ∫ e ( t ) dt + K d dt 0 Kontroler PID merupakan kontroler konvensional yang paling baik karena kontroler ini mrupakan gabungan dari kontroler proporsional, integral, dan derivative. Kontroler ini akan menghasilkan temperatur tanpa overshoot dan tanpa offset.
-VCC
Gambar 4 rangkaian Penguat sensor temperatur(3),(4) Dalam sistem pengontrol temperatur yang dibuat, digunakan sensor temperatur dengan tipe LM35. Sensor tipe ini dapat merepresentasikan temperatur kedalam tegangan listrik dengan hubungan 10 mV untuk setiap derajat celcius serta memiliki ketelitian sampai 0.5oC 5). Sebagai contoh temperatur 30oC akan direpresentasikan oleh LM35 menjadi tegangan 300 mV. Sinyal dari LM35 kemudian dikuatkan lima kali terlebih dulu sebelum masuk ke mikrokontroler PIC18F4520. Proses konversi ADC dilakukan dengan menggunakan ADC internal yang terdapat dalam PIC18F4520 yang memiliki resolusi 10 bit. Konversi ADC berfungsi untuk mengubah besaran analog dari resistor variabel (pada saat setting awal parameter kontroler) dan sensor temperatur. Mikrokontroler akan mengolah data temperatur dan parameter kontrol untuk kemudian disalurkan ke DAC untuk menyalakan pemanas dan pendingin. Pada penelitian ini DAC direpresentasikan dengan menggunakan PWM (pulse width modulator) yang berasal dari PWM internal dengan resolusi 10 bit. Persentase daya yang keluar dari PWM ini sebanding dengan besarnya duty cycle yang digunakan. Sinyal yang dihasilkan oleh modul PWM tidak dapat langsung diumpankan ke aktuator lampu dan kipas karena mikrokontroler memiliki keterbatasan dalam menyuplai arus listrik. Oleh
karena itu diperlukan rangkaian driver untuk menyuplai daya yang cukup ke aktuator. Pada aplikasi ini digunakan IC driver L298 sebagai penguat daya. U10 RC1 5 RC2 7 10 12
IN1 IN2 IN3 IN4
RC5 6 11 8
VSS VS
EN A EN B
OUT1 OUT2 OUT3 OUT4
GND
ISEN A ISEN B
VCC 9 4
+15
2 OUT1 3 OUT2 13 14
C20 Pemanas (Lampu)
100nF
1 2 Pendingin (Kipas)
1 15
1 2
L298N
Gambar 5. rangkaian driver PWM Peraga LCD yang digunakan adalah tipe matriks yang dapat menampilkan 16 karakter sebanyak dua baris. Peraga ini merupakan media untuk menampilkan status maupun parameterparameter proses. Dalam berkomunikasi dengan peraga LCD, mikrokontroler terhubung melalui jalur data yang lebarnya 8 bit serta tiga buah pin untuk kontrol. Untuk jalur data menggunakan seluruh pin pada port D mikrokontroler, sedangkan untuk untuk jalur kontrol menggunakan port E.
3
VCC
R27
Q2 BC307
2 1
47K
RE0 RE1 RE2 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7
RP2 10K 3
+0 +5 Cn Rs Rw E D0 D1 D2 D3 D4 D5 D6 D7 15 16
1
2
VCC
A K
IV.
Implementasi Perangkat Lunak Digital PID Controller
Perangkat lunak yang diaplikasikan dalam mikrokontroler PIC18F4520 diawali dengan inisialisasi. Inisialisasi berfungsi untuk menentukan konfigurasi awal mikrokontroler meliputi fungsi port (sebagai input atau sebagai output), komunikasi serial, ADC, LCD, PWM, serta penginisialisasian interupsi eksternal dan timer. Tahap selanjutnya program membaca parameter-parameter yang dibutuhkan (SP, KP, KI, KD). Pembacaan ini memanfaatkan resistor variable yang difungsikan sebagai pembagi tegangan. Data tegangan dari resistor variable kemudian dikonversikan ke bentuk digital oleh ADC internal. Setiap terjadi interupsi eksternal yang berasal dari penekanan tombol, hasil pembacaan ADC disimpan di memori dalam mikrokontroler. Terdapat empat kali interupsi eksternal, pertama untuk menentukan SP, kedua untuk menentukan KP, ketiga untuk menentukan KI, dan keempat untuk menentukan KD. Keempat parameter tersebut akan tersimpan semuanya di mikrokontroler, interupsi yang kelima berfungsi untuk memerintahkan mikrokontroler mengeksekusi tahap selanjutnya. Setelah parameter-parameter disimpan, pogram masuk ke tahap implementasi algoritma kontroler PID. Nilai temperatur yang terukur akan dibandingkan dengan setting point untuk mendapatkan error kemudian masuk pada persamaan kontroler PID yang melibatkan KP, KI, dan KD. Hasil dari persamaan kontroler disebut sebagai sinyal kontrol. Sinyal kontrol ini kemudian akan memperbaharui duty cycle PWM. Tahap implementasi algoritma kontroler PID akan berlangsung terus menerus sampai sistem dimatikan.
LCD2X16
Gambar 6. Rangkaan aplikasi LCD Sistem komunikasi yang disertakan dalam sistem pengontrol temperatur ini adalah komunikasi serial melalui port COM pada komputer. Sistem antarmuka ini dipilih karena sudah lazim digunakan serta ketersediaan modul USART dalam PIC18F4520 yang memudahkan implementasinya.
Gambar 8. Diagram alir program utama kontroler PID pada mikrokontroler PIC 18F4520
Gambar 7. rangkaian aplikasi komunikasi serial.
V.
Data Pengamatan
Referensi
Dengan memasukan nilai Kp ,Ki, dan KD. diperoleh grafik respon temperatur dan error seperti terlihat pada gambar 9 dan gambar 10. Temperature Response
50
0
Temperature ( C)
55
45 40 35 30 25 0
50
100
150
200
250
300
Time (s)
Gambar 9. Respon temperatur dengan SP = 50.5, KP = 50, KI = 0.01, KD = 1 Error Vs Time 25
Error ( 0C)
20 15 10 5 0 0
50
100
150
200
250
300
-5
Tim e (s)
Gambar 10. respon error terhadap waktu Gambar 9 dan gambar 10 menunjukkan bahwa kontroler PID digital dapat mengontrol temperatur suatu plant menjadi stabil pada temperatur yang diinginkan (setting point) dengan error yang sangat kecil. Waktu yang diperlukan untuk mencapai setting point (rise time) sebesar 56 detik untuk SP 50.50C VI.
Kesimpulan
Kontroler PID bekerja berdasarkan error yang terjadi, error ini merupakan selisih antara temperatur pada Setting Point (SP) dengan temperatur plant sebenarnya. Penggunaan kontroler untuk mengontrol temperatur plant tidak mungkin menghasilkan kestabilan temperatur tanpa error sedikit pun (error = 0). Kontroler hanya mampu meminimalisasi error, mempercepat proses, dan meredam osilasi temperatur di sekitar Setting Point (SP).
[1] Suryadi, “Perancangan dan Implementasi Modul Kontrol Temperatur Berbasis Mikrokontroler PIC16F877”, Tugas Akhir, ITB, Bandung, 2005 [2] Ogata, K, “Modern Control Engineering”, Prentice-Hall, Inc, New Jersey, 1997 [3] Sutrisno, “Elektronika Jilid 2”, ITB, Bandung,1986 [4] Robert F. Coughlin, and Frederick F. Driscoll, ”Operational Amplifier & Linear Integration Circuits”, 5 ed, Prentice-Hall, Inc, New Jersey, 1999
LAMPIRAN D Paper Tugas Akhir