BERBASIS PID DIGITAL
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknilogi Universitas Sanata Dharma
Disusun oleh :
RICKY HENRY RAWUNG
NIM : 045114010
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
BASED ON DIGITAL PID
Presented as Partial Fulfillment of the Requirements
to Obtain the SARJANA TEKNIK Degree
in Electrical Engineering
By :
RICKY HENRY RAWUNG
Student Number : 045114010
ELECTRICAL ENGINEERING DEPARTEMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan
dalam daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 12 Juli 2008
Ricky Henry Rawung
dapat melanjutkan studi di tanah perantauan “ Kota Pelajar “ Yogyakarta. - Kedua kakak penulis, keluarganya dan ketiga keponakan, Liebert, Emelie,
Azel.
- Mereka yang mau berusaha.
Semua berawal dari
Kemauan
yang berubah menjadi
Kemampuan
dan menghasilkan
Kesempatan
Nama : Ricky Henry Rawung
Nomor Mahasiswa : 0451140 10
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PENGENDALI SUHU KOTAK OBAT BERBASIS PID DIGITAL
beserta perangkat yang diperlukan (bila ada). Dengan demilian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 12 juni 2008
Yang menyatakan
Ricky Henry Rawung
kepada seseorang, akan menimbulkan kekebalan spesifik secara aktif terhadap penyakit tertentu. Sebagai produk biologis, vaksin memiliki karakteristik tertentu dan memerlukan penanganan yang khusus sejak diproduksi di pabrik hingga dipakai di unit pelayanan. Suhu yang baik untuk semua jenis vaksin adalah + 2 ºC sampai dengan + 8 ºC[1].
Untuk mempertahankan suhu tempat penyimpanan vaksin pada suhu + 2 ºC sampai dengan + 8 ºC biasanya menggunakan kulkas atau es. Penggunaan es sebagai sumber dingin kurang efektif karena sifat es mudah mencair. Sehingga pada penelitian ini akan meneliti sumber pendingin alternatif yang lebih stabil dari es yaitu termoelektrik.
Komponen termoelektrik akan dikendalikan oleh mikrokontroler dengan penerapan metode kendali PID berdasar pada metode Ziegler-Nichols. Semakin rendah Suhu yang akan dicapai maka semakin lama waktu yang diperlukan, suhu terendah yang dapat dikendalikan adalah + 3 ºC.
Kata kunci : Kendali PID digital, suhu, vaksin, pendingin.
arise. Vaccine, as a biological product, has definite characteristics and needs special treatment starting from the manufacture production to the service unit's consumption. Thus, the temperature to maintain the vaccine condition is set + 2 to + 8 degree Celcius for best.
Furthermore, refrigerator or ice cube is used to maintain the temperature of vaccine storage at + 2 to + 8 degree Celcius. The use of ice cube as the source is in fact not effective since it can be diffused to liquid. Therefore, this research will investigate the alternative freezing source which is more stabile than ice cube, that is thermoelectric.
The components of thermoelectric will be controlled by microcontroller. Then, the application of PID controlling method is based on the Ziegler- Nichols method. The lower the temperature, the longer the time is needed to reach the target temperature. Moreover, the under control's lowest temperature is + 3 degree Celcius.
Key words: digital PID control, temperature, vaccine, refregent.
berharap agar karya tulis ini dapat berguna bagi perkembangan ilmu pengetahuan pada bidang kendali elektronika di Universitas Sanata Dharma pada khususnya dan di Indonesia pada umumnya.
Tugas akhir ini ditulis untuk memenuhi salah satu syarat dalam memperoleh gelar sarjana teknik pada program studi Teknik Elektro Universitas Sanata Dharma. Penulisan ini didasarkan pada hasil-hasil yang penulis peroleh pada saat perancangan alat, pembuatan alat, sampai pada hasil pengujian alat.
Penulis ingin mengucapkan terima kasih kepada beberapa pihak yang telah memberikan banyak bimbingan, bantuan, dan arahan sehingga tulisan ini dapat terselesaikan, diantaranya :
1. Tuhan Yang Maha Esa, untuk semua perlindungan dan hikmat pengetahuanNya.
2. Kedua Orang Tua Penulis, yang tak henti-hentinya memberi didikan tentang kehidupan yang tidak didapat di bangku kulia.
3. Kedua Dosen Pembimbing, Bapak Ir. Tjendro untuk Ide dan kepercayaannnya dan Ibu B. Wuri Harini, S.T, M.T yang tak bosan-bosan membimbing penulis hingga dapat berhasil, bahkan dalam mengikuti Lomba Cipta Elektroteknik Nasional 2008 yang di selenggarakan di Institut Teknologi Sepuluh November Surabaya dan meraih Juara I pada bidang Otomasi Industri.
4. Bapak dan Ibu dosen pengajar di Prodi Teknik Elektro Universitas Sanata Dharma untuk bimbingan dan pengajarannya selama penulis menuntut ilmu dan segenap Staf Sekretariat Jurusan Sains dan Teknologi yang membantu dalam bidang administrasi dan akademis. 5. Segenap SATPAM atas dukungannya pada keberhasilan tugas akhir
ini, dan juga para laboran yang senantiasa menyediakan alat-alat yang diperlukan untuk percobaan.
teman Ekonomi Manajemen 2004, semoga kompak selalu.
8. Semua pihak yang terlibat yang tidak dapat penulis sebutkan satu demi satu, terima kasih atas dukungannya
9. Chaterina Intan Mulyono, Untuk waktu, perhatian, pengertian, dan kesabaran. Makase nge.
Penulis menyadari bahwa tulisan ini masi banyak terdapat kekurangan. Sehingga keritik dan saran dari berbagai pihak penulis terima untuk perkembagan selanjutnya. Semoga tulisan ini dapat bermanfaat bagi pembaca.
Yogyakarta, 12 Juli 2008
Penulis
Halaman Pengesahan oleh Pembimbing iii
Halaman Pengesahan oleh Penguji iv
Halaman Pernyataan Keaslian Karya Tulis v
Halaman Persembahan dan Motto hidup vi
Halaman Pernyataan Persetujuan Publikasi Karya ilmiah vii
Intisari viii
Abstract ix
Kata Pengantar x
Daftar Isi xii
Dafrat Gambar xv
Daftar Tabel xviii
Bab I Pendahuluan 1
1.1 Latar Belakang Masalah 1
1.2 Rumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penulisan 2
1.5 Manfaat Penulisan 2
1.6 Metide Penelitian 3
Bab II Dasar Teori 4
2.1 Komponen Termoelektrik (Element Pendingin) 4
2.2 Mikrokontroler AVR AtMega8535 5
2.2.1 Port Input/Output 7
2.2.5 ADC (Analog to Digital Converter) 13
2.3 Kendali PID Digital 16
2.4 Tunning Kontroler dengan Metode Ziegler-Nichols 18
2.5 Penguat Non-Inverting 20
2.6 Rangkaian Penjumlah 21
2.7 Piranti Masukan dan Keluaran 21
2.7.1 Tombol Keypad Matriks 4x3 21
2.7.2 Modul LCD seri M1632 22
2.8 Sensor Suhu 24
2.9 Dioda Zener 25
2.10 Respon Transien – Orde Dua 25
Bab III Perancangan 28
3.1 Perancangan set-point 29
3.2 Perancangan LCD 31
3.3 Perancangan sensor 32
3.3.1 Perancangan Tegangan Referensi pada ADC 33
3.4 Perancangan PWM dan Pengkondisi Sinyal 35
3.4.1 Perancangan Penguat Non-Inverting 1.4x 36
3.5 Perancangan Antarmuka Sistem Mikrokontroler 37
3.6 Perhitungan Koefisien PID dan Algoritma pada Sistem Kendali 43
3.7 Perancangan Model Kotak Pendingin 45
4.2.1 Analisa Perangkat Keras 51
4.2.2 Analisa Perangkat Lunak 53
4.3 Data Percobaan 60
4.3.1 Set-Point = 8°C 61
4.3.2 Set-Point = 5°C 64
4.3.3 Set-Point = 2°C 69
4.3.4 Set-Point = 3°C 70
Bab V Kesimpulan dan Saran 75
A. Kesimpulan 75
B. Saran 75
Daftar Pustaka 76
Lampiran 77
Dimensi Tabung 77
Dimensi Kotak Pendingain 79
Gambar Rangkaian Lengkap 80
Kode Program 81
Data Sheet 95
Gambar 2.3 Komponen register MCUCR 9
Gambar 2.4 Komponen register MCUCSR 10
Gambar 2.5 Komponen register GICR 10
Gambar 2.6 Komponen register TCCRn 11
Gambar 2.7 Diagram pewaktuan Fast PWM 13
Gambar 2.8 Komponen register ADMUX 14
Gambar 2.9 Komponen register SFIOR 15
Gambar 2.10 Komponen register ADCSRA 15
Gambar 2.11 Blok diagram kendali digital 17
Gambar 2.12 Blok diagram kendali PID implementasi mixed 17
Gambar 2.13 Kurva respons tangga satuan yang memperlihatkan 25 %
lonjakan maksimum 19
Gambar 2.14 Respon tangga satuan sistem 19
Gambar 2.15 Kurva Respons berbentuk S. 20
Gambar 2.16 Rangkain penguat Non Inverting 21
Gambar 2.17 Rangkain penjumlah inverting 21
Gambar 2.18 Keyped Matriks 22
Gambar 2.19 Modul LCD 23
Gambar 2.20 Konfigurasi pin LM35 24
Gambar 2.21 LM 35 dengan Dumper R-C 24
Gambar 2.22 Karakteristik zener 25
Gambar 2.23 Kurva respon transien 27
Gambar 3.4 Diagram alir pengecekan set-poin 30
Gambar 3.5a Tampilan LCD saat set poin 31
Gambar 3.5b Tampilan LCD saat proses berjalan 31
Gambar 3.6 Rangkaian pembagi tegangan dengan dioda zener 35
Gambar 3.7 Penguat Non-Inverting 1.4x 36
Gambar 3.8 Rangkaian penjumlah dan pembalik OpAmp 37
Gambar 3.9 Rangkaian osilator kristal 38
Gambar 3.10 Rangkaian reset 39
Gambar 3.11 Rangkaian sistem kendali 39
Gambar 3.12 Diagram alir Program sistem kendali 40
Gambar 3.13 Diagram alir penentuan nilai masukan 41
Gambar 3.14 grafik data open loop (data awal) 43
Gambar 3.15 Diagram alir Kendali PID digital 45
Gambar 4.1 Model tabung pendingin 46
Gambar 4.2 Layout PCB sistem mikrokontroler 47
Gambar 4.3 PCB antarmuka 47
Gambar 4.4 Sumber tegangan 48
Gambar 4.5 Driver arus 49
Gambar 4.6 Tanggapan suhu sensor Lm35 52
Gambar 4.7 Grafik perbandingan data siang dan malam set-point 8ºC 63
Gambar 4.8 Grafik perbandingan data siang dan malam set-point 5ºC 68
Gambar 4.9 Grafik set-point 2ºC pertama 69
xviii
Tabel 2.2 Macam sumber Interupsi pada AVR ATMega8535 9
Tabel 2.3 Pengaturan kondisi terjadinya interupsi 9
Tabel 2.4 Konfigurasi Bit WGMn 11
Tabel 2.5 Penalaan paramater PID dengan metode kurva reaksi 20
Tabel 2.6 Perintah M1632 23
Tabel 3.1 Perbandingan perubahan suhu dengan tegangan 33
Tabel 4.1 Data pengukuran tegangan 51
Tabel 4.2 Perbandingan tanggapan suhu Lm35 dalam percobaan sensor 53
Tabel 4.3 Data pengukuran set-point 8ºC 61
Tabel 4.4 Perhitungan PID dan tanggapan PWM 65
Tabel 4.5 Nilai PID ketika nilai pengukuran kurang dari set-point 66
Tabel 4.6 Nilai PID ketika suhu telah stabil pada set-point 67
Tabel 4.7 Data pengukuran set-point 5ºC 67
Tabel 4.8 Data pengukuran set-point 3ºC 71
Tabel 4.9 Data Perbandingan Waktu Stabil 73
Tabel 4.10 Data perbandingan Mp pada set-point 8ºC, 5ºC, dan 3ºC setelah
Banyak orang belum mengetahui tentang penyimpanan obat dengan benar,
terutama terkait dengan suhu penyimpanan. Tabel 1.1 memperlihatkan standart
suhu penyimpanan obat yang terdiri dari beberapa kategori berdasarkan ikatan
farmasi Inggris, Eropa dan Amerika[1]. Dari tabel tersebut diketahui bahwa obat
juga memerlukan perlakuan yang khusus, sehingga dalam penyimpanannya harus
berada pada suhu tertentu. Biasanya untuk mendinginkan sesuatu orang cenderung
menggunakan es, padahal es mudah mencair sehingga suhu dapat berubah.
Penelitian ini akan meneliti pengendali suhu obat dengan sumber pendingin
selain es sehingga suhu dapat konstan. Objek penelitian dikhususkan pada satu
jenis produk kesehatan yaitu vaksin. Vaksin yang telah dibuka harus tersimpan
pada suhu dingin sekitar 2oC sampai 8oC.
Tabel1.1 Standart suhu penyimpanan obat
Keadaan Suhu
Dibawa titik beku -25°C to -10°C
Tempat pendingin 2°C - 8°C
Dingin 8°C - 15°C
Suhu normal Suhu standart pada daerah kerja.27°C
Didalam ruang terkontrol Pada umumnya 25°C
Hangat 30°C dan 40° C
Panas ≥ 40° C
1.2 Rumusan Masalah
Masalahnya adalah mendapatkan suhu dingin yang konstan dan tidak
tergantung dengan es.
1.3 Batasan Masalah
Pada penelitian ini akan menggunakan rangkaian elektronika sebagai sumber
suhu untuk menggantikan kebutuhan es sebagai pendingin.
Tingkat ketelitian suhu yang dapat diatur adalah 0.1° C. Sedangkan untuk
mengendalikan suhu digunakan rangkaian sistem mikrokontroler sebagai pusat
operasi.
Alat yang dihasilkan berupa model kotak pendingin dengan suhu dari model
pendingin dapat berkisar antara 1oC sampai 25oC. Beban yang diujikan dalam
percobaan ini adalah zat cair (air), karena model kotak obat dirancang untuk
penyimpanan vaksin.
Kendali suhu berdasar atas kendali PID digital dengan tunning PID
menggunakan tunning Z-N (Ziegler-Nichols), menggunakan konfigurasi MIX
PID.
1.4 Tujuan Penulisan
Untuk mengurangi ketergantungan penggunaan es pada pendingin karena es
mudah mencair.
Dengan penerapan kendali PID maka suhu yang dihasilkan akan sama dengan
suhu yang diinginkan.
1.5 Manfaat Penulisan
1. Karena suhu yang stabil maka akan memperpanjang umur vaksin.
2. Kendali PID dapat diaplikasikan pada sistem kendali yang lain seperti
kendali kecepatan motor dan kendali-kendali yang lain yang memerlukan
tingkat ketepatan yang tinggi.
3. Dengan berbasis digital maka akan mempersingkat rangkaian kendali,
karena untuk proses pengolahan datanya dapat berupa pengolahan data
digital.
1.6 Metodologi Penelitian
Penelitian ini akan terbagi dua yaitu perancangan perangkat keras dan
perancangan perangkat lunak. Dengan pembahasan mengacu pada blok diagram
kuman, atau racun kuman yang telah dilemahkan atau dimatikan yang berguna
untuk merangsang timbulnya kekebalan tubuh seseorang. Bila vaksin diberikan
kepada seseorang, akan menimbulkan kekebalan spesifik secara aktif terhadap
penyakit tertentu.
Sebagai produk biologis, vaksin memiliki karakteristik tertentu dan
memerlukan penanganan yang khusus sejak diproduksi di pabrik hingga dipakai
di unit pelayanan. Suhu yang baik untuk semua jenis vaksin adalah + 2 ºC s/d + 8
ºC.[2]
Sebagai dasar dari penetian ini, maka pada bab ini akan membahas :
1. Komponen termoelektrik.
2. Mikrokontroler.
3. Kendali Digital.
4. Tuning PID.
5. Penguat Non-inverting dengan OpAmp.
6. Piranti keluaran dan masukan.
7. Sensor suhu.
8. Dioda zener
2.1 Komponen Termoelektrik (Element Pendingin) [3].
Komponen ini berbentuk kotak yang terbuat dari keramik, berisi
semikonduktor sambungan PN yang dirangkaikan secara seri. Seperti pada
gambar 2.1
Fenomena termoelektrik merupakan sebuah fenomena perubahan sifat-sifat
termodinamika menjadi sifat-sifat elektrik dan sebaliknya. Dua buah batang dari
bahan logam yang berbeda disambungkan kedua ujungnya, sehingga membentuk
sebuah rangkaian tertutup. Ketika salah satu ujung dipanaskan, maka pada
rangkaian tertutup tersebut akan mengalir arus. Fenomena ini dinamakan efek
Seebeck, karena ditemukan Thomas Seebeck pada tahun 1821.
Gambar 2.1 Rangkaian sambungan PN pada termoelektrik
Begitu pula bila dilakukan hal yang sebaliknya yaitu pada rangkaian tertutup
dari dua batang logam berbeda bahan yang disambungkan tersebut dialirkan arus
listrik. Pada salah satu ujung sambungan akan menyerap kalor, sehingga menjadi
hangat dan pada ujung sambungan lainnya akan melepaskan kalor. Fenomena ini
ditemukan Jean Charles Athanase Peltier pada tahun 1834, kemudian dinamakan
efek PeltierI.
2.2 Mikrokontroler AVR ATMega8535[4]
Mikrokontroler adalah suatu komponen semikonduktor yang di dalamnya
sudah terdapat suatu sistem mikroprosesor seperti : ALU, ROM, RAM, dan Port
I/O. Avr ATMega8535 memiliki arsitektur RISC (Reduced Instruction Set
Computing) 8 bit. Semua instruksi dikemas dalam kode 16 bit dan sebagian besar
instruksi di eksekusi dalam satu siklus clock. Avr ATMega8535 memiliki 32
dengan susunan 32 register menempati alamat 0x0000 – 0x001F, kemudian
dilanjutkan dengan 64 I/O register hingga alamat 0x005F dan sisanya ditempati
SRAM sebesar 512 byte hingga alamat 0x025F. I/O register berisikan alamat –
alamat untuk pengaturan fungsi dan fitur dari ATMega8535. sedangkan pada 32
register serbaguna terdapat tiga pasang alamat berukuran 16 bit yang dinamakan
X (R26-R27), Y(R28-R29) dan Z (R30-R31), register ini biasanya digunakan
sebagai pointer (penunjuk) alamat.
Fitur yang tersedia pada mikrokontroler ini sebagai berukut:
- Saluran I/O (input/output)sebanyak 32 buah saluran, yaitu PortA, PortB,
PortC, PortD.
- ADC (Analog Digital Converter) 10 bit sebanyak delapan saluaran.
- Tiga buah Timer/Counter dengan kemampuan pembandingan
- Empat saluran PWM.
- CPU (Central Processing Unit) yang terdiri atas 32 buah register.
- SRAM sebesar 512 byte.
- Unit interupsi internal dan eksternal.
- EEPROM (Electrically Erasable Programmable Read Only Memory)
sebesar 512 byte yang dapat diprogram saat operasi, antarmuka
komparator analog.
- Port USART (Universal Syncronous and Asyncronous serial Receiver and
Transmiter) untuk komunikasi serial.
2.2.1 Port Input/Output
Port I/O pada mikrokontroler ATMega8535 dapat berfungsi sebagai masukan
dan keluaran. Untuk mengatur fungsi port I/O sebagai masukan atau keluaran
dilakukan pengaturan pada register DDRn (Data Direction Register), n
merupakan port yang dipilih misalnya : port A maka DDRA ,seperti pada tabel
2.1.
Tabel 2.1 konfigurasi pengaturan untuk Port I/O
DDR bit =1 DDR bit = 0
Port bit =1 Keluaran aktif tinggi Masukan aktif rendah Port bit =0 Keluaran aktif rendah Masukan aktif tinggi
Gambar 2.2 konfigurasi pin pada ATMega8535
2.2.2 Interupsi
Interupsi adalah kondisi yang membuat CPU berhenti dari rutinitas yang
sedang dikerjakan (program utama) untuk mengerjakan program lain (program
interupsi). Mikrokontroler ini memiliki 21 sumber interupsi yang ditunjukkan
Untuk inisialisasi awal interupsi, perlu dituliskan terlebih dahulu vektor
interupsi dari interupsi yang terdapat pada sistem. Vektor interupsi adalah nilai
yang disimpan ke program counter pada saat terjadi interupsi sehingga program
akan menuju ke alamat yang ditunjuk oleh program counter. Alamat dari tiap
interupsi dapat dilihat pada tabel 2.2. Masing-masing alamat vektor memiliki
alamat yang berdekatan, sehingga akan timbul masalah jika sebuah layanan
interupsi yang panjang. Untuk menghindari hal ini maka ketika suatu interupsi
aktif dan menunjuk pada vektor tertentu maka dari alamat vektor tersebut
digunakan perintah agar memanggil fungsi yang terletak pada alamat yang lain.
Setelah interupsi telah diinisialisasi, selanjutnya mengaktifkan bit I pada STATUS
register (SREG) yang berarti mengaktifkan Global Interupsi.
Mikrokontroler ini memiliki tiga buah interupsi eksternal (INT0, INT1, INT2).
Pengaturan keadaan untuk INT0 dan INT1 yang menyebabkan terjadinya interupsi
terdapat pada register MCUCR (MCU Control Register). Sedangkan untuk INT2
terdapat pada MCUCSR (MCU Control and Status Register).
Fungsi tiap bit register MCUCR terdapat pada gambar 2.3 yaitu, ISC01 dan
ISC00 merupakan bit untuk mengatur kondisi terjadi interupsi pada INT0,
sedangkan ISC10 dan ISC11 untuk mengatur interupsi INT1. Tabel 2.3
Tabel 2.2 Macam sumber Interupsi pada AVR ATMega8535
Gambar 2.3 Komponen register MCUCR
Gambar 2.4 memperlihatkan konfigurasi bit register MCUCSR, jika ISC2
berlogika 0, maka transisi dari 1 ke 0 (falling edge) pada INT2 menyebabkan
interupsi. Sebaliknya jika berlogika 1, maka transisi yang terjadi dari 0 ke 1
(rising edge).
Selanjutnya interupsi diaktifkan dengan memberi logika 1 pada register GICR
(Global Interrupt Control Register) untuk interupsi yang diinginkan, dengan
susunan register seperti pada gambar 2.5
Gambar 2.4 Komponen register MCUCSR
Gambar 2.5 Komponen register GICR
2.2.3 Timer/Counter
Mikrokontroler ini menyediakan fasilitas pewaktuan yang diberi nama
Timer/Counter sebanyak tiga buah, yaitu Timer/Counter 0 dan 2 yang terdiri dari
8 bit dan Timer/Counter 1 yang terdiri dari 16 bit.
Register yang digunakan oleh Timer/Counter adalah TCNTn sebagai register
penyimpan nilai dari Timer/Counter. Regiater OCRn (Output Compare Register)
merupakan register pembanding, jika nilai OCRn sama dengan TCNTn maka
terjadi Compare Match. Peristiwa ini dapat menyebabkan keluaran pulsa yang
berulang-ulang pada pin OCn (Output Compare). Pengaturan Timer/Counter 0,
(Timer/Counter Control Register). Konfigurasi dari register TCCRn dapat dilihat
pada gambar 2.6
Gambar 2.6 Komponen register TCCRn
FOCn (Force Output Compare) hanya aktif pada mode non-PWM, jika 1
maka akan memaksakan operasi compare match. FOCn tidak akan memicu
terjadinya interupsi atau menolkan timer pada mode CTC. WGMn(1:0)
(Waveform Generation Mode) berfungsi untuk mengendalikan kenaikan dari
pencacah pada register TCNTn, menentukan sumber dari nilai maksimal (top) dari
pencacah dan tipe timer yang akan digunakan. Konfigurasi dari bit WGMn(1:0)
dapat di lihat pada tabel 2.4
COMn (1:0) (Compare Match Output Mode) berfungsi mengendalikan pin
OCn. Jika kedua bit tersebut bernilai 0, maka OCn berfungsi sebagai pin biasa,
apabila salah satu bit bernilai 1, maka fungsi dari OCn bergantung pada
pengaturan bit WGMn.
Tabel 2.4 Konfigurasi Bit WGMn
Mode WGMn1 WGMn0 Mode operasi TOP OCRn TOV0 Flage set on
0 0 0 Normal 0xFF Immediate MAX
1 0 1 Phase Correct PWM 0xFF TOP BOTTOM
2 1 0 CTC OCR0 Immediate MAX
3 1 1 Fast PWM 0xFF TOP MAX
Pada mode CTC (WGMn1=1 WGMn0= 0) cacahan selalu meningkat, ketika
mencapai nilai maksimum akan kembali ke nol lagi. Dalam operasai normal flag
mencacah naik, maka dapat digunakan sebagai pewaktu presisi. Cara kerja dari
mode ini yaitu akan membandingkan antara OCRn sama dengan TCNTn, jika
sama maka pencacahan timer dimulai dari awal lagi, persamaan perhitungan
waktu tunda:
escaler Pr
f tunda _
waktu = OSC (2.1)
Keterangan : fOSC = Kristal yang digunakan (Hz).
Prescaler = pembagi waktu presisi (liat datasheet).
Nilai dari register TCNTn diisni dengan nilai waktu_tunda. Ketika
timer/counter diaktifkan TCNTn akan mencacah naik sebanyak waktu_tunda
untuk mencapai nilai maksimal (0xFF) sesuai dengan waktu tundaan yang
diinginkan.
2.2.4 PWM (Pulse Width Modulator)
Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur, karena
lebar pulsa yang dihasilkan dapat diubah-ubah maka dapat difungsikan sebagai
DAC (Digital Analog Conversion) dengan cara melewatkan keluaran tersebut
pada sebuah rangkaian Shift and Hold. Fasilitas Timer/Counter dapat digunakan
sebagai penghasil pulsa PWM.
Pengaturan Timer/Counter 8 bit sebagai penghasil pulsa PWM dengan mode
Fast PWM dengan mengubah bit WGMn (1:0) pada mode 3. Diagram pewaktuan
dari mode ini dapat dilihat pada gambar 2.7. Mode ini mengacu pada satu
kemiringan yang terjadi pada pewaktuan, pencacah akan mencacah dari nilai nol
Gambar 2.7 Diagram pewaktuan Fast PWM
Pada mode Non-Inverting keluaran pembanding Pin OCn akan menjadi 0 jika
nilai TCNTn sama dengan OCRn dan pin OCn akan menjadi 1 lagi setelah
register TCNTn terjadi overflow.
Flag timer/counter overflow (TOVn) akan aktif saat cacahan mencapai nilai
maksimal, jika interupsi overflow diaktifkan, maka rutin penanganan interupsi
dapat digunakan untuk mengubah nilai pembanding.
Keluaran frekuensi PWM pada mode Fast PWM dihitung menggunakan
persamaan :
256 N f fOCnPCPWM clk_I/O
⋅
= ; N = Faktor prescale (1, 8, 64, 256, or 1024) (2.2)
2.2.5 ADC (Analog to Digital Converter)
Pada mikrokontroler ini telah disediakan ADC internal dengan fitur :
1. Resolusi 10-bit.
2. 0.5 LSB Integral Tidak Linier.
3. Ketepatan mutlak ±2 LSB.
5. Delapan kanal masukan.
6. Selang tegangan masukan dari 0 sampai VCC.
7. Memiliki tegangan refrensi internal sebesar 2.56V.
8. Dapat bekerja secara free running atau saat diperlukan saja.
9. Mulai mengkonversi dengan trigger otomatis pada sumber interupsi.
10.Interupsi dapat dibangkitkan ketika konfersi selesai.
Proses inisialisasi ADC meliputi proses penentuan clock ADC, pemilihan
saluran tegangan referensi, format keluaran data dan mode pembacaan. Register
yang menangani ADC internal ini adalah register ADMUX (ADC Multiplexer
Selection Register) berfungsi menentukan tegangan referensi ADC, format data
keluaran, dan pemilihan jalur masukan, komponen register ini dapat dilihat pada
gambar 2.8. Register SFIOR (Special Function IO Register) berfungsi untuk
mengatur sumber picu konversi ADC, komponen register ini dapat dilihat pada
gambar 2.9. Register ADCSRA (ADC Control and Status Register A) berfungsi
melakukan manajemen sinyal control dan status dari ADC, komponen bit terdapat
pada gambar 2.10.
Gambar 2.8 Komponen register ADMUX
REFS(1:0) (Reference Selection Bits) digunakan sebagai pemilih sumber
tegangan refrensi dari ADC, ADLAR (ADC Left Adjust Result) digunakan untuk
menentukan konfigurasi isi dari register ADCH dan ADCL sebagai tempat
ADTS(2:0) (ADC Auto Trigger Source) untuk menentukan mode dari ADC
yang digunakan. ADEN (ADC Enable) berfungsi untuk mengaktifkan ADC jika
bernilai satu. ADSC (ADC Start Conversion) akan bernilai nol jika selesai
mengkonversi dan diberinilai satu jika ingin memuli konversi. ADATE (ADC
Auto Trigger Enable), berhubungan dengan bit (ADTS) pada register SFIOR. Jika
bernilai satu menyebabkan trigger otomatis akan aktif. ADIF (ADC Interrupt
Flag) bit ini akan aktif, jika konversi telah selesai dan dapat memicu interupsi,
selama fasilitas interupsi diaktifkan.
Pemilihan konfigurasi ADLR :
Gambar 2.9 Komponen register SFIOR
Gambar 2.10 Komponen register ADCSRA
Jika ADIE (ADC Interrupt Enable) bernilai 1 dan bit I pada SREG 1 dan
ADPS(2:0) (ADC Prescaler Select Bits) mendefinisikan faktor pembagi dari
sumber clock ADC.
Resolusi untuk 10-bit ADC dapat di hitung dengan persamaan :
n 2 Vref )
V ( solusi
Re = ; n = resolusi ADC (2.3)
2.3. Kendali PID Digital [5]
Kontroler adalah komponen yang berfungsi mengurangi sinyal kesalahan.
Tipe kontroler yang paling popular adalah kontroler PID. Elemen-elemen
kontroler P, I dan D masing-masing secara keseluruhan bertujuan untuk
mempercepat reaksi sebuah system, menghilangkan offset dan menghasilkan
perubahan awal yang besar.
Fungsi utama dari kontroler digital sama dengan kontroler analog. Perbedaan
yang utama yaitu kontroler digital tidak dapat menerima sinyal analog. Dengan
keterbatasan tersebut maka kontroler digital memerlukan pengubah sinyal analog
ke digital (ADC) untuk mengubah sinyal analog menjadi digital dalam bentuk
bilangan biner dan sebaliknya (DAC) untuk mengubah data digital menjadi sinyal
analog. Gambar 2.11 memperlihatkan blok diagram sebuah kendali digital.
Pada kendali PID digital, untuk memproses algoritma PID dengan cara yang
efisien maka proses dari integral dan diferensial diubah kedalam bentuk aljabar
yang ringkas [6]. Bentuk aljabar yang digunakan adalah perkalian, pembagian,
Gambar 2.11 Blok diagram kendali digital
Gambar 2.12 Blok diagram kendali PID implementasi mixed
Algoritma kendali PID analog :
Transfer function dari sistem berdasarkan Gambar 2.12 :
⎟⎟
diubah ke dalam domain waktu :
⎟⎟
Kontroler digital bukan menggunakan sistem kontinu melainkan sistem
diskrit. Pada kontroler digital ukuran error hanya terukur setiap waktu interval
pada pengambilan sample. Setiap perubahan yang diperoleh akan langsung
Karena data E(n+1) adalah data yang berikutnya belum tersedia, maka
perhitungan data yang akan datang digunakan data yang saat ini E(n). jika n
adalah t untuk setiap sample waktu maka persamaan diskrit dapat ditulis :
untuk menyederhanakan nilai sikma :
n
2.4. Tuning Kontroler dengan Metode Ziegler-Nichols[7]
Aspek yang sangant penting dalam merancang kontroler PID adalah
penentuan parameter kontroler supaya sistem close loop memenuhi kriteria
performasni yang diinginkan.
Ziegler-Nichols pertama kali memperkenalkan metodenya pada tahun 1942.
Metode ini memiliki dua cara, metode osilasi dan kurva reaksi. Kedua metode
ditujukan untuk menghasilkan respon sistem dengan lonjakan maksimum sebesar
Metode Kurva Reaksi
Metode ini didasarkan terhadap reaksi sistem untaian terbuka. Plant sebagai
untaian terbuka dikenai sinyal fungsi tangga satuan (gambar 2.14). Kalau plant
minimal tidak mengandung unsur integrator ataupun pole-pole kompleks, reaksi
sistem akan berbentuk S. Gambar 2.15 menunjukkan kurva berbentuk S tersebut.
Gambar 2.13 Kurva respons tangga satuan yang memperlihatkan 25 % lonjakan maksimum
Kelemahan metode ini terletak pada ketidakmampuannya untuk plant
integrator maupun plant yang memiliki pole kompleks. Kurva berbentuk-s
mempunyai dua konstanta, waktu mati (dead time) L dan waktu tunda T. Dari
gambar 2.15 terlihat bahwa kurva reaksi berubah naik, setelah selang waktu L.
Gambar 2.14 Respon tangga satuan sistem
Sedangkan waktu tunda menggambarkan perubahan kurva setelah mencapai
66% dari keadaan mantapnya. Pada kurva dibuat suatu garis yang bersinggungan
garis maksimum. Perpotongan garis singgung dengan sumbu absis merupakan
ukuran waktu mati, dan perpotongan dengan garis maksimum merupakan waktu
tunda yang diukur dari titik waktu L.
Gambar 2.15 Kurva Respons berbentuk S.
Penalaan parameter PID didasarkan perolehan kedua konstanta itu. Zeigler
dan Nichols melakukan eksperimen dan menyarankan parameter penyetelan nilai
Kp, Ti, dan Td dengan didasarkan pada kedua parameter tersebut. Tabel 4.1
merupakan rumusan penalaan parameter PID berdasarkan cara kurva reaksi.
Tabel 2.5
Penalaan paramater PID dengan metode kurva reaksi
Tipe Kontroler Kp Ti Td
P T/L ~ 0
PI 0,9 T/L L/0.3 0
PID 1,2 T/L 2L 0,5L
2.5.Penguat Non-Inverting [8]
Penguat non inverting berupa rangkain OpAmp dengan gambar skematik pada
Gambar 2.16 Rangkain penguat non inverting
dengan persamaan penguatan (Av) sebagai berikut :
Ri
2.6. Rangkaian Penjumlah [8]
Berupa rangkaian OpAmp penjumlah inverting, dengan gambar skematik pada
gambar 2.17
Vo
Gambar 2.17 Rangkain penjumlah inverting
Dengan persamaan keluaran sebagai berikut :
Vn
2.7 Piranti Masukan dan Keluaran
2.7.1 Tombol Keypad Matriks 4x3[9]
Keypad matrik berupa rangkaian tombol-tombol yang tersusun secara matriks.
Tombol-tombol disini berfungsi sebagai saklar. Untuk keypad matriks 4x3,
memiliki delapan pin masukan dan keluaran, empat pin mewakili banyak baris
Untuk membedakan 12 variasi keadaan maka empat pin baris atau empat pin
kolom berfungsi sebagai masukan dan empat pin yang lain sebagai keluaran pada
suatu sistem.
Gambar 2.18 Keyped Matriks
Variasi keadaan diperoleh dengan cara memeriksa kondisi pin masukan untuk
setiap pin keluaran. Gambar 2.18 memperlihatkan cara kerja dari keypad matriks
saat mendeteksi penekanan tombol 3, pin yang beroperasi pada proses ini adalah
pin baris 1 dan pin kolom 3.
2.7.2 Modul LCD seri M1632[10]
M1632 merupakan modul LCD Matriks dengan konfigurasi 16 karakter dan
dua baris dengan setiap karakternya dibentuk oleh delapan baris pixel (satu baris
pixel terakhit adalah kursor). Pada Modul LCD ini telah dilengkapi dengan
mikrokontroler pengendali, HD44780 buatan Hitachi adalah salah satu
mikrokontroler yang tertanam pada M1632. Mikrokontroler mempunyai
kemampuan untuk mengatur proses scanning pada layar LCD, sehingga perangkat
Gambar 2.19 Modul LCD
Keterangan pin pada Modul LCD : 1.GND 2.VCC 3.VEE/VLCD 4.RS (register select). 5.R/W (read/write) 6.E (Enable) 7.D0 8.D1 9.D2 10.D3 11.D4 12.D5
13.D6 14.D7 15.Anoda,LEDbacklight 16.Katoda, LEDbacklight
Modul LCD ini memiliki dua jenis anatarmuka yaitu antarmuka empat bit dan
antarmuka delapan bit, bit DL adalah bit yang menangani pemilihan jenis
antarmuka yang akan digunakan. Dengan teknik antarmuka empat bit maka dapat
mengurangi pemakain port masukan dan keluaran pada perangkat elektronika.
Proses yang terjadi pada antarmuka empat bit yaitu dengan cara pengiriman
4-bit atas terlebih dahulu dan dilanjutkan dengan 4-4-bit bawah dimana untuk setiap
prosesnya selalu diiringi dengan sebuah pulsa di pin E.
Tabel 2.6 Perintah M1632
Perintah D7 D6 D5 D4 D3 D2 D1 D0
Hapus layar 0 0 0 0 0 0 0 1
Posisi awal 0 0 0 0 0 0 1 X
Set mode 0 0 0 0 0 1 I/D S
Display ON/OFF X100 0 0 0 1 D C B
Geser kursor 0 0 0 1 S/C R/L X X
Set fungsi 0 0 1 DL N F X X
Set alamat CDRAM 0 1 ACG ACG ACG ACG ACG ACG
Set alamat DDRAM 1 ADD ADD ADD ADD ADD ADD ADD
Keterangan tabel :
Pin RS berfungsi untuk memilih register yang akan di program. Bit RS
bernilai satu maka register yang dipilih adalah register data, dan jika bernilai nol
maka register yang dipilih adalah register control, sehingga M1632 siap
diinisialisasi.
2.8. Sensor Suhu (LM35) [11]
LM35 (gambar 2.20) adalah sensor suhu yang presisi dengan fitur sebagai
berikut:
1. Beroperasi pada ° Celsius
2. Skala kenaikan Linear +10.0 mV/°C
3. ketepatan 0.5°C (pada 25°C)
4. Bekerja pada −55° sampai +150°C
5. Bekerja mulai tegangan 4 sampai 30 volts
6. Penggunaan arus yang kurang dari 60 μA
7. Pemanasan diri yang rendah pada udara bebas yaitu 0.08°C
8. Keluaran impedansi yang rendah 0.1 W untuk beban 1 mA
Seperti dengan banyak rangkain daya rendah yang lain, LM35 tidak dapat
mengolah pada kapasitor beban yang besar, untuk menanggulangi hal ini maka
pada kaki keluaran dari LM35 dipasang rangkaian yang disebut Dumper R-C,
seperti yang diperlihatkan pada gambar 2.21.
2.9. Dioda zener [12]
Dioda zener adalah dioda silicon yang dirancang untuk bekerja optimal pada
daerah breakdown. Disebut dioda pengatur tegangan karena dapat
mempertahankan tegangan output tetap konstan meskipun arus yang melaluinya
berubah. Karakteristik zener dapat dilihat pada gambar 2.22.
Gambar 2.22 Karakteristik zener
2.10. Respon Transien – Orde Dua [13]
Respon transien adalah respon sistem yang berlangsung dari keadaan awal
sampai keadaan akhir. Dalam beberapa kasus praktis, karakteristik sistem kontrol
yang diinginkan dinyatakan dalam bentuk besaran waktu. Sistem yang
mempunyai elemen penyimpan energi tidak dapat merespon secara seketika dan
akan menunjukkan respon transien jika dikenai masukan masukan atau gangguan.
Respon transien sistem kontrol praktis sering menunjukkan osilasi teredam
sebelum mencapai keadaan tunak. Parameter respon transien sebagai berikut :
1. Waktu tunda (delay time), td : Waktu yang diperlukan respon untuk
mencapai setengah harga akhir yang pertama kali.
2. Waktu naik (rise time), tr : waktu yang diperlukan respon untuk naik dari
10% samapi 90%, 5% sampai 95%, atau 0% sampai 100% dari harga
100%. Untuk sistem redaman lebih, biasanya digunakan waktu naik 10% -
90%.
3. Waktu puncak (peak time), tp : waktu yang diperlukan respon untuk
pencapai puncak lewatan yang pertama kali.
4. Lewatan maksimum (maximum overshoot), Mp : harga puncak maksimum
dari kurva respon yang diukur dari satu. Jika harga keadaan tunak respon
tidak sama dengan satu, maka biasa digunakan persen lewatan maksimum.
Parameter ini didefinisikan sebagai :
( ) ( )
( )
100%c c tp c maksimum tan_
lewa _
Persen ×
∞ ∞ −
= (2.9)
Besarnya (persen) lewatan maksimum secara langsung menunjukkan
kestabilan relativ sistem.
5. Waktu penetapan (settling time), ts : waktu yang diperlukan kurva respon
untuk mencapai dan menetap dalam daerah di sekitar harga akhir yang
diukur ditentukan dengan persentasi mutlak dari harga akhir ( biasanya 5%
atau 2%). Waktu penetapan ini dikaitkan dengan konstanta waktu terbesar
dari sistem kontrol. Kriteria persentasi kesalahan yang akan digunakan
ditentukan dari sasaran disain sistem yang dinyatakan.
memiliki dua bagian dasar yaitu : bagian perangkat keras (Hardware) dan
perangkat lunak (Software). Sistem sensor digunakan untuk mengetahui suhu
kotak agar dapat dikendalikan. Pada penelitian ini menggunakan LM35 sebagai
sensor suhu.
Piranti pengolah yang digunakan sebagai sistem kendali adalah sistem
mikrokontroler berbasis AVR ATMega8535, sistem ini dapat diprogram langsung
dengan menggunakan bahasa C dengan Compiler WinAvr.
Piranti penunjang yang digunakan seperti : TEC (Thermoelectric Cooler)
sebagai sumber penghasil suhu, rangkaian pengkondisi sinyal, rangkaian penguat
arus yang terkendali oleh tegangan, untuk rangkaian ini menggunakan rangkaian
yang sudah ada sehingga tidak dibahas lagi pada perancangan, sedangkan sebagai
piranti keluaran dan masukan menggunakan keypad matriks 4x3 sebagai pengatur
set-point dan LCD sebagai penampil suhu. Blok diagram dapat dilihat pada
gambar 3.1.
Pembahasan dari perancangan akan ditinjau per blok diagram, perancangan ini
akan berisi perancangan perangkat keras dan perancangan perangkat lunak.
Gambar 3.1 Blok diagram sistem model kotak pendingin
3.1 Perancangan Set-Point
Pengaturan suhu yang diinginkan dengan cara digital yaitu dengan menekan
tombol (keypad matriks) yang tersedia berdasarkan jangkauan suhu pada
perancangan.
Untuk masukan set-point menggunakan push button yang tersusun secara
matriks 4x3. Tombol yang dibutuhkan sebanyak 13 tombol diantaranya 12 tombol
yang terangkai matriks dan satu tombol yang berfungsi untuk pengaturan kembali
jika terjadi kesalahan dalam memasukan nilai set-point atau untuk masuk ke rutin
set-point saat program sedang berjalan. Konfigurasi tombol dapat dilihat pada
gambar 3.2.
Gambar 3.2 Rangkaian Push-Button
Untuk mengetahui nilai dari tombol yang ditekan maka menggunakan metode
scaning yaitu metode yang bekerja mengecek terus menerus apakah ada
penekanan tombol atau tidak dengan menggunakan pin baris sebagai input dan pin
kolom sebagai output. Diagram alir cara pembacaan data untuk kolom satu
Inisialisasi PORT Ambil data
Tidak
Gambar 3.3 Diagram alir pembacaan data melalui keypad matriks 4x3
Gambar 3.4 memperlihatkan diagram alir cara pembacaan tombol set-point.
Inisialisasi PORT
3.2 Perancangan LCD
Penampil LCD menggunakan HD44780 yang sudah berupa modul buatan
Hitachi, keterangan pin LCD yang digunakan dapat dilihat pada dasar teori.
Dalam perancangan ini tampilan LCD akan dibuat seperti gambar 3.5a saat
memasukan set-point dan gambar 3.5b saat prosese kendali sementara berjalan.
Gambar 3.5a Tampilan LCD saat set poin
Gambar 3.5b Tampilan LCD saat proses berjalan
Untuk mengaktifkan LCD perlu konfigurasi awal, yang ditampilkan dalam
bentuk algoritma sebagai berikut :
1. Memberi logika 0 pada pin RS.
2. Mengatur mode 4-bit data, data = 0x20.
3. Mengatur pergeseran tampilan, data = 0x28.
4. Mengatur tampilan kursor, data = 0x0C.
5. Mengatur mode tampilan karakter, data = 0x06.
6. LCD siap untuk tampilan karakter.
1. Memberi logika 1 pada pin RS.
2. Kirimkan data nibel atas dari konfigurasi 8-bit data.
3. Kirim data nibel bawa dari konfigurasi 8-bit data.
4. LCD siap untuk karakter berikutnya.
Di setiap pengaturan maupun penulisan karakter diberikan sinyal handshaking
pada pin EN
3.3 Perancangan Sensor.
Sensor suhu LM35 memiliki karakteristik kenaikan suhu yang linear dengan
10mV tiap kenaikan 1oC. Jika ketelitian satu angka dibelakang koma, maka untuk
kenaikan 0.1oC berbanding lurus dengan kenaikan tegangan sebesar 1mV.
Pemilihan tegangan referensi untuk ADC diperlukan untuk proses konversi
tegangan, agar hasil konversi data digital dari tegangan analog dapat diubah
dengan tepat maka tegangan referensi harus mewakili besar tegangan yang
diinginkan tiap perubahan 1-bit.
Tegangan dari sensor tidak boleh melebihi tegangan referensi ADC agar dapat
diolah dengan tepat pada mikrokontroler (mengurangi error pembulatan pada
ADC). Resolusi ADC yang digunakan sebesar 10 bit dengan nilai kenaikan tiap
bit ditetapkan sebesar 4mV dan resolusi suhu yang digunakan pada penelitian ini
adalah 1 angka di belakang koma (0.1). Penyesuaian pada tegangan referensi
ADC diperlukan agar kenaikan tiap bit data digital sesuai dengan besar tegangan
yang ditetapkan.
Tabel 3.1 memperlihatkan tanggapan tegangan LM35 untuk suhu tertentu.
Tabel 3.1 Perbandingan perubahan suhu dengan tegangan
Suhu Tegangan
0.0 oC
Suhu maksimal pada penelitian ini adalah 25.5oC. Sinyal analog yang
dikonversi oleh ADC sebesar 1020mV dengan nilai tegangan referensi berdasar
rumus (2.3) sebesar :
3.3.1 Perancangan Tegangan Referensi pada ADC
Untuk memperoleh tegangan referensi ADC yang dikehendaki maka
digunakan rangkaian pembagi tegangan, karena sumber tidak bernilai tetap (5V),
maka dengan rangkaian pembagi tegangan saja tidak cukup. Untuk memperoleh
tegangan yang tetap dapat menggunakan dioda zener sebelum rangkaian pembagi
tegangan.
Perhitungan nilai resistor yang digunakan berdasarkan gambar 3.6.
Diketahui Vin = 5V ; Vout = 4.096
Iz = 5mA ( dari data sheet )
Vdz = 4.3V
Menghitung nilai Vrs :
Vdz Vrs
Vdz
Menghitung nilai Irs :
Irt Iz Irs= +
Tegangan referensi ADC bersifat tegangan murni ( tidak terpengaruh dengan arus
yang mengalir) maka ditentukan Irt yang kecil, yaitu 1mA.
mA
sehingga nilai dari Rs dapat di hitung dengan :
Ω
Nilai resistor yang ada dipasaran, di pilih Rs = 120Ω
Ω
Menghitung nilai R1 : Nilai R2 ditentukan sebesar 3.9kΩ
120Ω
194.23Ω
4.3V 5V
3.9K 4.096V
Gambar 3.6 Rangkaian pembagi tegangan dengan dioda zener
3.4 Perancangan PWM dan Pengkondisi Sinyal.
Fasilitas PWM telah disediakan oleh mikrokontroler sehingga tidak perlu
penambahan komponen lagi. Keluaran PWM adalah gelombang kotak dengan
amplitude 5V dan frekuensinya dapat dihitung sebagai berikut :
Berdasarkan persamaan (2.2) :
256 32 4194304 fOCnPCPWM
×
= ; N = 32, fclk_I/O= 4194304Hz
fOCnPCPWM =488.28Hz
Agar dapat memperoleh amplitude PWM yang lebih besar maka keluaran PWM
dilewatkan pada penguat Non-inverting.
Cara menginisialisasikan PWM pada mikrokontroler dengan algoritma sebagai
berikut.
1. Menentukan fasilitas PWM yang digunakan.
2. Mengaktifkan interupsi.
3. Mengatur waktu pembanding.
5. Jika waktu pembanding sama dengan cacah waktu maka intrupsi, jika
tidak tetap pada langkah 5.
3.4.1 Perancangan penguat Non-Inverting 1.4x
Agar mencapai amplitudo sebesar 7V maka keluar PWM karus dikuatkan
sebesar 1.4x dengan perhitungan :
Berdasarkan persamaan (2.20)
Ri
Gambar rangkaian sebagai berikut.
1k
Gambar 3.7 Penguat Non-Inverting 1.4x
Driver arus memerlukan tegangan buka sebesar 1.4V, tegangan buka tersebut
berarti driver akan bekerja setelah masukan tegangan lebih dari 1.4V dan
sebanding dengan 2x besar tegangan buka transistor, karena rangkaian driver yang
digunakan merupakan rangkaian transistor dua tingkat. Agar tegangan PWM
tidak digunakan untuk mengaktifkan driver maka saat keluaran PWM sama
dengan nol masukan driver harus sebesar 1.4V. Untuk menaggulangi hal ini maka
sebelum tegangan PWM masuk ke driver dilewatkan pada rangkaian penjumlah
rangkaian penjumlah bersifat membalik polaritas tegangan maka setelah
dijumlahkan polaritasnya harus dibalik kembali menggunakan rangkaian OpAmp
penguat pembalik dengan besar penguatan sama dengan satu. Gambar 3.8
memperlihatkan rangkaian penjumlah dan rangkaian pembalik dengan OpAmp.
1.4V
10k
+
-10k 10k
Driv er
10k
PWM
10k
+
-Gambar 3.8 Rangkaian penjumlah dan pembalik OpAmp.
3.5 Perancangan Antarmuka Sistem Mikrokontroler.
Berdasarkan piranti-piranti yang digunakan maka pembagian Port pada
mikrokontroler dirancang sebagai berikut :
1. Piranti masukan set poin (keypad matriks), memerlukan tujuh saluran I/O,
ditetapkan pada PORT B dengan konfigurasi :
Port B.0 : sebagai input baris 1.
Port B.1 : sebagai input baris 2.
Port B.2 : sebagai input baris 3.
Port B.3 : sebagai input baris 4.
Port B.4 : sebagai output kolom 3.
Port B.5 : sebagai output kolom 2.
Port B.6 : sebagai output kolom 1.
2. Piranti keluaran (LCD). Memerlukan delapan saluran I/O, ditetapkan pada
Port C.0 : sebagai input D4
Port C.1 : sebagai input D5.
Port C.2 : sebagai input D6.
Port C.3 : sebagai input D7.
Port C.4 : sebagai input RS.
Port C.6 : sebagai input RW.
Port C.7 : sebagai input EN.
3. Piranti keluaran PWM. Untuk keluaran PWM telah disediakan olah
mikrokontroler, terletak pada pin (OC2) atau port D.7
4. Piranti masukan ADC. Terletak pada pin ADC0 atau Port A.0.
5. Untuk tombol pengubahan atau koreksi set-point ditetapkan pada Port D.2.
Mikrokontroler memerlukan osilator sebagai sumber detak baik secara internal
muapun eksternal. Pada sistem ini menggunakan kristal sebesar 4.194304MHz
dengan kapasitor bernilai 22pF, untuk keterangan pemakaian kapasitor lebih
lanjut dapat dilihat pada data sheet. Rangkaian osilator kristal dapat dilihat pada
gambar 3.9.
22pF
22pF 4.194304MHz
Selain itu sistem mikrokontroler juga diberi fasilitas reset yang bertujuan
untuk memaksa agar proses diulang dari awal. Rangkaian reset dapat dilihat pada
gambar 3.10
R1
Gambar rangkaian lengkap :
Vrev
Key pad Matriks dan set point
U2
Gambar 3.11 Rangkaian sistem kendali
Proses kendali digambarkan dengan diagram alir pada gambar 3.12, diagram
alir dimulai dengan inisialisasi yang isinya sebagai berikut:
1. Penentuan port yang digunakan beserta fungsinya.
2. Penentuan vector intrupsi untuk PWM.
4. Penentuan procedur pengendali LCD.
Start
Baca sensor
Tulis suhu ke LCD
Perhitungan PID
waktu sampling tercapai? Tegangan
keluaran inisialisasi
Set poin
Stop tidak
ya A
A
Gambar 3.12 Diagram alir Program sistem kendali
5. Penentuan proses perhitungan berbasis dua angka di belakang koma.
Misalnya jika masukan 25.5 oC, maka nilai masukan dalam proses akan
dikenali sebesar 2550 desimal. jika masukan 10 oC, maka nilai masukan dalam
proses akan dikenali sebesar 1000 desimal.
Setelah itu untuk menentukan suhu yang diinginkan dapat dimasukkan lewat
keypad matriks 4x3. Dengan batasan sebagai berikut :
1. Nilai maksimal 25.5 oC dan nilai minimal 0oC.
2. Format nilai masukan dalam bilangan real, dua angka di belakang koma.
Koma ? ya Simpan nilai pertama
nilai pertama = nilai pertama x 100
Simpan nilai kedua
nilai pertama = nilai pertama x 1000
nilai kedua = nilai kedua x 10
OK Simpan nilai
kedua
nilai kedua = nilai kedua x 100
Simpan nilai ketiga
Nilai ketiga = nilai ketiga x 10
SP = nilai pertama + nilai kedua + nilai
ketiga
SP = nilai pertama + nilai kedua tidak
stop Start
Gambar 3.13 Diagram alir penentuan nilai masukan
Pembacaan sensor dengan cara mengkonversikan sinyal analog menjadi data
digital dengan menggunakan fasilitas ADC internal pada mikrokontroler yang
digunakan. Hasil pembacaan ini berupa data biner sehingga perlu diolah untuk
memperoleh nilai tegangan masukan ADC yang sebenarnya, nilai itu kemudian
Perhitungan nilai MP sebagai berikut :
Keterangan :
nilai_adc = Nilai konversi 10bit
40960 = Tegangan referensi x 10000, bertujuan agar proses tidak
dalam bilangan riil karena mikrokontroler tidak bisa
memproses bilangan riil.
1024 = Resolusi ADC.
Perhitungan PID akan dibahas pada subbab 3.6. Setelah dihitung maka akan
memperoleh besar nilai tegangan yang berupa nilai dutycycle pada sinyal PWM.
Nilai dari PWM ini akan tetap sampai proses sampling berikutnya.
Waktu sampling pada penelitian ini disesuaikan dengan data yang diukur yaitu
suhu. Pengukuran suhu membutuhkan waktu yang lambat sehingga ditetapkan
waktu sampling setiap 10 detik[14] dan kristal yang digunakan sebesar
4.194304MHz, sehingga berdasarkan persamaan 2.1 untuk tundaan selama 10
detik mikrokontroler memerlukan pulsa clock sebanyak :
Dengan : fOSC = 4194304 (Hz).
Prescaler = 1024 (datasheet).
Jumlah pulsa clock selama satu detik adalah :
1024 4194304 ik
det
1 =
pulsa clock 4096
ik det
1 =
40960
3.6 Perhitungan Koefisien PID dan Algoritma pada Sistem Kendali
Berdasarkan data open loop dari penelitian Ricky Nelson[15] diperoleh grafik
sebagai berikut :
Detik (s) Suhu (o
C)
4.66 cm
Gambar 3.14 grafik data open loop (data awal)
Pengambilan data dilakukan dengan cara pencatatan nilai tiap 16 detik. Dalam
waktu 154 menit diperoleh data seperti pada gambar 3.14 (telah ternormalisasi
dengan suhu atas 27 oC dan suhu bawa 0.4 oC), untuk kenaikan satu pada grafik
sama dengan kenaikan 16 detik.
Beradasarkan grafik pada gambar 3.14 dapat dihitung nilai L, T, Kp, Ti, Ki,
Td, Kd berdasarkan tabel 2.5
07
c. Menghitung nilai Kp :
32
Nilai koefiseien PID yang diperoleh tidak dapat langsung dimasukan kedalam
perhitungan pada persamaan 2.6, tetapi memerlukan penyesuaian bilangan
terlebih dahulu agar dapat diproses secara digital. Diagram alir pada gambar 3.5
Inisialisasi
Gambar 3.15 Diagram alir Kendali PID digital
3.7 Perancangan Model Kotak Pendingin
Model kotak pendingin terbuat dari akrilik yang dipotong dan disusun
berbentuk kotak (Lampiran), sebagai sumber dingin digunakan komponen
termoelektrik sebanyak tiga buah yang terhubung secara paralel. Dua buah
termoelektrik terpasang pada bagian bawah kotak pendingin yang langsung
menempel pada alumunium pejal dan satu buah termoelektrik terpasang pada
Berdasarkan perancangan, pusat kendali dikemas dalam 2 PCB yang tersusun
secara paralel. Untuk PCB mikrokontroler seperti pada gambar 4.2. PCB yang
kedua adalah PCB yang berisi antarmuka masukan dan keluaran ( keypad dan
LCD ) pada gambar 4.3. Tegangan yang digunakan pada sistem kendali sebesar
+5V untuk mikrokontroler dan tegangan simetris 15V untuk OpAmp.
Gambar 4.1 Model kotak pendingin
Gambar 4.2 Layout PCB sistem mikrokontroler
Gambar 4.3 PCB antarmuka
Model kotak obat bekerja dengan tegangan DC yang rendah sehingga untuk
memperoleh tegangan tersebut digunakan trafo step-down. Tegangan DC
digunakan pada rangkaian driver, rangkaian kendali, dan kipas untuk
sebesar 15V, tegangan ini diperoleh dari hasil tegangan sinus yang diluruskan
dengan menggunakan IC 7815 untuk tegangan positif dan IC 7915 untuk tegangan
negatif. Tegangan simetris ini digunakan untuk mengoperasikan OpAmp.
Keluaran dari tegangan +15V diturunkan lagi dengan IC 7805 menjadi tegangan
DC 5V yang kemudian digunakan untuk sistem mikrokontroler. Untuk kipas,
sumber tegangan langsung diambil pada keluaran trafo dengan besar tegangan
adalah 12V, kemudian disearahkan dengan rangkaian dioda dan rangkaian
kapasitor. Sumber tegangan driver tidak dibahas pada pernelitian ini, karena
driver menggunakan rangkaian yang sudah ada. Gambar driver dan sumber
tegangan dapat dilihat pada gambar 4.4 dan gambar 4.5
Gambar 4.5 Driver arus
4.2 Prinsip dan Cara Kerja
Model kotak obat menggunakan sumber pendingin termoelektrik. Set-point
pada alat harus diatur terlebih dahulu sebelum proses pendinginan berlangsung.
Saat proses pendinginan berlangsung suhu kotak terus dipantau dengan sensor
LM35, sehingga sistem kendali dapat memproses besarnya tegangan untuk
mengendalikan arus yang masuk ke termoelektrik. Penentuan besar tegangan yang
diberikan sistem kendali diolah dengan metode PID secara digital dengan
mengubah besar tegangan analog dari sensor dengan cara dilewatkan pada ADC.
Perhitungan error sebagai nilai awal perhitungan PID diperoleh dengan cara
mengurangi nilai pengukuran dengan set-point.
Nilai error kemudian diproses dengan algoritma PID, nilai koefisien ini
diperoleh dari hasil perhitungan perdasarkan data open loop dengan menggunakan
Berdasarkan nilai koefisien hasil perhitungan pada waktu perancangan, tanggapan
sistem kendali dapat mencapai suhu yang diinginkan.
Nilai hasil perhitungan PID kemudian digunakan untuk menentukan lebar
pulsa dari PWM sebagai tanggapan tegangan keluaran. Lebar pulsa maksimal
adalah 8-bit yang mewakili tegangan sebesar 5V, sehingga ada keterbatasan dalam
penelitian ini yaitu jika hasil perhitungan PID lebih dari 8-bit maka tanggapan
tegangan keluaran dari sistem kendali akan bernilai maksimal yaitu 5V, sistem
kendali akan memberikan tanggapan yang sesuai dengan perhitungan jika hasil
perhitungan kurang dari atau sama dengan lebar pulsa makisimal.
Perhitungan PID dilakukan setiap 10 detik, agar memperoleh waktu yang teliti
maka perhitungan tundaan ini harus sesuai dengan prescalar yang tersedia pada
mikrokontroler dan nilai kristal yang cocok untuk prescalar yang digunakan.
Berdasarkan perancangan dengan menggunakan prescalar sebesar 1024 dan
kristal 4.194304 MHz tundaan selama 10 detik dapat tercapai.
Proses perhitungan PID dilakukan terus menerus walaupun suhu yang
diinginkan sudah tercapai, hal ini bertujuan untuk mengantisipasi
gangguan-gangguan dari luar. Saat alat aktif kerena berkaitan dengan arus besar maka
terdapat tiga titik panas yaitu pertama panas pada tranformator karena asupan arus
yang besar, kedua panas pada transistor karena melewatkan arus yang besar dan
ketiga panas pada sisi yang lain dari termoelektrik karena efek seebeck. Karena
adanya titik panas ini maka transistor ditempelkan pada heatsink kemudian diberi
kipas di bagian atas dan bagian bawah, begitu juga pada termoelektrik
Tegangan untuk menggerakkan kipas diambil langsung dari keluaran 12V
tranformator yang disearahkan terlebih dahulu.
4.2.1 Analisa Perangkat Keras
Berdasarkan perancangan model kotak pendingin terdiri beberapa blok sistem,
gambar 3.1 memperlihatkan blok sistem tersebut. Tabel 4.1 memperlihatkan
perbedaan antara nilai pengukuran dan nilai perancangan, dalam hal ini yang
ditampilkan hanyalah nilai yang dapat langsung diukur dengan multimeter.
Tabel 4.1 Data pengukuran tegangan
No Keterangan Perancangan Pengukuran
1 Tegangan PWM maksimal dari uC (V) 5 5
2 Tegangan PWM hasil penguatan (V) 7 7
3 Tegangan penjumlah PWM (V) 1.4 1
4 Tegangan buka Transistor (Driver) (V) 1.4 1
5 Tegangan Masukan plant maksimal (V) 8 8
Nilai lain yang tidak dapat diukur dengan menggunakan multimeter adalah
besar hambatan pada rangkaian penguat tegangan PWM, besar hambatan pada
pembagi tegangan untuk rangkaian penjumlah, dan besar tegangan dari sensor ke
mikrokontroler. Keluaran sensor tidak dapat diukur dengan menggunakan
multimeter karena dapat mempengaruhi pembacaan ADC pada mikrokontroler.
Setiap sensor Lm35 memiliki tanggapan yang berbeda – beda, untuk
memperolah tenggapan suhu yang terendah dari sensor yang akan digunakan
maka terlebih dahulu dilakukan percobaan tanggapan suhu dari beberapa sensor,
pada penelitian ini sensor yang dibandingkan sebanyak tiga buah. Tanggapan suhu
dari setiap sensor dapat dilihat pada gambar 4.6 dan tabel perbandingannya pada
(a) Tanggapan suhu sensor 1
(b) Tanggapan suhu sensor 2
Suhu (
ºC)
Suhu (
ºC)
Waktu (1/10) detik
Waktu (1/10) detik
Waktu (1/10) detik
4ºC
2.4ºC
1.6ºC
Suhu (
ºC)
Tabel 4.2 Perbandingan tanggapan suhu Lm35 dalam percobaan sensor
No Nama Sensor Tanggapan suhu terendah
1 Sensor 1 1.6ºC
2 Sensor 2 2.4ºC
3 Sensor 3 4ºC
Berdasarkan data perbandingan bercobaan sensor pada tabel 4.2 maka sensor
Lm35 yang digunakan adalah Sensor 1.
Nilai PWM mewakili tegangan 5V untuk memperoleh arus yang sesuai
berdasarkan penelitian Ricky Nelson[15], maka tegangan PWM dikuatkan
menjadi 7V dengan menggunakan rangkaian penguat OpAmp. Sebelum masuk ke
driver tegangan dijumlahkan dengan tegangan buka transistor ini dengan tujuan
agar hasil perhitungan nilai PWM tidak terkurang dengan tegangan buka
transistor. Driver berupa rangkaian transistor dua tingkat sehingga tegangan buka
adalah 1.4V. Namun kenyataannya saat tegangan 1V driver telah bekerja,
sehingga besar tegangan yang dijumlahkan dengan tegangan PWM sebesar 1V.
Total tegangan pada saat nilai PWM maksimal adalah 8V.
4.2.2 Analisa Perangkat Lunak
Berdasarkan diagram alir pada gambar 3.12 maka uraian program sebagai
berikut:
a. Inisialisasi
Blok ini berisi tentang pendefinisian fungsi, variabel, dan nilai
awal yang diperlukan dalam proses, dengan uraian program sebagai
#include <avr/io.h> // library standart input output
#include <avr/pgmspace.h> // library program space untuk memesan ruang penulisan karakter
#include <util/lcd_xtl_4194.h> // library yang menyimpan fungsi fungsi dari LCD yang lain
//--- definisi ---
#define LCD_PORT PORTC #define LCD_DDR DDRC
#define vref 40960 // besar tegangan referensi ADC setelah dilaki 10000
#define duty OCR2 // register OCR2 sebagai penentu duty cycle pada timer2
// definisi tulisan yang digunakan pada LCD
prog_char Tulisan[] = "0123456789ABCDEF"; prog_char Tulisan1[] = "Input set-point"; prog_char Tulisan2[] = "SET-POINT"; prog_char Tulisan3[] = "PENGUKURAN"; . . .
. . . . . .
//---inisialisasi port ---
LCD_DDR = 0xff; // set untuk keluaran
DDRB = 0xf0; // set untuk setengah keluaran dan setengah masukan DDRD = 0xff; // set untuk keluaran
PORTD = 0xff; // set keluaran awal adalah 1
//---inisialisasi fitur ---
adc_init(); pwm_init(); lcd_init(); timer1_init(); USART_init();
//---inisialisasi variabel----
int i,c;
//--- inisialisasi var pid
long int kp,ki,kd;
//--- inisialisasi var error
long int e0,e1,e2;
//--- inisialisasi var out
long int v0,v1;
long int temp1,temp2;
//--- inisialisasi nilai set point
long int sp, mp;
long int nbin;
//--- koefisien pid
kp= 1732;
ki= 57; //Ts = 10s
kd= 13081;//Ts = 10s
b. Set-point
Blok ini berisi tentang bagaimana program dapat mengetahui nilai
set-point yang diinginkan dan bagaimana cara program dapat memproses
nilainya sehingga dapat digunakan pada perhitungan. Uraian program
sebagai berikut :
penanda = 1; penanda_koma = 0; for (;;)
{
//kolom 3
PORTB =0b10111111;
if (bit_is_clear(PINB, 3)) {
if (bit_is_clear(PINB, 2)) {
penanda +=1;
if (bit_is_clear(PINB, 0)) {
return (input_sp); // kembalikan nilai input_sp }
Fungsi dari variabel penanda yaitu akan menandakan tombol sudah berapa
kali ditekan sehingga nilai masukan set-point tidak keliru. Sedangkan
variabel penanda_koma berfungsi untuk menandakan apakah tombol koma
pernah ditekan atau tidak.
c. Baca Sensor
Blok ini berisi tentang prosedur pembacaan sensor, dengan uraian program
start_conversion(); // memulai proses konversi
while (conversion_not_over()); // mengecek apakah konversi sudah selesai atau belum clear_adif(); // set 0n untuk register adif yang menandakan konversi siap di panggil kembali nbin = read_adc(); // menyalin nilai pembacaan ADC ke variabel nbin
. . . . . . . . .
void start_conversion(void) // memeulai konversi nilai ADC {
ADCSRA |= (1<<ADSC); }
int conversion_not_over(void) // fungsi untuk memerikasa apakah konversi ADC sudah selesai {
return !(ADCSRA & (1<<ADIF)); }
void clear_adif(void) //fungsi ini untuk menandakan ADC siap mengambil data kembali
{
ADCSRA |= (1<<ADIF); }
long int read_adc(void) // fungsi mengambilan nilai ADC yang telah dibaca {
Bit ADSC bernilai 1 berarti pembacaan ADC dilaksanakan, bit ADIF
bernilai 1 berarti konversi pada saluran ADC yang digunakan telah selesai.
Fungsi conversion_not_over berfungsi untuk menahan proses mikrontroler
sampai konversi ADC selesai.
d. Tulis Suhu ke LCD
Proses penulisan dibagi dalam tahap konversi desimal ke karakter ASCII
dan tahap pengiriman ke LCD. Uraian program konversi dan pengiriman
void tampil_suhu_ke_lcd(long int vin) // fungsi menampilkan suhu ke lcd {
long int temp1, temp2; int n;
temp1=vin/1000;
n=pgm_read_byte(&Tulisan[temp1]); //nilai kali 10000 lcd_data(n);
temp1 = temp1 * 1000; temp1 = vin - temp1; temp2 = temp1 / 100;
n=pgm_read_byte(&Tulisan[temp2]); lcd_data(n);
lcd_data('.'); temp2 = temp2 * 100;
temp1 = temp1 - temp2; temp2 = temp1 / 10;
n=pgm_read_byte(&Tulisan[temp2]); lcd_data(n);
lcd_data(223); // simbol drajat lcd_data('C'); }
Setelah nilai telah selesai dikonversi maka fungsi pgm_read_byte() akan
menyimpan karakter ASCII ke dalam variabel n, kemudian di cetak ke
LCD dengan fungsi lcd_data().
e. Perhitungan PID dan Tegangan Keluaran
Blok ini berisi tentang bagaimana sistem kontrol memperoleh tanggapan
keluaran berdasarkan nilai masukan dari ADC. Uraian program sebagai
berikut :
mp = konversi_tegangan(temp1); //pengolahan nilai mp
//--- menghitung nilai error e0 = mp-sp;
//--- menghitung nilai proposional temp1=e0-e1; temp1=kp*temp1; temp1=temp1/100; v0=v1+temp1;
//--- menghitung nilai integral
temp1=ki*e0; temp1=temp1/100; v0=v0+temp1;