52
DAFTAR PUSTAKA
1.
Suryadi. 2005.
Perancangan dan Implementasi Modul Kontrol
Temperatur Berbasis Mikrokontroler PIC16F877
(Tugas Akhir)
.
Program
Studi Fisika FMIPA ITB.
2.
Ogata, Katsuhiko. 1985.
Teknik Kontrol Automatik (Sistem Pengaturan)
(Edisi Terjemahan)
.
Jakarta: Erlangga.
3.
Philips, Chares L., Harbor, Royce D. 1996.
Sistem Kontrol: Dasar-dasar
(Feedback control System)
(Edisi Terjemahan). Jakarta: PT Prenhallindo.
4.
Hakim, Ilham R. 2006.
Pengontrol PID
(slide kulliah Kontrol Otomatik,
TF3202). ITB
5.
Ogata, Katsuhiko. 1997.
Modern Control Engineering
, New Jersey:
Prentice Hall.
6.
Fraden, Jacob. 1996.
Handbook of Modern Sensor.
Baltimore: United
Book Press, Inc
7.
Y. A. Çengel and M. A. Boles.2002.
Thermodynamics An Engineering
Approach
, 4
thed. Boston: McGraw Hill.
8.
Coughlin, Robert F., Driscoll, Frederick F. 1993.
Operational Amplifier &
Leinear Integrated Circuits 5
th.
New Jersey: Pretince-Hall.
9.
Sutrisno. 1986.
Elektronika
Jilid 2.
Bandung: ITB
10.
Hartono, Jogianto. 2002.
Konsep Dasar Pemrograman Bahasa C
.
Yogyakarta: Andi Yogyakarta.
53
11.
Budioko, Totok. 2005.
Belajar dengan Mudah dan Cepat Pemrograman
Bahasa C dengan SDCC (Small Device C Compiler) Pada Mikrokontroler
AT89X0511/AT89C51/52.
Yogyakarta: Gava Media
12.
Houpis, Constantine H; Lamont, Gary B. 1992.
Digital Control System.
New York: McGraw-Hill.
13.
Hoffman, Joe D. 1993.
Numerical Methods for Engineers and Scientists
.
New York: McGraw-Hill.
14.
Ogata, Katsuhiko. 1995.
Discrete-Time Control System
. New Jersey:
Prentice Hall.
15.
Jaenudin. 2005.
Belajar Sendiri .net dengan Visual C#2005
. Yogyakarta:
Andi Yogyakarta.
16.
http://edboyden.org/constants.html
17.
http://www.sas.org/engineerByProperty.html
18.
http://www.sas.org/E-Bulletin/archive/reference/material/byMaterial.html
19.
http://www.microchip.com
20.
http://www.codeproject.com
21.
http://www.alldatasheet.com
22.
http://www.neurophys.wisc.edu/comp/docs/ascii.html
54
55
Lampiran 2 Foto Alat
56
57
58
Foto Plant Temperatur
59
Foto Konektor Aktoator
60
Lampiran 3 Makalah
Implementasi Modul Kontrol Temperatur
Menggunakan Kontroler PID Digital Berbasis Mikrokontroler
PIC18F4520
Suryadi, Asep Suhendi, Nur Asiah Aprianti dan Khairurrijal
*) Kelompok Keahlian Fisika Material ElektronikFakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung
Jl. Ganesa 10, Bandung 40132 *)
E-mail : [email protected]
Abstrak
Sistem kontrol temperatur telah dirancang dan diimplementasikan menggunakan kontroler PID digital berbasis mikrokontroler PIC18F4520. Sistem ini memanfaatkan karakteristik dari mikrokontroler PIC18F4520 yang memiliki ADC internal dengan resolusi 10 bit, 2 buah penghasil PWM, dan 32 Kb flash memory yang memungkinkan untuk diisi program kontroler PID secara digital. Kestabilan suhu pada setting point 600C dicapai pada KP sebesar 500, KI sebesar 0,1, dan KD sebesar 10 dengan error sebesar 0,37%.
Kata kunci : Kontroler, digital, PID
I. Pendahuluan
Kontroler PID merupakan penggabungan dari kontroler poporsional, integral dan derivatif. Kontrol automatik seperti kontrol temperatur diperlukan di industri farmasi atau minuman seperti pada proses sterilisasi alat atau bahan.
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 pengolah data.
Gambar 1 Board Kontroler PID
II. Teori Dasar Sistem Kontrol
Sebuah pengontrol otomatik bekerja dengan membandingkan keluaran
61
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.
e(t) Kontroler + _ Plant r(t) e(t) Kontroler + _ Plant r(t)
Gambar 2 Diagram blok sistem kontrol lingkar tertutup
Kontroler PID merupakan penggabungan antara kontroler proporsionl,
integral, dan derivatif. Kontroler
proporsional (P) merupakan kontroler dengan menggunakan penguatan murni KP3) 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 proporsional-derivative 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).
( )
( )
( )
( )
0 t p i d de t u t K e t K e t dt K dt = +∫
+ (1)Kontroler ini akan menghasilkan temperatur tanpa overshoot dan tanpa offset.
III. Perangkat Keras Kontroler PID Digital
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. R2 3K VCC 2 3 1 A 4 11 U4A TL084ACN -VCC R3 12K RA1 Input1 1 2 3 LM35 VCC
Gambar 3 rangkaian Penguat sensor temperatur(3),(4)
Dalam sistem pengontrol temperatur yang dibuat, digunakan sensor temperatur dengan tipe LM35. Sensor tipe ini dapat merepresentasikan temperatur ke dalam tegangan listrik dengan hubungan 10mV/0C4). Sebagai contoh temperatur 30oC akan direpresentasikan oleh LM35 menjadi tegangan 300 mV. Sinyal dari LM35 kemudian dikuatkan lima kali terlebih dulu (Gambar 3) 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
62
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 (Gambar 4).
EN A 6 EN B 11 IN1 5 IN2 7 IN3 10 IN4 12 OUT1 2 OUT2 3 OUT3 13 OUT4 14 ISEN A 1 ISEN B 15 VS 4 VSS 9 GND 8 U10 L298N RC1 RC2 OUT1 OUT2 C20 100nF +15 RC5 VCC 1 2 Pemanas (Lampu) 1 2 Pendingin (Kipas)
Gambar 4. 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 parameter-parameter 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 seperti ditunjukkan pada Gambar 5. +0 +5 Cn Rs Rw E D0 D1 D2 D3 D4 D5 D6 D7 15 16 A K LCD2X16 2 1 3 RP2 10K RE 0 RE 1 RE 2 RD 0 RD 1 RD 2 RD 3 RD 4 RD 5 RD 6 RD 7 VCC 1 2 3 Q2 BC307 R27 47K VCC
Gambar 5. 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 6).
Gambar 6. rangkaian aplikasi komunikasi serial.
IV. Implementasi Perangkat
Lunak Kontroler PID Digital
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 setiap 0,1 detik sekali. 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
63
persamaan kontroler disebut sebagai sinyal kontrol. Sinyal kontrol ini kemudian akan
memperbaharui duty cycle PWM. Nilai
temperatur yang terukur ditampilkan melalui LCD setiap 0,1 detik sekali. Nilai temperatur ini juga dikirimkan ke PC melalui komunikasi serial RS232 setiap 1 detik sekali. Tahap implementasi algoritma kontroler PID akan berlangsung terus menerus sampai sistem dimatikan.
Inisialisasi Baca Parameter SP, KP, KI, KD PID Kontroler Update PWM Program Utama START dt =0,1 detik? ya tidak Baca Temperatur Plant Hitung Error Temperatur Kirim Data Temperatur Ke LCD t = 1 detik? Kirim Data Temperatur ke PC Ya Tidak Ya
Gambar 7. Diagram alir program utama kontroler PID pada mikrokontroler PIC
64
V. Pengujian Sistem Kontrol
Dengan memasukan nilai Kp ,Ki, dan KD. diperoleh grafik respon temperatur dan error seperti terlihat pada gambar 9 dan gambar 10. Temperature Response 0 10 20 30 40 50 60 70 0 100 200 300 400 500 Time (s) T e m p er at u re ( 0 C ) T (t) SPGambar 9. Respon temperatur dengan SP = 60, KP = 500, KI = 0.1, KD = 10
Temperature Error Response
-5 0 5 10 15 20 25 30 35 0 100 200 300 400 500 Time (s) T e m p er atu re E rr o r (0C )
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 102 detik untuk SP 600C
VI. Kesimpulan
Telah dirancang dan diimplementasikan sistem kontrol temperatur menggunakan kontroler PID digital berbasis mikrokontroler PIC18F4520. Sistem ini memanfaatkan karakteristik dari mikrokontroler PIC18F4520 yang memiliki ADC internal dengan resolusi 10 bit, 2 buah penghasil PWM, dan 32 Kb flash memory yang memungkinkan untuk diisi program kontroler PID secara digital.
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). Kestabilan suhu pada 600C dicapai pada KP = 500, KI =0.1, dan KD = 10 dengan error sebesar 0,37%.
Referensi
[1] Suryadi, Perancangan dan
Implementasi Modul Kontrol Temperatur Berbasis Mikrokontroler
PIC16F877, Tugas Akhir, ITB,
Bandung, 2005.
[2] Ogata, Katsuhiko., Teknik Kontrol Automatik (Sistem Pengaturan) (Edisi Terjemahan). Erlangga, Jakarta, 1985 [3] Philips, Chares L. and Harbor, Royce
D., Sistem Kontrol: Dasar-dasar
(Feedback control System), Edisi
Terjemahan, PT Prenhallindo, Jakarta, 1996.
[4] Fraden
,
Jacob.
Handbook of Modern Sensor, United Book Press, Inc., Baltimore, 1996.65
Lampiran 4 Daftar Publikasi
1.
Suryadi, Heri Permadi, Nur Asiah Aprianti, Suryadi
*), dan Khairurrijal
#).
”
PIC Microtrainer
untuk Pemrograman Dasar Mikrokontroler Keluarga
PIC”.
Prosiding Seminar Instrumentasi Berbasis Fisika
(Bandung, 31
Agustus 2006), pp. 201-205.
2.
Heri Permadi, Nur Asiah Aprianti, Suryadi, Suryadi
#), dan Khairurrijal
#).
”Pemrogaman Lanjut Menggunakan
PIC Microtrainer
”.
Prosiding Seminar
Instrumentasi Berbasis Fisika
(Bandung, 31 Agustus 2006), pp. 210-215.
3.
Nur Asiah Aprianti, Heri Permadi, Suryadi, Suryadi
#), dan Khairurrijal
#).
”Simulasi Program Aplikasi Modul
A/D Converter
PIC16F877 dengan
menggunakan
PIC Microtrainer
”.
Prosiding Seminar Instrumentasi
Berbasis Fisika
(Bandung, 31 Agustus 2006), pp. 132-136.
4.
Yanuar Syapaat, Suryadi,
Heri
Permadi, Gun Gun Gumilar, dan
Khairurrijal. ”Aplikasi Mikrokontroler MCS-51 dalam Percobaan Bandul
untuk Penentuan Nilai Gravitasi Bumi”.
Seminar Nasional Teknologi dan
Rekayasa Industri (SNTRI07).
Applied Tech 07. Vol. 1. (Serpong, April
2007)
5.
Suryadi, Suryadi
*), dan Khairurrijal
#). “IMPLEMENTASI MODUL
KONTROL TEMPERATUR MENGGUNAKAN
DIGITAL PI
CONTROLLER
”.
Seminar Nasional Teknologi dan Rekayasa Industri
(SNTRI07).
Applied Tech 07. Vol. 1. (Serpong, April 2007)
6.
Suryadi, Asep Suhendi, Nur Asiah Aprianti dan Khairurrijal. “Pengontrolan
Temperatur menggunakan Kontroler PID Digital Berbasis Mikrokontroler
PIC18F4520”.
Seminar Asosiasi Akademisi Perguruan Tinggi Seluruh
Indonesia (ASASI)
(Ciawi, Bogor, 9-11 Agustus 2007).
7.
Nur Asiah Aprianti, Suryadi, and Khairurrijal. “Analysis of Laboratory
Scale Temperature Control
System using MatLab”. International
Conference on Instrumentation, Communication, and Information
Technology (ICICI) 2007 (Bandung, August 8-9, 2007).
66
LAMPIRAN
5
67
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 AlamInstitut 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.
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
*) Sekarang bekerja di Pusat Penelitian Fisika LIPI, Kompleks Puspitek Serpong, Tangerang 15314, Indonesia
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 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, 7-segmen, 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.
68
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 von-Neumann. 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
69
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.
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. Aplikasi Tampilan Deret LED Dalam PIC Microtrainer, rangkaian perangkat keras untuk aplikasi dengan modul LED ditunjukkan oleh Gambar 2.
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 padam dapat terlihat oleh mata. Diagram alir untuk menampilkan data dengan menyalakan LED diberikan dalam Gambar 3.
70
Inisialisasi PORT D PortD sebagai Output
Delay Matikan LED di PORTD
(PORTD = H’00’)
Nyalakan LED di PORTD (PORTD = H’0FF’)
Delay MULAI
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.
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.
Gambar 4. Perangkat keras aplikasi 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 kode-kode biner yang kemudian dihubungkan secara paralel ke empat buah 7-segmen. Untuk memilih 7-segmen yang akan diaktifkan digunakan bagian MSB pada
71
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 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).
W OR B’11110000' PORTD = W Clear PORTD,6 Masukkan angka 2 ke register W W = 02 Delay A B Inisialisasi PORTD
PORTD sebagai output
W OR B’11110000' PORTD = W Clear PORTD,5 Masukkan angka 1 ke register W W = 01 Delay A D MULAI W OR B’11110000' PORTD = W Clear PORTD,6 Masukkan angka 3 ke register W W = 03 Delay C B W OR B’11110000' PORTD = W Clear PORTD,7 Masukkan angka 4 ke register W W = 04 Delay D C
Gambar 5. Diagram alir tampilan 7-segmen
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-OR-kan dengan B’11110000’ hal ini dimaksuddi-OR-kan 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 dimaksuddi-OR-kan agar seluruh 7-segmen 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.
72
[2] Elkahfi PIC Microtrainer Manual Book. Bandung: Program Studi Fisika, FMIPA, ITB.
[3] http://pdf1.alldatasheet.com/datasheet-pdf/view/75016/MICROCHIP/PIC16F877. html
73
Pemrogaman Lanjut Menggunakan
PIC Microtrainer
Heri Permadi, Nur Asiah Aprianti, Suryadi, Suryadi
#), dan Khairurrijal
#) Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Teknologi BandungJl. 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.
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, 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.
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.
74
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.
Gambar 2: Rangkaian aplikasi tampilan peraga LCD.
Salah satu contoh tampilan dari aplikasi peraga LCD diperlihatkan pada Gambar 3.
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.
Inisialisasi PORTD&PORTE sebagai output, Inisialisasi LCD Masukkan 00h Set_DDRAM Masukkan 00h DISP_MSG Program Utama: Mulai stop
75
Rutin Set_DDRAM:
LCD_cmd Mulai
ret
Clear-kan pin R/W & RS pada LCD LCD_pulse Mulai ret Rutin LCD_cmd: Masukkan 00h ke INDEX (21h) Rutin DISP_MSG: MSG1 Pindahkan MSG1 ke lcd_tmp(22h) sublw '#' Cek STATUS,Z = 0 No Yes A Pindahkan lcd_tmp(22h) ke W LCD_Data
Pindahkan isi INDEX (21h) ke W Addlw 01h Mulai B B A MSG_END Rutin MSG1: Addwf PCL,F
Return with literal Retlw ‘ASCII code’
Mulai retlw ‘#’ MSG1_END Rutin LCD_Data: Clear-kan pin R/W pada LCD Set pin RS pada LCD LCD_pulse Mulai ret Rutin LCD_pulse:
Set pin En pada LCD
Clear-kan pin En pada LCD delay delay Mulai 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.
76
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 modul aplikasi ADC dengan masukan analog dari potensiometer pada pin RA0/AN0.
Gambar 5: Rangkaian aplikasi komunikasi serial PIC 16F877 dengan komputer melalui RS232.
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
77
serial pada mikrokontroler dirancang untuk menerima data dari luar (dari komputer) untuk kemudian mengirimkannya kembali ke komputer dengan nilai/karakter yang sama.
Inisialisasi PORTA sebagai input Inisialisasi PORTD sebagai output
Inisialisasi ADC wait_acq_t Program Utama: Mulai1 Mulai konversi banksel ADCON0 bsf ADCON0,GO ADCON0,G O = 0 no yes A A banksel ADRESH
Pindahkan isi ADRESH ke W banksel PORTD Pindahkan isi W Ke PORTD serial end Rutin wait_acq_t : banksel count (21h) ret Mulai Masukkan d’50’ ke W Pindahkan isi W ke alamat 21h decfsz 21h,f 21h = 0 Rutin serial: Mulai set_async
Pindahkan isi alamat 22h ke W
kirim
Kirimkan d’10’ ke W untuk karakter line feed
Kirimkan d’13’ ke W untuk karakter carriage return
Mulai1 Pindahkan isi W
78
Rutin serial:
Mulai
set_async
Pindahkan isi alamat 22h ke W
kirim
Kirimkan d’10’ ke W untuk karakter line feed
Kirimkan d’13’ ke W untuk karakter carriage return
Mulai1 Pindahkan isi W
ke alamat 22h
Rutin set async:
banksel TXSTA banksel SPBRG Masukan d’64’ ke SPBRG Masukan b’00100100’ ke TXSTA banksel RCSTA Masukan b’10010000’ ke RCSTA ret Mulai Rutin kirim: TXIF=1 yes no banksel TXREG Banksel PIR1 Movwf TXREG Movwf PORTD ret Mulai
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
79
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.
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.
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 7: Pemilihan icon dan nama koneksi pada
Hyperterminal.
80
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 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.
Gambar 11: Tampilan Hyperterminal setelah dilakukan komunikasi serial dengan masukan dari
modul ADC.
IV. KESIMPULAN
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.
81
[1] PIC16F8X Datasheet. Microchip Tech. Inc.
[2] Pratomo, Andi. Belajar Cepat dan Mudah Mikrokontroler PIC 16F84. Jakarta :
PT.ElexMediaKomputindoKelompokGra media
[3] User manual Elkahfi PIC Microtrainer. Oktober 2005.
82
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 TeknologiBandung
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
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 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.
83
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.
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 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.
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. 7, potensiometer (sebagai masukan analog) oleh no. 6 dan terminal (sebagai masukan analog) oleh no. 8
84
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
Port A = input Port D = output Setting modul ADC
Konversi ADC Baca port A, 0 Konversi selesai W = ADRESH Tampilkan di port D Tidak Ya Start End Port A = input Port D = outputPort A = input Port D = output Setting modul ADC Setting modul ADC
Konversi ADC Baca port A, 0 Baca port A, 0 Konversi selesai W = ADRESH W = ADRESH Tampilkan di port D Tampilkan di port D Tidak Ya Start Start End 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
3.2 ADC - 7 segmen Start Port A = input Port D = output
Setting modul ADC
Baca port A, 0 Tidak Konversi ADC Konversi selesai Terjemahkan nilai hasil konversi Tampilkan di Peraga 7 segmen Ya End Start Start Port A = input Port D = outputPort A = input Port D = output
Setting modul ADC Setting modul ADC
Baca port A, 0 Tidak Konversi ADC Konversi selesai Terjemahkan nilai hasil konversi Tampilkan di Peraga 7 segmen Ya Konversi ADC Konversi selesai Terjemahkan nilai hasil konversi Tampilkan di Peraga 7 segmen Ya Konversi ADC Konversi ADC Konversi selesai Konversi selesai Terjemahkan nilai hasil konversi Terjemahkan nilai hasil konversi Tampilkan di Peraga 7 segmenTampilkan di Peraga 7 segmen
Ya
End 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.
85
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 ground (0 Volt) sedangkan common katode dengan menghubungkan pada VCC (5 Volt).
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.
Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD Konversi ADC Baca port A, 0 Konversi selesai Terjemahkan nilai hasil konversi Tampilkan di Peraga LCD Tidak Ya Start End Port A = input Port D = output Port E = output Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD Setting modul ADC Setting peraga LCD Konversi ADC Konversi ADC Baca port A, 0 Baca port A, 0 Konversi selesai Konversi selesai Terjemahkan nilai hasil konversi Terjemahkan nilai hasil konversi Tampilkan di Peraga LCD Tampilkan di Peraga LCD Tidak Ya Start Start End End
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.
86
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 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-LCD-Serial dapat dilihat pada Gambar 8.
Port A = input Port D = output
Setting modul ADC
Konversi ADC Baca port A, 0 Konversi selesai Terjemahkan nilai hasil konversi Tidak Ya Setting mode Asinkron Kirim ke PC & tampilkan di 7 segmen Cek register PIR1,4 TXIF= 1 Ya Tidak Hasil konversi + d’48’ Start End Port A = input Port D = outputPort A = input Port D = output
Setting modul ADC Setting modul ADC
Konversi ADC Konversi ADC Baca port A, 0 Baca port A, 0 Konversi selesai Konversi selesai Terjemahkan nilai hasil konversi Terjemahkan nilai hasil konversi Tidak Ya Setting mode Asinkron Setting mode Asinkron Kirim ke PC & tampilkan di 7 segmenKirim ke PC & tampilkan di 7 segmen Cek register PIR1,4 Cek register PIR1,4 TXIF= 1 TXIF= 1 Ya Tidak Hasil konversi + d’48’ Hasil konversi + d’48’ Start Start End End
Gambar 7. Diagram alir ADC-7 segmen-serial
87
Konversi ADC Baca port A, 0 Konversi selesai Terjemahkan nilai hasil konversi Tidak Ya Setting mode Asinkron Kirim ke PC & tampilkan di LCD Cek register PIR1,4 TXIF= 1 Ya Tidak Setting DDRAM Hasil konversi + d’48’ Port A = input Port D = output Port E = outputSetting modul ADC Setting peraga LCD Start End Konversi ADC Konversi ADC Baca port A, 0 Baca port A, 0 Konversi selesai Konversi selesai Terjemahkan nilai hasil konversi Terjemahkan nilai hasil konversi Tidak Ya Setting mode Asinkron Setting mode Asinkron Kirim ke PC & tampilkan di LCDKirim ke PC & tampilkan di LCD Cek register PIR1,4 Cek register PIR1,4 TXIF= 1 TXIF= 1 Ya Tidak Setting DDRAM Hasil konversi + d’48’Setting DDRAM Hasil konversi + d’48’ Port A = input Port D = output Port E = output Port A = input Port D = output Port E = output
Setting modul ADC Setting peraga LCD Setting modul ADC Setting peraga LCD Start Start End 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/datasheet-pdf/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.
88
Mikrokontroler MCS-51 dalam Percobaan Bandul untuk
Penentuan Nilai Gravitasi Bumi
Yanuar Syapaat, Suryadi, Heri Permadi, Gun Gun Gumilar, dan
Khairurrijal*)
Program Studi Fisika, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Bandung
Jalan Ganesha 10, Bandung, Indonesia, 40132 *E-mail: [email protected]
Abstrak
Mikrokontroler dapat dianalogikan dengan komputer berukuran kecil atau biasa disebut minikomputer. Layaknya sebuah komputer yang memiliki posesor, memori, port input untuk mouse, port output untuk printer, layar dll. mikrokontroler juga mempunyai fitur yang sama tetapi berukuran sangat kecil bila dibandingkan komputer. Mikrokontroler AT89S52 merupakan salah satu jenis dari mikrokoktroler MCS-51 yang mempunyai 8 Kbyte sistem flash memori sehingga kemampuan baca tulis program bisa mencapai 1000 kali, 32 pin I/O dan dengan kelebihan lain, mikrokontroler ini dapat digunakan dalam berbagai fungsi. Dan pada percobaan kali ini, mikrokontroler ini digunakan untuk menghitung nilai gravitasi dari percobaan bandul. Sensor inframerah digunakan sebagai pendeteksi gerak bandul dan sinyal sensor tersebut dimasukan kedalam mikrokontrole. Sinyal yang masuk diidentifikasi sebagai interupsi pada mikrokontroler yang di program untuk mengenali bahwa waktu antara dua sinyal dari sensor sebagai perioda bandul. Perumusan matematis percobaan bandul menyatakan adanya hubungan antara besar perioda, panjang tali dan nilai gravitasi, oleh karena itu nilai gravitasi dapat dihitung kemudian. Pengolahan data mempergunakan ms excel yang mengolah data hasil akusisi dari hyperteminal. Percobaan ini diharapkan dapat menunjukkan bahwa pengamatan fenomena fisika bukanlah sesuatu hal yang sangat sulit. Oleh karena itu pembuatan alat-alat ini sangat cocok untuk lab fisika di sekolah-sekolah ataupun perguruan tinggi dan akan sangat membantu pembelajaran fisika.
Katakunci : Mikrokontroler, AT89S52, Program, bandul, Gravitasi
I. PENDAHULUAN
Sampai saat ini fisika masih dianggap suatu hal yang sulit baik secara teori maupun secara praktek, fisika dianggap sekumpulan rumus yang tidak dapat diaplikasikan dalam kehidupan sehari-hari, percobaan-percobaanya dianggap sesuatu hal yang sulit dilakukan dan dengan biaya yang mahal. fisika dengan peralatan yang kita dimiliki apa adanya, percobaan fisika dapat divariasikan agar terlihat lebih mudah. Contohnya pada penentuan nilai percepatan gravitasi bumi dengan percoban bandul. Osilasi bandul digantungkan pada ketinggian tertentu kemudian diamati periodanya. Dari osilasi kemudian didapatkan perioda, yang digunakan dalam perhitungan untuk mendapatkan nilai percepatan gravitasi bumi.
Dengan adanya mikrokontroler maka fenomena fisika dapat diotomatisasi termasuk percobaan penentuan nilai gravitasi bumi. Osilasi bandul di deteksi oleh sensor dan kemudian datanya dikirim ke mikrokontroler yang diprogram untuk menghitung periode dari osilasi bandul tersebut. Mikrokontroler yang dipergunakan merupakan keluarga MCS-51 yaitu mikrokontroler AT89S52 yang diproduksi oleh Atmel, mikrokontroler ini mempunyai beberapa kelebihan diantaranya harganya yang relatif murah.
89
II. TEORI PENENTUAN NILAI
GRAVITASI MENGGUNAKAN METODA PERCOBAN BANDUL
Dalam fisika (mekanika), besaran percepatan gravitasi g dapat ditentukan dengan berbagai metode, diantaranya osilasi bandul, pegas, dan osilasi zat cair dalam pipa. Pada bandul yang berosilasi, diperoleh periode osilasi T sebagai fungsi panjang tali l . Fungsi ini dapat dinyatakan dalam persamaan :1)
Pers.1.Perioda Bandul
Gbr.1. Ilustrasi Percobaan
Dari persamaan diatas apabila panjang tali, dan peridoe osilasi bandul diketahui maka dapat dihitung nilai percepatan gravitasi bumi sehingga persamaanya dapat diubah menjadi :
g = 4π2l/T2
Pers.2. Percepatan Gravitasi Bumi dimana :
g = percepatan gravitasi bumi (meter/detik2) l = panjang tali (meter)
T = peroioda osilasi bandul Π = konstanta 3,14
III. PEMROGRAMAN PADA
MIKROKONTROLER
Gbr.2.Perida Bandul
Perioda atau waktu getar (T) adalah selang waktu yang diperlukan untuk melakukan satu getaran lengkap(satuan detik)3), atau dengan kata lain waktu yang diperlukan oleh bandul (Gbr.2.) untuk menempuh perjalanan dari b ke c kemudian ke b lagi, atau dari b ke a kemudian ke b lagi. Pergerakan bandul ini dideteksi oleh sensor infrared-phodioda.
Gbr.3.Sensor Infrared-Photodioda
Transmitter memancarkan gelombang inframerah yang selalu diterima oleh receiver photodioda yang diletakkan di antara pergerakan bandul, tetapi apabila bandul melintas diantara sensor ini maka sinyal dari infrared terpotong sehingga menyebabkan perubahan kondisi pada photodioda. Perubahan inilah yang dideteksi oleh mikrokontroler.
Sensor ditempatkan di antar lintasan b, satu periode bandul berarti sensor menangkap sinyal pada titik b sebanyak dua kali, dan pada mikrokontroler di definisikan satu kali sensor menangkap sinyal sebagai satu interupt yang berarti dua kali intrupt adalah satu periode bandul tersebut.
Sehingga diagram alirnya dapat digambarkan sebagai berikut :