25 agustus 2015 buku ta c. imanuell
DESCRIPTION
How to make Droop Speed Control Prime movers simulation that can be parallel operation with Isochronous Speed Control.TRANSCRIPT
PERANCANGAN SIMULASI DROOP SPEED CONTROL UNTUK OPERASI LOAD SHARING PADA
SISTEM PEMBANGKIT LISTRIK
TUGAS AKHIR
Diajukan untuk memenuhi syaratmendapatkan gelar Sarjana Teknik
Disusun oleh:Cristian Imanuell
2011-042-007
PROGRAM STUDI TEKNIK ELEKTROFAKULTAS TEKNIK
UNIVERSITAS KATOLIK INDONESIA ATMA JAYAJAKARTA
2015
ii
ABSTRAK
Kesulitan memperoleh sumber energi listrik yang dapat diandalkan masih terjadi di industri. Perubahan pada beban berdampak pada kecepatan turbin yang berfungsi sebagai prime mover. Jika beban bertambah maka kecepatan turbin menurun sehingga untuk mengatur kecepatan turbin tetap di dalam performance parameter speed, yaitu sekitar 2500 – 3000 rpm diperlukan pengaturan kecepatan putar prime mover. Pada penelitian ini dirancang simulasi sistem pengatur kecepatan prime mover dengan mode droop untuk operasi load sharing menggunakan mikrokontroler sebagai pengatur kecepatan. Berdasarkan hasil pengujian yang telah dilakukan, sistem dapat memberikan daya dan jika salah satu generator mati, tidak akan terjadi black out.
Kata kunci: mikrokontroler, prime mover, speed control, load sharing, droop
iii
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa atas berkat dan rahmat-Nya
sehingga penulis dapat menyelesaikan Tugas Akhir ini dengan baik dan lancar.
Tugas akhir ini disusun untuk memenuhi salah satu persyaratan dalam
menyelesaikan program studi untuk mendapat gelar Sarjana Teknik pada Program
Studi Teknik Elektro, Fakultas Teknik, Universitas Katolik Indonesia Atma Jaya.
Penyelesaian Tugas Akhir ini tidak lepas dari bimbingan, bantuan dan
dorongan dari berbagai pihak. Oleh karena itu, penulis ingin menyampaikan ucapan
terimakasih kepada:
1. Ibu Ir. Melisa Mulyadi, M.T., sebagai Dosen Pembimbing yang telah
memberikan bimbingan, bantuan, dukungan dan dorongan semangat selama
penulis menyusun Tugas Akhir ini.
2. Bapak Dr. Aloysius Adya Pramudita, S.T., M.T., sebagai Ketua Program Studi
Teknik Elektro, Fakultas Teknik, Universitas Katolik Indonesia Atma Jaya.
3. Bapak Dr. Lukas, ST, MAI, CISA, sebagai dosen pembimbing akademik yang
telah membantu dalam proses akademik selama perkuliahan.
4. Ayah dan Ibu yang selalu memberikan nasehat, dukungan, doa dan semangat
tak henti-hentinya kepada penulis.
5. Novandy, Cindy Yuanita, Daniel Budiman, William Santoso, Satrio, Felicia
Alvina, Nico Jonathan, Hendy, Santzo, Erwin, Pangeran, Tobias, Andrew
iv
Pranata, Wina Florencia dan teman-teman Workshop Elektro lainnya yang
telah membantu penulis dalam menyelesaikan Tugas Akhir ini.
6. Bonifasius Kevin Ramada, Robin Tiolie, Jeremy Chondro, Samuel Christian
dan teman-teman Teknik Elektro yang tidak dapat disebutkan satu persatu yang
telah memberikan semangat pada masa perkuliahan.
7. Seluruh dosen Program Studi Teknik Elektro, Fakultas Teknik, Universitas
Katolik Indonesia Atma Jaya yang telah mengajar dan mendidik penulis selama
masa perkuliahan.
8. Seluruh anggota Teater Gerak yang telah mendukung dan memberi semangat
dalam menyelesaikan Tugas Akhir.
9. Semua sahabat dan pihak yang tidak dapat disebutkan satu persatu namanya
atas bantuan baik secara langsung maupun tidak langsung dalam
menyelesaikan Tugas Akhir ini.
Penulis menyadari bahwa tugas akhir ini masih jauh dari sempurna. Oleh
karena itu, penulis dengan rendah hati menerima kritik dan saran dari pembaca.
Jakarta, 10 Agustus 2015
Penulis
v
DAFTAR ISI
ABSTRAK iv
KATA PENGANTAR v
DAFTAR ISI vii
DAFTAR GAMBAR x
DAFTAR TABEL xii
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Tujuan 2
1.3 Pembatasan Masalah 2
1.4 Sistematika Penulisan 2
BAB 2 TEORI DASAR 4
2.1 Prime Mover 4
2.2 Generator 5
2.3 Droop dan Isochronous Speed Control 7
2.4 Pengaturan Frekuensi dan Daya Aktif 9
2.5 Sensor kecepatan 11
2.6 Mikrokontroler ATMega16 12
2.7 Load Sharing dan Sinkronisasi Generator 15
vi
2.8 Driver Motor 17
2.9 Mechanical Power Transmission 18
BAB 3 PERANCANGAN SISTEM 19
3.1 Konsep Perancangan 19
3.2 Perancangan Perangkat Keras 23
3.2.1 Perancangan rangkaian mikrokontroler ATMega16 23
3.2.2 Perancangan rangkaian Liquid Crystal Display (LCD) 24
3.2.3 Perancangan rangkaian keypad matrix 25
3.2.4 Perancangan rangkaian sensor kecepatan 25
3.2.5 Perancangan rangkaian driver motor 26
3.2.6 Perancangan rangkaian Volt Ampere meter 28
3.2.7 Perancangan rangkaian electrical load 29
3.2.8 Perancangan rangkaian mikrokontroler synchronizing switch 29
3.2.9 Perancangan rangkaian circuit breaker 30
3.2.10 Perancangan rangkaian voltage regulator 31
3.3 Perancangan Perangkat Lunak 31
BAB 4 PENGUJIAN SISTEM 35
4.1 Pengujian Perangkat Keras 35
4.1.1 Pengujian rangkaian LCD 35
4.1.2 Pengujian rangkaian sensor infra merah 36
vii
4.2 Pengujian Keseluruhan Sistem 37
4.2.1 Pengujian load sharing saat generator droop bekerja terlebih
dahulu 40
4.2.2 Pengujian load sharing saat generator isochronous bekerja
terlebih dahulu 42
BAB 5 SIMPULAN 45
DAFTAR PUSTAKA 46
LAMPIRAN A LISTING PROGRAM MIKROKONTROLER A-1
LAMPIRAN B LISTING PROGRAM SYNCHRONIZING SWITCH B-1
LAMPIRAN C RANGKAIAN KESELURUHAN C-1
LAMPIRAN D DATA SHEET D-1
viii
DAFTAR GAMBAR
Gambar 2. 1 Cara kerja turbin uap sederhana 5
Gambar 2. 2 Bagian – bagian generator DC 6
Gambar 2. 3 Cara kerja generator DC 6
Gambar 2. 4 Diagram blok generator set 7
Gambar 2. 5 Karateristik mode droop 8
Gambar 2. 6 Karateristik mode isochronous 9
Gambar 2. 7 Cara kerja sensor optocoupler 11
Gambar 2. 8 Konfigurasi kaki mikrokontroler ATMega16 13
Gambar 2. 9 Prinsip kerja motor DC 17
Gambar 2.10 Komponen transmisi sincromesh 18
Gambar 3. 1 Diagram blok sistem 19
Gambar 3. 2 Diagram blok droop speed control 21
Gambar 3. 3 Proses pengaturan dengan generator secara paralel 22
Gambar 3. 4 Rangkaian dan konfigurasi mikrokontroler ATMega16 24
Gambar 3. 5 Rangkaian LCD 24
Gambar 3. 6 Rangkaian keypad matrix 25
Gambar 3. 7 Rangkaian sensor inframerah 26
Gambar 3. 8 Rangkaian driver motor 27
Gambar 3. 9 Rangkaian volt meter 28
Gambar 3.10Rangkaian ampere meter 28
Gambar 3.11 Rangkaian beban 29
ix
Gambar 3.12 Rangkaian circuit breaker 30
Gambar 3.13 Rangkaian regulator 30
Gambar 3.14 Diagram alir mikrokontroler synchronizing switch 31
Gambar 3.15 Diagram alir mikrokontroler droop speed control 32
Gambar 3.16Diagram alir mikrokontroler timer droop speed control 33
Gambar 4. 1 Hasil pengujian rangkaian LCD 36
Gambar 4. 2 Metode pengujian rangkaian sensor infra merah 36
Gambar 4. 3 Hasil pengujian sensor kecepatan 36
Gambar 4. 4 Tampilan awal droop speed control 37
Gambar 4. 5 Menu memasukan nilai RPM set point 38
Gambar 4. 6 Grafik tanggapan kecepatan generator droop terhadap beban 39
Gambar 4. 7 Grafik Tanggapan kedua kecepatan generator terhadap beban saat
di paralel droop speed control terlebih dahulu secara perhitungan 41
Gambar 4. 8 Grafik Tanggapan kedua kecepatan generator terhadap beban saat
di paralel droop speed control terlebih dahulu secara pengukuran 41
Gambar 4. 9 Grafik Tanggapan kedua kecepatan generator terhadap beban saat
di paralel isochronous speed control terlebih dahulu secara
perhitungan 43
Gambar 4.10Grafik Tanggapan kedua kecepatan generator terhadap beban saat
di paralel isochronous speed control terlebih dahulu secara
pengukuran 44
x
DAFTAR TABEL
Tabel 2.1 Fungsi khusus port B 14
Tabel 2.2 Fungsi khusus port C 14
Tabel 2.3 Fungsi khusus port D 15
Tabel 4.1 Tanggapan kecepatan generator droop speed control terhadap beban 39
Tabel 4.2 Data tanggapan kedua generator saat bekerja secara paralel droop
speed control terlebih dahulu 40
Tabel 4.3 Data tanggapan kedua generator saat bekerja secara paralel
isochronous speed control terlebih dahulu 43
xi
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Kebutuhan listrik untuk melakukan suatu proses produksi sangat besar
sehingga biasanya pabrik–pabrik di Indonesia mempunyai pembangkit listrik sendiri.
Pengaktifan suatu pembangkit listrik memerlukan pengaturan kecepatan pada prime
mover. Bila pengaturan kecepatan prime mover dilakukan secara manual
membutuhkan waktu kurang lebih 70 jam seperti yang dilakukan perusahaan
Petrokimia. Penggunaan daya dalam suatu pabrik tidak selalu konstan. Jika beban
bertambah maka dibutuhkan suplai energi cadangan agar proses produksi tetap
berjalan. Penambahan beban juga mengakibatkan kecepatan prime mover menurun.
Untuk mempertahankan kecepatan prime mover maka suplai bahan bakar harus
ditambah dengan membuka valve untuk bahan bakar. Seberapa besar valve dibuka
perlu diperhatikan karena bukaan valve yang terlalu besar menyebabkan overspeed.
Adjustment valve yang tepat dibutuhkan untuk mengatur kecepatan turbin tetap di
dalam performance parameter speed, yaitu sekitar 2500 – 3000 rpm.Setiap
permasalahan yang terjadi pada pembangkit listrik dapat menyebabkan black out
sehingga pabrik mengalami kerugian yang sangat besar.
Untuk menyelesaikan masalah pada pembangkit listrik, maka dirancanglah
pengaturan kecepatan prime mover dengan mode droop dan mode isochronous.
Kedua macam speed control ini diaplikasikan dalam operasi load sharing untuk
mengatasi beban yang berlebih dan dibuat dalam bentuk simulasi. Penelitian ini
1
2
dikerjakan oleh dua orang peneliti. Pada tugas akhir ini dibahas lebih lanjut
mengenai droop speed control sedangkan pembahasan isochronous speed control
dikerjakan oleh peneliti kedua.
1.2 Tujuan
Tujuan dari penelitian ini adalah merancang simulasi droop speed control
dalam operasi load sharing pada pembangkit listrik.
1.3 Pembatasan Masalah
Permasalahan yang ada pada penelitian ini dibatasi pada hal-hal berikut:
1. Generator DC 24 volt disimulasikan sebagai pembangkit listrik.
2. Motor DC disimulasikan sebagai prime mover.
1.4 Sistematika Penulisan
Penyusunan sistematika ini dimaksudkan untuk mempermudah penyampaian
informasi berdasarkan aturan dan urutan dari penelitian yang dilakukan. Adapun
sistematika penulisan tugas akhir ini adalah sebagai berikut:
1. Pendahuluan, berisi latar belakang, tujuan, pembatasan masalah, dan
sistematika pembahasan tugas akhir.
2. Teori Dasar, berisi teori dasar prime mover, generator, speed control,
penjelasan komponen-komponen digunakan dalam pembuatan tugas akhir
ini.
3. Perancangan Sistem yang membahas tentang konsep perancangan, baik
perancangan perangkat keras maupun perancangan perangkat lunak.
3
4. Pengujian Sistem yang membahas tentang penerapan hasil rancangan,
pengujian dari sistem yang telah dibuat dan analisis hasil pengujian.
5. Simpulan dan Saran yang didapat dari hasil pengujian yang telah
dilakukan.
Buku tugas akhir ini dilengkapi pula dengan daftar pustaka dan lampiran
berupa listing program keseluruhan dan datasheet dari komponen yang digunakan.
BAB 2
TEORI DASAR
Pada bab ini dibahas mengenai teori dan komponen utama yang
mendukung perancangan dan pembuatan tugas akhir ini.
2.5 Prime Mover
Prime mover atau penggerak mula merupakan mesin yang berfungsi
menghasilkan energi mekanis untuk memutar rotor generator. Contoh prime mover
antara lain turbin dan motor pembakaran dalam. Pada mesin pembakaran dalam
seperti mesin diesel terjadi eksitasi sendiri, karena proses kerjanya berdasarkan
pencampuran udara murni yang dikompresikan di dalam silinder hingga mencapai
tekanan ± 30 atm. Mesin diesel termasuk mesin dengan pembakaran dalam atau
disebut dengan motor bakar jika ditinjau dari cara memperoleh energi termalnya
(energi panas). Untuk membangkitkan listrik, sebuah mesin diesel dihubungkan
dengan generator dalam satu poros (poros dari mesin diesel dikopel dengan poros
generator). Turbin biasanya menggunakan tenaga mekanik yang dihasilkan dari alam
seperti udara, panas, atau aliran air [2].
Cara kerja turbin uap seperti pada Gambar 2.1 terdiri dari empat proses:
1. Proses pengaliran air menuju ke pemanas.
2. Proses pemanasan air menjadi uap bertekanan.
4
5
3. Proses pengaliran uap bertekanan ke turbin. Pada proses ini, alat seperti
speed control dan sistem proteksi overspeed digunakan untuk mengontrol uap
yang masuk ke turbin.
4. Proses kondensasi yaitu uap air yang bertekanan menjadi uap air tidak
bertekanan dan didinginkan kembali menjadi air.
Gambar 2.1 Cara kerja turbin uap sederhana
Motor DC digunakan sebagai prime mover untuk memutar generator pada
simulasi ini. Turbin atau motor diesel yang biasa digunakan sebagai prime mover
pada umumnya.
2.6 Generator
Generator adalah suatu sistem yang menghasilkan tenaga listrik dari
masukan tenaga mekanik. Secara umum generator arus searah/DC tidak berbeda
dengan motor DC kecuali pada arah aliran daya. Berdasarkan cara memberikan fluks
pada kumparan medannya, generator DC dapat dikelompokkan menjadi dua, yaitu:
generator berpenguatan bebas dan generator berpenguatan sendiri. Generator DC
terdiri dua bagian, yaitu: stator, bagian mesin yang diam dan rotor, bagian mesin
6
yang berputar seperti yang ditunjukkan Gambar 2.2. Bagian stator terdiri dari rangka
motor, belitan stator, sikat arang, bearing dan terminal box sedangkan bagian rotor
terdiri dari komutator, belitan rotor, kipas rotor dan poros rotor.
Pada umumnya generator DC dibuat dengan menggunakan magnet permanen
dengan 4-kutub rotor, regulator tegangan, proteksi terhadap beban lebih, starter
eksitasi, penyearah, bearing dan rumah generator atau casis, serta bagian rotor.
Generator arus searah atau generator DC berfungsi mengubah tenaga
mekanis menjadi tenaga listrik arus searah. Jika rotor diputar dalam pengaruh medan
magnet, maka akan terjadi perpotongan medan magnet oleh lilitan kawat pada rotor.
Hal ini akan menimbulkan tegangan induksi. Rotor dari generator DC akan
menghasilkan tegangan induksi bolak-balik. Sikat-sikat tersebut adalah terminal
keluaran generator. Cara kerja generator DC dapat dilihat pada Gambar 2.3.
Gambar 2. 2 Bagian - bagian generator DC
7
Gambar 2. 3 Cara kerja generator DC
Sebuah komutator berfungsi sebagai penyearah tegangan AC. Generator DC
mempunyai sifat bahwa frekuensi listrik yang dihasilkannya sama dengan putaran
mekanis generator tersebut. Hubungan antara medan magnet pada mesin dengan
frekuensi listrik pada stator dapat dilihat pada Persamaan 2.1.
(2.1)
Keterangan:
f = frekuensi listrik (Hz)
ns = kecepatan putar medan magnet atau kecepatan putar rotor (rpm)
p = jumlah kutub
Generator DC digunakan sebagai pembangkit listrik pada simulasi ini
dikarenakan pada penelitian ini ingin melihat penurunan kecepatan putar generator
saat diberi beban, pada umunya digunakan generator sinkron.
2.7 Droop dan Isochronous Speed Control
Dalam pembangkit tenaga listrik, droop speed control adalah mode kontrol
kecepatan prime mover untuk mengatur generator sinkron saat terhubung ke jaringan
8
listrik. Mode ini memungkinkan generator sinkron untuk berjalan secara paralel,
sehingga beban yang dibagi antara beberapa generator sebanding dengan power
rating masing-masing generator. Diagram blok generator set ditunjukan pada
Gambar 2.4.
Gambar 2. 4 Diagram blok generator set
Mode droop dipilih karena lebih stabil dan beban yang dapat diterima oleh
droop bersifat fix load artinya beban yang diberikan kepada generator droop tidak
dapat berubah-ubah dari yang sudah ditentukan oleh pengguna. Frekuensi dari
generator akan berubah jika beban yang diberikan tidak sesuai dengan yang
ditentukan. Presentase dari droop dapat dihitung dengan menggunakan Persamaan
2.2.
(2.2)
Sebuah generator beban ketika tidak ada beban, frekuensinya berbeda
dengan kondisi berbeban. Frekuensi generator semakin berkurang saat beban
bertambah. Pada mode droop, frekuensi generator diatur agar ketika generator diberi
beban penuh, frekuensinya berkurang menjadi 50 Hz [12]. Dengan demikian jika
diperlukan bantuan generator lain dapat segera dihubung paralel karena frekuensi
sudah sama dengan frekuensi generator pada umumnya. Karakteristik mode droop
X 100%
9
dapat dilihat pada Gambar 2.5. Pada tugas akhir ini, jika dipilih mode droop 5 %
maka frekuensi generator mula-mula sebesar 52,5 Hz.
Gambar 2.5 Karakteristik mode droop
Isochronous speed control adalah sistem pengatur kecepatan yang secara
aktif menghitung kecepatan pada generator dan memastikan kecepatan sistem stabil
walaupun pembebanan terjadi. Pada saat kecepatan generator menurun yang
diakibatkan pembebanan, maka speed control akan memberikan sinyal agar
kecepatan prime mover dipercepat. Putaran yang terdapat pada penggerak utama
diatur dengan presisi dalam menanggapi perubahan beban yang cenderung
menyebabkan perubahan frekuensi (kecepatan). Setiap kenaikan beban akan
cenderung menyebabkan frekuensi berkurang, tetapi prime mover akan
mempertahankan frekuensi kembali ke setpoint awal. Bila terjadi penurunan beban
yang menyebabkan frekuensi meningkat maka putaran dengan cepat dikurangi. Oleh
karena itu isochronous speed control bertujuan untuk mempertahankan frekuensi
kembali ke setpoint awal agar tidak terjadi blackout ataupun overspeed.
Karaketeristik mode isochronous dapat dilihat pada Gambar 2.6.
10
Gambar 2.6 Karaketristik mode isochronous
2.8 Pengaturan Frekuensi dan Daya Aktif
Daya mempunyai hubungan erat dengan nilai frekuensi sistem.
Penyediaan daya harus disesuaikan dengan kebutuhan daya beban, penyesuaian ini
dilakukan dengan mengatur kopel penggerak generator, sehingga tidak ada
pemborosan penggunaan daya. Pada umumnya dalam sistem tenaga listrik digunakan
generator sinkron tiga fasa untuk pembangkit tenaga listrik yang utama. Oleh karena
itu, pengaturan frekuensi sistem tergantung pada karakteristik generator sinkron[7].
Hubungan antara kopel mekanik penggerak generator dengan perputaran generator
menurut Hukum Newton dapat dilihat pada persamaan (2.3).
(2.3)
Dimana :
Tpm = Torka penggerak prime mover (Nm)
Tg = Torka penggerak generator yang membebani prime mover (Nm)
H = Momen inersia dari prime mover (kg m2)
⍵ = Kecepatan sudut perputaran prime mover (rad/s)
Hubungan antara ⍵ dengan frekuensi ( f ) ditunjukkan pada Persamaan 2.4.
⍵=2 πf (2.4)
11
Sesuai dengan persamaan (2.2) maka dapat dinyatakan bahwa frekuensi akan
turun jika daya yang dibangkitkan tidak mencukupi kebutuhan beban dan sebaliknya
frekuensi akan naik jika kelebihan daya dalam sistem. Secara mekanis dapat
ditunjukkan dengan Persamaan 2.5 dan Persamaan 2.6.
Besar Torka beban bergantung pada besar arus yang mengalir pada beban,
besar fluks, dan konstanta mesin. Besar torka beban dapat dihitung dengan
persamaan 2.7.
T g=k .θ . I B (2.7)
Keterangan :
T g = Torka penggerak generator yang membebani prime mover (Nm)
k = konstanta mesin
IB = arus yang mengalir melalui beban (ampere)
θ = fluks (weber)
Beban bertambah akan mengakibatkan arus beban semakin besar yang akan
mengakibatkan torka beban semakin besar. Torka beban semakin besar akan
mengurangi kecepatan putar generator, akibatnya frekuensi juga berkurang. Daya
aktif adalah daya yang diberikan oleh generator ke beban. Besar daya aktif
tergantung dari kecepatan putar generator.
2.9 Sensor kecepatan
(2.5)
(2.6)
12
Optocoupler adalah suatu sensor cahaya yang terdiri dari 2 bagian
yaitu transmitter dan receiver. Rangkaian transmitter dibuat dari sebuah light
emitting diode (LED) inframerah sedangkan pada rangkaian receiver digunakan
photodiode. Pada saat cahaya dari LED terhalang oleh gear maka photodiode tidak
aktif sehingga akan dihasilkan tegangan keluaran berlogika 1 tetapi bila sinar infra
merah tidak terhalang maka tegangan keluaran rangkaian receiver berlogika 0..
Sinyal yang dihasilkan oleh sensor ini akan dikonversi menjadi kecepatan dengan
bantuan mikronkontroler yang dapat dinyatakan dalam Persamaan 2.6. Sensor
optopcoupler dapat dilihat pada Gambar 2.7.
RPM60
Gerigi Jumlah
detik 1 dalam Pulsa Jumlah MotorKecepatan
(2.6)
Gambar 2.7 Sensor optocoupler
2.10 Mikrokontroler ATMega16
ATMega16 merupakan seri mikrokontroler CMOS 8-bit buatan Atmel,
berbasis arsitektur reduced instruction set computer (RISC). Hampir semua
instruksi dieksekusi dalam satu siklus clock [1]. ATMega16 mempunyai 32
register general-purpose, timer/counter fleksibel dengan mode compare,
interrupt internal dan eksternal, serial UART, programmable watchdog
timer, mode power saving, ADC dan PWM internal. ATMega16 juga
13
mempunyai in-system programmable flash on-chip yang mengijinkan
memori program untuk diprogram ulang dalam sistem menggunakan hubungan
serial peripheral interface (SPI).
Secara garis besar mikrokontroler ATMega16 terdiri dari :
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi
16MHz.
2. Memiliki kapasitas flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM
1Kbyte.
3. Saluran port I/O 32 buah, yaitu port A, port B, port C, dan Ba port ndar D.
4. CPU yang terdiri dari 32 buah register.
5. User interupsi internal dan eksternal.
6. Port antarmuka SPI dan port USART sebagai komunikasi serial.
7. Fitur Peripheral
a. Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode
compare.
b. Satu buah 16-bit timer/counter dengan prescaler terpisah, mode
compare, dan mode capture.
c. Real time counter dengan osilator tersendiri.
d. Empat kanal PWM dan Antarmuka komparator analog.
e. Delapan kanal, 10 bit ADC.
f. Byte-oriented two-wire serial interface.
g. Watchdog timer dengan osilator internal.
14
Konfigurasi kaki ATMega16 dengan kemasan 40 kaki dual inline package
dapat (DIP) dilihat pada Gambar 2.8 dengan penjelasan fungsi dari masing-masing
kaki ATMega16 sebagai berikut :
1. VCC merupakan kaki yang berfungsi sebagai masukan catu daya.
2. GND merupakan kaki ground.
3. Port A (PA-PA7) merupakan port input/output dua arah dan pin masukan
ADC.
4. Port B (PB0-PB7) merupakan port input/output dua arah dan fungsi khusus,
seperti dapat dilihat pada Tabel 2.1.
Gambar 2.8 Konfigurasi kaki mikrokontroler ATMega16
Tabel 2.1 Fungsi khusus port B
PIN Fungsi khusus
PB7 SCK (SPI Bus Serial Clock)
PB6 MISO (SPI Bus Master Input/Slave Output)
PB5 MOSI (SPI Bus Master Output/Slave Input)
15
PB4 SS (SPI Slave Select Input)
PB3AIN1 (Analog Comparator Positive Input)OC0 (Timer/Counter0 Output Compare Match Output)
PB2AIN0(Analog Comparative Positive Input)INT2 (External Interrupt 2 Input)
PB1 TI (Timer/Counter)
PB0T0 T1 (Timer/Counter External Counter Input)XCK (USART External Clock Input/Output)
5. Port C (PC0-PC7) merupakan pin input/output dua arah dan pin fungsi
khusus, seperti dapat dilihat pada Tabel 2.2.
Tabel 2.2 Fungsi khusus port CPIN Fungsi khusus
PC7 TOSC2 (Timer Oscillator Pin2)
PC6 TOSC1 (Timer Oscillator Pin1)
PC5 TDI (JTAG Test Data In)
PC4 TDO (JTAG Test Data Out)
PC3 TMS (JTAG Test Mode Select)
PC2 TCK (JTAG Test Clock)
PC1 SDA (Two-wire Serial Bus Data Input/Output Line)
PC0 SCL (Two-wire Serial Bus Clock Line)
6. Port D (PD0-PD7) merupakan port input/output dua arah dan port fungsi
khusus, seperti dapat dilihat pada Tabel 2.3.
Tabel 2.3 Fungsi khusus port DPIN Fungsi Khusus
PD7 OC2 (Timer/Counter2 Output Compare Match Output)
PD6 ICP (Timer/Counter1 Output Capture Pin)
PD5 OC1A (Timer/Counter1 Output Compare A Match Output)
PD4 OC1B (Timer/Counter1 Output Compare B Match Output)
PD3 INT1 (External Interrupt 1 Input)
16
PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
PD0 RXD (USART Input Pin)
7. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler.
8. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan pin masukan tegangan untuk ADC.
10. AREF merupakan pin masukan tegangan referensi ADC.
2.11 Load Sharing dan Sinkronisasi Generator
Generator dapat diparalel dengan cara mengalirkan listrik ke beban dimulai
dengan mengaktifkan terlebih dahulu satu generator kemudian secara perlahan-lahan
beban dinaikkan sampai dengan kemampuan generator tersebut, selanjutnya aktifkan
lagi generator kedua. Kerja generator kedua paralel dengan generator pertama agar
dapat menanggung beban yang lebih besar lagi.
Load sharing adalah suatu cara pembagian beban secara merata yang
diterima oleh generator saat melakukan kerja paralel. Load sharing dapat dilakukan
setelah generator terhubung paralel. Berikut ini merupakan beberapa syarat yang
harus dipenuhi agar generator dapat melakukan kerja paralel:
1. Urutan fasa harus sama.
Urutan fasa harus sama clockwise (RST) atau counter clockwise (TRS).
2. Jumlah fasa dan sudut fasa harus sama.
Generator yang disusun paralel harus mempunyai sudut fasa yang berhimpit
sama atau 0 derajat.
17
3. Tegangan fasa harus sama.
Dengan adanya tegangan kerja yang sama diharapkan pada saat diparalel
dalam keadaan tanpa beban power factor nya sama dengan 1.
4. Frekuensi antar generator dan jala-jala (PLN) harus sama.
Frekuensi yang menjadi standar yaitu 50 Hz.
Jika semua syarat kerja paralel terpenuhi maka generator yang diparalel
sudah sinkron. Pada saat generator dijalankan ada kemungkinan beberapa parameter
berubah, oleh sebab itu penggunaan sinkronoskop sangat diperlukan.
Saat 2 generator diparalel dengan pengaturan kecepatan mode Droop dan
mode Isochronous, maka frekuensi droop akan mengikuti frekuensi dari
Isochronous. Generator droop akan mengambil beban maksimal yang sudah diatur,
sedangkan generator isochronous akan berubah-ubah sesuai dengan i dengan
perubahan beban yang terjadi.
Ukuran keandalan dan kualitas listrik secara umum ditentukan oleh beberapa
parameter salah satunya adalah frekuensi. Frekuensi adalah
jumlah siklus arus bolak-balik per detik. Beberapa negara termasuk Indonesia
menggunakan frekuensi listrik standar, sebesar 50 Hz dengan toleransi 0,6 Hz.
2.12 Driver Motor
Driver motor merupakan suatu rangkaian khusus yang memiliki fungsi untuk
mengatur arah ataupun kecepatan pada motor DC. Rangkaian driver motor
diperlukan karena pada umumnya suatu motor DC membutuhkan arus lebih dari 250
mA dan keluaran dari mikrokontroler ATMEGA 16 tidak bisa memberikan arus
lebih dari nilai tersebut. Rangkaian driver motor yang umum digunakan yaitu
18
H-Bridge. Berbentuk seperti huruf H yang memiliki perbedaan fungsi di setiap
sisinya. Prinsip sederhana dari pergerakan rangkaian driver motor DC dapat dilihat
pada Gambar 2.9.
Motor akan bergerak searah jarum jam apabila transistor T1 dan T4 aktif
sementara transistor kiri bawah dan kanan atas tidak aktif. Pada kondisi ini kutub
positif pada motor DC mendapatkan tegangan sumber dan kutub negatifnya
terhubung dengan ground sehingga ada perbedaan potensial yang menyebabkan
motor berputar. Untuk pergerakan berlawanan jarum jam, kebalikan dari seluruh
kondisi pada keadaan searah jarum jam.
Pulse Width Modulation (PWM) digunakan sebagai simulasi bahan bakar
pada pembangkit listrik umumnya. PWM dapat mengatur kecepatan pada motor DC
dengan mengatur duty cycle.
2.13 Mechanical Power Transmission
Mechanical Power Transmission atau transmisi energi mekanik adalah
komponen mesin yang berfungsi untuk mengubah kecepatan dan tenaga putar dari
prime mover ke generator, sehingga generator dapat menghasilkan keluaran
tegangan. Sincromesh berarti menyamakan. Salah satu proses transmisi yang
digunakan pada penelitian ini adalah transmisi tipe sincromesh. Transmisi jenis ini
Gambar 2.9 Prinsip kerja driver motor DC
19
dapat menyamakan kecepatan putar pulley prime mover dengan pulley generator.
Kelebihan transmisi sincromesh adalah kecepatan putar dari kedua pulley akan sama
besar. Komponen dari transmisi sinchromesh dapat dilihat pada Gambar 2.10.
Gambar 2.10 Komponen transmisi sincromesh
20
BAB 3
PERANCANGAN SISTEM
Bab ini menjelaskan proses perancangan dan realisasi sistem. Bab ini terdiri
dari konsep perancangan, perancangan perangkat keras dan perancangan perangkat
lunak.
3.1 Konsep Perancangan
Sistem pembangkit listrik sederhana ini terdiri dari tiga buah modul yaitu :
modul 1 berupa modul droop speed control, modul 2 berupa modul isochronous
speed control, dan modul 3 berupa modul synchronizing switch. Diagram blok sistem
pembangkit listrik sederhana dapat dilihat pada Gambar 3.1.
Gambar 3. 1 Diagram blok sistem
21
Pada diagram blok, kedua breaker berfungsi untuk menghubungkan output
dari generator dan beban. Switch pada breaker akan dikendalikan oleh synchronizing
switch. Pada saat pembangkit listrik disambungkan ke beban, putaran masing-masing
generator akan berkurang dan torsi beban akan bertambah sehingga menyebabkan
torsi generator lebih kecil dibandingkan dengan torsi beban. Sistem droop speed
control menggunakan mikrokontroler ATMega 16 sebagai unit pengatur kecepatan
yang menerima data dari sensor kecepatan yang diletakkan pada prime mover.
Mikrokontroler akan mengubah pulsa-pulsa listrik keluaran dari setiap sensor
kecepatan menjadi nilai kecepatan. Setelah itu, nilai kecepatan dihitung untuk
menjadi frekuensi dan dikirim ke mikrokontroler yang ada di modul synchronizing
switch. Nilai kecepatan disesuaikan dengan nilai kecepatan yang dimasukan pertama
kali oleh pengguna. Jika kecepatan yang diukur lebih kecil daripada kecepatan yang
diinginkan oleh pengguna, maka speed control akan menaikan nilai pulse width
modulation (PWM) sehingga kecepatan prime mover meningkat, sebaliknya jika
kecepatan yang diukur lebih besar daripada kecepatan yang diinginkan oleh
pengguna, maka speed control akan menurunkan nilai PWM sehingga kecepatan
prime mover menurun. Output dari generator akan dihubungkan dengan voltage
regulator yang disambung ke breaker. Selanjutnya breaker dihubungkan dengan
beban jika frekuensi dan output tegangan sudah sesuai dengan yang diminta oleh
pengguna. Gambar generator paralel dapat dilihat pada Gambar 3.2.
22
Gambar 3. 2 Proses penghubungan dua generator secara paralel
Mikrokontroler droop speed control membaca masukan dari sensor kecepatan
kemudian diubah menjadi nilai frekuensi. Didalam mikrokontroler dilakukan
perbandingan antara kecepatan yang dideteksi sensor kecepatan dengan kecepatan
awal sistem yang dimasukkan pengguna. Kecepatan kerja speed control droop diatur
5 % lebih tinggi daripada kecepatan kerja sistem. Jika kecepatan yang dideteksi
lebih kecil daripada kecepatan kerja sistem, maka speed control akan menaikan nilai
PWM sehingga kecepatan prime mover meningkat, sebaliknya jika kecepatan yang
dideteksi lebih besar daripada kecepatan kerja sistem, maka speed control akan
menurunkan nilai PWM sehingga kecepatan prime mover menurun. Mikrontroler
mengirimkan sinyal PWM yang diinginkan ke driver motor DC. Mikrokontroler
droop speed control mengirimkan frekuensi ke mikrokontroler synchronizing switch
sehingga synchronizing switch dapat membandingkan frekuensi generator droop dan
generator isochronous. Pada mode stand alone, jika generator droop speed control
sudah berputar mencapai kecepatan awal tanpa beban maka synchronizing switch
akan mengirimkan sinyal kepada circuit breaker untuk menghubungkan generator
23
dengan beban. Jika kecepatan kerja generator droop berkurang sampai di bawah
kecepatan set point, maka synchronizing switchmembuka switch circuit breaker
sehingga generator droop dilepas dari beban. Saat generator droop sudah bekerja dan
generator isochronous sudah mulai berjalan maka mikrokontroler synchronizing
switch akan membandingkan kedua frekuensi speed controller, jika frekuensi sudah
sama maka isochronous speed control akan mengirimkan data ke synchronizing
switch untuk melakukan sikronisasi dengan generator droop speed control. Bila
kedua speed control sudah memenuhi syarat, maka synchronizing switch akan
menutup breaker sehingga arus listrik dapat mengalir ke beban. Sinkronisasi
generator akan berlangsung pada synchronizing switch. Synchronizing switch akan
menerima data yang berasal dari droop speed control dan isochronous speed control.
Gambar 3.3 Diagram blok droop speed control
Pada diagram blok Gambar 3.3 terdapat satu buah sensor kecepatan yang
merupakan masukan pada mikrokontroler dan keluarannya dihubungkan ke Liquid
Crystal Display (LCD) untuk menampilkan nilai kecepatan dan frekuensi dari motor.
Sebagai pengganti prime mover digunakan motor DC. Melalui keypad matrix
dimasukkan nilai kecepatan awal yang menjadi kecepatan kerja sistem ke
24
mikrokontroler. Selain itu kepada mikrokontroler juga dimasukkan nilai droop yang
diinginkan.
3.2 Perancangan Perangkat Keras
2.2.1 Perancangan rangkaian mikrokontroler ATMega16
Rangkaian mikrokontroler berfungsi sebagai pemroses data dari masukan
sensor kecepatan dan keypad matrix. Data dari sensor kecepatan akan dihitung
menggunakan Persamaan 2.6, lalu digunakan untuk menentukan besar Pulse Width
Modulation yang akan diberikan kepada driver motor untuk mempercepat dan
memperlambat kecepatan prime mover. Rangkaian mikrokontroler dapat dilihat pada
Gambar 3.4. Penggunaan beberapa port mikrokontroler sebagai berikut :
1. Port A dihubungkan ke LCD
2. Port B dihubungkan ke keypad matrix
3. Port C dihubungkan ke Mikrokontroler synchronizing switch
4. Kaki PD.0 dihubungkan dengan sensor kecepatan
5. Kaki PD.1 dihubungkan ke emergency stop
6. Kaki PD.5 dihubungkan ke PWM driver motor
7. Kaki PD.6 dan PD.7 dihubungkan ke masukan driver motor
25
Gambar 3. 4 Rangkaian dan konfigurasi mikrokontroler ATMega16
2.2.2 Perancangan rangkaian Liquid Crystal Display (LCD)
LCD digunakan sebagai tampilan untuk memasukan nilai dari kecepatan set
point, droop set point, kecepatan kerja, nilai RPM dan frekuensi dari setiap sensor.
LCD diletakan di port PA.0-PA.7. Rangkaian LCD dapat dilihat pada Gambar 3.5.
Gambar 3.5 Rangkaian LCD
26
2.2.3 Perancangan rangkaian keypad matrix
Keypad matrix berfungsi untuk memasukan kecepatan set point, droop set
point. Selain memasukan nilai, keypad matrix juga berguna untuk menjalankan dan
menghentikan proses. Keypad matrix dihubungkan ke kaki PB.0-PB.7. Rangkaian
keypad matrix dapat dilihat pada Gambar 3.6. Tombol # digunakan jika ingin
mengkoreksi data yang sudah dimasukkan sedangkan tombol * menyatakan proses
pemasukan data sudah selesai.
Gambar 3. 6 Rangkaian keypad matrix
2.2.4 Perancangan rangkaian sensor kecepatan
Sensor kecepatan mengunakan photodiode sebagai penerima dan sebagai
pemancar digunakan LED infra merah. Jika sinar infra merah yang dipancarkan
terhalang oleh suatu benda makaphotodiode memiliki resistansi yang besar sehingga
menghasilkan logika 1. Sebaliknya jika sinar infra merah yang dipancarkan tidak
terhalang oleh suatu benda maka photodiode memiliki resistansi yang kecil dan
menghasilkan logika 0. Sensor kecepatan dihubungkan pada kakiPD.0. Gambar
rangkaian sensor kecepatan dapat dilihat pada Gambar 3.7.
27
Gambar 3.7 Rangkaian sensor inframerah
2.2.5 Perancangan rangkaian driver motor
Rangkaian driver motor DC menggunakan H-bridge yang cara kerjanya dapat
dijelaskan sebagai berikut :
Apabila ingin menggerakan motor DC secara clock wise maka kaki A diberi logika
“1” dan kaki B diberi logika “0” sehingga Q1 aktif dan sumber tegangan untuk motor
DC mengalir melalui Q1 melewati motor DC dan menuju ground melalui Q3.
Kemudian untuk menggerakan motor DC secara counter clock wise maka kaki A
diberi logika “0” dan kaki B diberi logika “1” sehingga transistor yang aktif adalah
Q2 dan Q4. Kecepatan motor DC dapat diubah dengan mengatur nilai duty cycle pulsa
yang berlogika 1 yang dimasukkan ke kaki A atau kaki B.
28
Gambar 3. 8 Rangkaian driver motor
Proses driver motor DC menggunakan rangkaian dirver motor DC H-bridge
diatas dimulai pada saat pin A atau pin B diberikan logika “1” atau “0”. Apabila
ingin menggerakan motor DC secara searah jarum jam maka kaki A diberi logika “1”
dan jalur kaki B diberi logika “0” sehingga Q1 aktif dan sumber tegangan untuk
motor DC mengalir melalui Q1 melewati motor DC dan menuju ground melalui Q3.
Kemudian untuk menggerakan motor DC secara berlawanan dengan arah jarum jam
maka kaki A diberi logika “0” dan kaki B diberi logika “1” sehingga transistor yang
aktif adalah Q2 dan Q4 sehingga motor DC mendapat sumber tegangan dari Q2
melewati motor DC menuju ground melalui Q4. Untuk dapat mengatur kecepatan
29
motor DC maka logika “1” pada kaki A atau kaki B diberi pulsa Pulse Width
Modulation (PWM) yang dapat diatur nilai duty cycle-nya.
2.2.6 Perancangan rangkaian Volt Ampere meter
Rangkaian volt ampere meter berfungsi untuk mengukur tegangan dan arus
yang dihasilkan oleh generator. Volt ampere meter akan diletakkan pada output dari
generator. Rangkaian ini membutuhkan tegangan 5 V untuk bekerja yang diambil
dari tegangan mikrokontroler ATmega16. Kami menggunakan modul YB27VA
dengan kemampuan mengukur tegangan 0-30 volt dan 0-10 ampere. Gambar volt
meter dapat dilihat pada Gambar 3.9. Gambar ampere meter dapat dilihat pada
Gambar 3.10.
Gambar 3.9 Rangkaian volt meter
30
Gambar 3.10 Rangkaian ampere meter
2.2.7 Perancangan rangkaian electrical load
Rangkaian electrical load berfungsi sebagai beban yang akan menarik daya
dari output generator. Electrical load ini akan terdiri dari switch dan motor sebagai
beban. Rangkaian electrical load dapat dilihat pada Gambar 3.11.
Gambar 3.11 Rangkaian beban
2.2.8 Perancangan rangkaian mikrokontroler synchronizing switch
Mikrokontroler synchronizing switch berfungsi sebagai pengatur untuk
menghubungkan dua generator secara paralel. Mikrokontroler synchronizing switch
31
memeriksa nilai frekuensi dari generator mode droop dan generator mode
isochronous. Jika nilai frekuensi kedua generator sama besar yaitu 50 Hz, maka
synchronizing switch akan menyambungkan kedua generator tersebut ke beban
melalui circuit breaker tetapi bila frekuensi salah satu generator tidak sama dengan
50 Hz maka hanya satu generator yang dapat disambung ke beban. Terlebih lagi jika
frekuensi kedua generator kurang dari 50 Hz maka kedua generator tidak dapat
disambung ke beban. Pada rangkaian synchronizing switch terdapat emergency stop
yang berfungsi melepas hubungan kedua generator ke beban dan menghentikan
prime mover. Emergency stop digunakan saat penggunaingin menghentikan sistem.
Diagram blok synchronizing switch dapat dilihat pada Gambar 3.12.
Gambar 3.12 Diagram blok synchronizing switch
2.2.9 Perancangan rangkaian circuit breaker
Rangkaian circuit breaker ini berisi relay yang digunakan sebagai
switchpenghubung antara generator dengan rangkaian beban jika mendapat masukan
32
dari rangkaian synchronizing switch. Rangkaian circuit breaker dapat dilihat pada
Gambar 3.13.
Gambar 3.13 Rangkaian circuit breaker
2.2.10 Perancangan rangkaian regulator tegangan
Rangkaian regulator berfungsi untuk menstabilkan output yang akan masuk
ke beban sehingga nilainya tetap. Rangkaian regulator ini menggunakan IC LM 337.
Rangkaian regulator tegangan dapat dilihat pada Gambar 3.13.
Gambar 3.14 Rangkaian regulator tegangan
3.3 Perancangan Perangkat Lunak
2.3.1 Perancangan perangkat lunak mikrokontroler
33
Pembuatan perangkat lunak sistem pada mikrokontroler menggunakan IDE
Codevision AVR versi 2.05.0. Pada perancangan ini terdapat dua mikrokontroler
yang berlaku sebagai droop speed control dan sebagai synchronizing switch.
Diagram alir synchronizing switch ditunjukan oleh Gambar 3.14 sedangkan diagram
alir droop speed control ditunjukan olah Gambar 3.15.
Mikrokontroler droop speed control menjalankan dua proses yaitu proses
normal dan proses counter. Proses counter berfungsi untuk menghitung kecepatan
putar dan frekuensi sehingga diperbaharui setiap satu detik dan menampilkan pada
LCD. Diagram alir counter dapat dilihat pada Gambar 3.16.
34
Gambar 3.15 Diagram alir mikrokontroler synchronizing switch
35
Gambar 3.16 Diagram alir mikrokontroler droop speed control
T
T
T
T
Y
Y
Y
36
Gambar 3.17 Diagram alir timer mikrokontroler droop speed control
37
BAB 4
PENGUJIAN SISTEM
Bab ini membahas mengenai pengujian dari sistem yang telah dirancang.
Pengujian dilakukan pada perangkat keras, perangkat lunak, serta keseluruhan
sistem.
4.4 Pengujian Perangkat Keras
2.4.1 Pengujian rangkaian LCD
Pengujian LCD dilakukan dengan menghubungkan kaki-kaki pada LCD ke
kaki-kaki pada mikrokontroler ATMega16, yaitu dari port PC.0-PC.7. Pengujian
dilakukan dengan menggunakan program yang telah diisikan ke mikrokontroler,
sehingga LCD dapat menampilkan karakter sesuai dengan program yang diinginkan.
Program uji yang digunakan adalah sebagai berikut :
lcd_clear(); lcd_gotoxy(0,0); lcd_puts("Imanuell"); lcd_gotoxy(0,1); lcd_puts("2011042007");
setelah rangkaian mikrokontroler dan rangkaian LCD sudah dihubungkan,
maka hasil tampilan dari LCD adalah “Imanuell” dan “2011042007” seperti pada
Gambar 4.1. Tampilan tersebut menunjukan bahwa LCD dapat berkerja dengan baik.
38
Gambar 4.1 Hasil pengujian rangkaian LCD
2.4.2 Pengujian rangkaian sensor inframerah
Pengujian rangkaian sensor menggunakan metode yang dapat dilihat pada Gambar
4.2.
Gambar 4.2 Metode pengujian rangkaian sensor inframerah
Hasil dari pengujia dari metode tersebut dapat dilihat pada Gambar 4.3.
39
Gambar 4.3 Hasil pengujian sensor kecepatan
4.5 Pengujian Keseluruhan Sistem
Semua sensor dan rangkaian yang telah diuji dirangkai menjadi satu dengan
mikrokontroler sebagai pemproses data, setelah itu dilakukan pengujian keseluruhan
sistem meliputi pengujian pembacaan input keypad matrix, konversi dari input sensor
menjadi RPM, mikrokontroler pengatur utama dan trip circuit breaker. Setelah
semua pengujian dilakukan, diketahui bahwa keseluruhan sistem berjalan sesuai
dengan perancangan.
Sistem aktif pada saat pertama kali, LCD akan menampilkan jenis speed
control. Tampilan LCD saat dinyalakan dapat dilihat pada Gambar 4.4.
Gambar 4.4 Tampilan awal droop speed control
Setelah itu ditampilkan menu kembali untuk memasukan nilai kecepatan yang
diinginkan pengguna. Pengguna dapat memasukan 3 digit angka melalui keypad
matriks. Jika terjadi kesalahan dalam memasukan angka maka dapat menekan tombol
# sehingga LCD akan dibersihkan kembali seperti awal. Penekanan tombol *
menandakan proses pemasukan data sudah selesai. Tampilan menu memasukan nilai
40
kecepatan yang dituliskan dengan RPM pada layar LCD dapat dilihat pada Gambar
4.5.
Gambar 4.5 Menu memasukan nilai RPM set point
Langkah selanjutnya adalah memasukkan nilai persentase droop. Jika
pemasukan data telah selesai, maka mikrokontroler akan menjalankan motor sesuai
dengan kecepatan yang ditentukan. Kecepatan putaran generator akan ditentukan
oleh kecepatan motor yang memutarnya Dalam hal ini untuk mode droop diatur
kecepatan putar generator yang nilainya dihitung menggunakan persamaan 4.1.
(4.1)
Kecepatan motor terus dipantau oleh sensor kecepatan dan dikirimkan kembali
ke mikrokontroler. Ketika generator dihubung ke beban maka kecepatan generator
akan berkurang. Frekuensi generator droop berkurang juga pada saat kecepatan
menurun. Penurunan kecepatan generator dapat dilihat pada Tabel 4.1. Grafik
penurunan kecepatan generator terhadap beban resistif bersifat linier dan dapat
dilihat pada Gambar 4.6.
41
Tabel 4.1 Tanggapan kecepatan generator droop speed control terhadap beban
0 10 20 30 40 50 60 70 80 90 1000.00
5.00
10.00
15.00
20.00
25.00
30.00
35.00
40.00 36.1732.00
28.6725.67
21.5017.83 16.50
14.33 13.1710.83
7.83
Pengujian generator secara stand alone
Beban (%)
Frek
uens
i (Hz
)
Gambar 4.6 Grafik tanggapan kecepatan generator droop terhadap beban
Pada saat beban diberikan maka kecepatan generator mode droop menurun.
Pada saat kecepatan mendekati nilai kecepatan yang dimasukkan pengguna, maka
modul droop speed control akan mengirimkan sinyal ke mikrokontroler pengatur
utama untuk mempersiapkan load sharing dengan modul isochronous speed control.
Load sharing dapat dilakukan jika frekuensi generator mode droop sama dengan
frekuensi generator isochronous.
Pengujian load sharing dilakukan sebagai berikut :
42
1. Saat generator droop bekerja terlebih dahulu kemudian generator
isochronous
2. Saat generator isochronous bekerja terlebih dahulu kemudian generator
droop
2.5.1 Pengujian load sharing saat generator droop bekerja terlebih dahulu
Data kecepatan generator droop dan isochronous ketika load sharing terjadi
dapat dilihat pada Tabel 4.2. Grafik perhitungan kecepatan putar generator droop dan
isochronous speed control dapat dilihat pada Gambar 4.7. Grafik pengukuran
kecepatan putar generator droop dan isochronous speed control dapat dilihat pada
Gambar 4.8.
Tabel 4.2 Data tanggapan kedua generator saat bekerja secara paralel droop speed
control terlebih dahulu
43
Gambar 4.7 Grafik Tanggapan kedua kecepatan generator terhadap beban saat di
paralel droop speed control terlebih dahulu secara perhitungan
Gambar 4.8 Grafik Tanggapan kedua kecepatan generator terhadap beban saat di
paralel droop speed control terlebih dahulu secara pengukuran
44
Kecepatan generator droop pada saat awal akan turun terus sesuai dengan
grafik persentase droop pada grafik karakteristik droop pada Gambar 4.7 Kecepatan
generator droop bertahan di 1260 rpm karena semua beban akan ditanggung oleh
isochronous speed control. Load sharing antara droop speed control dan
isochronous speed control dapat terlihat dari hasil frekuensi yang dipertahankan di
1260 rpm.
Pada saat frekuensi salah satu generator turun dari frekuensi setpoint maka
mikrokontroler pengatur utama akan memutuskan tegangan ke circuit breaker.
Circuit breaker akan kembali diberikan tegangan oleh mikrokontroler pengatur
utama saat kedua generator sudah mempunyai frekuensi yang sama.
2.5.2 Pengujian load sharing saat generator isochronous bekerja terlebih
dahulu
Generator isochronous akan menanggung beban terlebih dahulu. Setelah itu
generator droop akan diparalel dengan generator isochronous sehingga kecepatan
generator droop akan mengikuti kecepatan generator isochronous. Lalu kedua
generator akan dihubungkan ke beban. Data hasil paralel generator dapat dilihat pada
Tabel 4.3 dan grafik kecepatan generator isochronous saat paralel secara perhitungan
dapat dilihat pada Gambar 4.9. Grafik pengukuran kecepatan putar generator droop
dan isochronous speed control dapat dilihat pada Gambar 4.10.
45
Tabel 4.3 Tabel tanggapan kedua generator saat bekerja secara paralel isochronous
speed control terlebih dahulu
Gambar 4.9 Grafik Tanggapan kedua kecepatan generator terhadap beban saat di
paralel isochronous speed control terlebih dahulu secara perhitungan
46
Gambar 4.10 Grafik Tanggapan kedua kecepatan generator terhadap beban saat di
paralel isochronous speed control terlebih dahulu secara pengukuran
47
BAB 5
SIMPULAN
Berdasarkan hasil pengujian, maka dapat ditarik simpulan sebagai berikut :
1. Sistem droop speed control berjalan sesuai perancangan.
2. Droop speed control dapat membatasi dan menyesuaikan jumlah putaran
pada motor sesuai dengan kecepatan yang ditentukan pada saat diberikan
penambahan beban pada generator.
3. Droop speed control dapat melakukan load sharing dengan isochronous
speed control.
DAFTAR PUSTAKA
[1] Andrianto, H. 2008.Pemrograman Mikrokontroler AVR ATMega16
menggunakanbahasa C. Bandung: Penerbit Informatika.
[2] Bloch, H. P. 1996.A Practical Guide to Steam Turbine Technology. New
York: McGraw Hill Professional.
[3] Chapman, S. J. 2005. Electric Machinery Fundamentals. New York: McGraw
Hill.
[4] Fitzgerald, A, E. Kingsley, C. Umas, S, D. 2013. Electrical Machinery Sixth
Edition. Singapore: McGraw Hill.
[5] Junaidi. 2012. Minimum Sistem ATMega16, (Online),
(http://staff.unila.ac.id/junaidi/2012/12/23/minimum-sistem-atmega16/,
diakses tanggal 11 September 2014).
[6] Http://id.wikipedia.org/wiki/Turbin_uap. 2014. Turbin Uap, (Online),
(http://id.wikipedia.org/wiki/Turbin_uap, diakses 26 September 2014).
[7] Hubert, C, I. 2002. Electric Machines: Theory, Operation, Applications,
Adjustment, and Control. New york: Prentice Hall.
[8] Husain, Z. 1984. Steam Turbines : Theory and Design. New York: McGraw-
Hill.
48
49
[9] Saputra, J.2014. Woodward Turbine & Compressor Control. Makalah
disajikan pada seminar Woodward , PM Control Systems, Jakarta, 11-12 Juni.
[10] Shlyakhin, P. 2005. Steam Turbines : Theory and Design. Honolulu:
University press of the Pacific.
[11] Solichin, A. 2003. Pemrograman Bahasa C dengan Turbo C, (Online),
(http://achmatim.net/2009/12/10/buku-gratis-pemrograman-bahasa-c-dengan-
turbo-c/ , diakses 16 Oktober 2014).
[12] Wardana, L. 2006. Belajar Sendiri Mikrokontroler AVR Seri ATMega16,
Simulasi Hardware dan Aplikasi. Yogyakarta: Andi.
LAMPIRAN A
LISTING PROGRAM MIKROKONTROLER
A-1
A-2
/*******************************************************This program was created by theCodeWizardAVR V3.12 AdvancedAutomatic Program Generator© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com
Project : DROOP SCVersion : Date : 7/1/2015Author : Cristian ImanuellCompany : 2011042007Comments:
Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency: 12.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*******************************************************/
#include <mega16.h>#include <delay.h>#include <stdlib.h>#include <alcd.h>#include <stdio.h>
#define PengaturUtama PORTC#define sensor PIND.0#define ebreak PIND.1#define pwma OCR1A#define motor PIND.7// Declare your global variables here
char buff[17];char key;int km;int d=0,e=0,f=0;int b=0,rpmsp=0,freksp=0,rpmkm[4]={0,0,0,0};int c=0,dsp=0,dkm[4]={0,0,0,0};int timerrpm;long int hitung,pulsa,a,rpm;int rpmawal,frekawal;long int frek;
A-3
void pengubah(){ rpm=pulsa*60/6; frek=rpm/60; }
// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void){// Place your code here
}// Timer 0 overflow interrupt service routineinterrupt [TIM0_OVF] void timer0_ovf_isr(void){// Reinitialize Timer 0 valueTCNT0=0x44;// Place your code here if(sensor == 1) { hitung=1; } if(sensor == 0) { if(hitung==1) { pulsa++; hitung=0; } }a++; if(a==1000) { pengubah(); pulsa=0; if(timerrpm==1) { lcd_gotoxy(0,0); lcd_putsf("rpm: "); sprintf(buff,"%d",rpm); lcd_puts(buff); lcd_gotoxy(0,1);
A-4
lcd_putsf("frek: "); sprintf(buff,"%d",frek); lcd_puts(buff); } a=0; }}
unsigned char keypad() {
PORTB=0b11111110; if(PINB.4==0) return('A'); if(PINB.5==0) return('5'); if(PINB.6==0) return('8'); if(PINB.7==0) return('0');
PORTB=0b11111101; if(PINB.4==0) return('2'); if(PINB.5==0) return('4'); if(PINB.6==0) return('7'); if(PINB.7==0) return('*'); PORTB=0b11111011; if(PINB.4==0) return('1'); if(PINB.5==0) return('6'); if(PINB.6==0) return('9'); if(PINB.7==0) return('#'); PORTB=0b11110111; if(PINB.4==0) return('3'); if(PINB.5==0) return('B'); if(PINB.6==0) return('C'); if(PINB.7==0) return('D'); }
void cek_input(void) { km=100; delay_ms(100); key=keypad(); switch(key) { case '0': km=0;
A-5
break; case '1': km=1; break; case '2': km=2; break;
case '3': km=3; break; case '4': km=4; break; case '5': km=5; break; case '6': km=6; break; case '7': km=7; break; case '8': km=8; break; case '9': km=9; break; case 'A': km=10; break; case 'B': km=11; break; case 'C':
A-6
km=12; break;
case 'D': km=13; break; case '*': km=14; break; case '#': km=15; break; } }
void menurpm(){ d=0; while(km!=14) { lcd_gotoxy(0,0); lcd_putsf("rpm setpoint: "); cek_input(); delay_ms(100); if(km<10 && km>-1) { rpmkm[b]=km; b++; } if(km==15) { b=0; lcd_gotoxy(0,0); lcd_clear(); } if(km<16) { lcd_gotoxy(d,1); sprintf(buff,"%d",rpmkm[b-1]); lcd_puts(buff); d++;
A-7
} } rpmsp=rpmkm[0]*1000+rpmkm[1]*100+rpmkm[2]*10+rpmkm[3]; freksp=rpmsp/60; km=100; lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("rpm setpoint: "); lcd_gotoxy(0,1); sprintf(buff,"%d",rpmsp); lcd_puts(buff); delay_ms(1000);}
void menudroop(){ lcd_clear(); c=0; while(km!=14) { lcd_gotoxy(0,0); lcd_putsf("% droop : "); cek_input(); delay_ms(100); if(km<10 && km>-1) { dkm[c]=km; c++; } if(km==15) { c=0; lcd_gotoxy(0,0); lcd_clear(); } if(km<16) { lcd_gotoxy(e,1); sprintf(buff,"%d",rpmkm[c-1]); lcd_puts(buff); e++; }
A-8
} dsp=dkm[0]; km=100; timerrpm=1; lcd_gotoxy(0,0); lcd_putsf("droop : "); lcd_gotoxy(0,1); sprintf(buff,"%d",dsp); lcd_puts(buff); delay_ms(1000); }
void hitungdroop(){ frekawal=freksp+freksp*dsp/100; rpmawal=frekawal*60; }
void jalan(){ pwma=100; while(frek!=frekawal) { if(frek<frekawal) pwma++; if(frek>frekawal) pwma--; delay_ms(500); } f=1;}
void main(void){// Declare your local variables here
// Input/Output Ports initialization// Port A initialization// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
A-9
// Port B initialization// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);// State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D initialization// Function: Bit7=Out Bit6=In Bit5=Out Bit4=Out Bit3=In Bit2=In Bit1=Out Bit0=In DDRD=(1<<DDD7) | (0<<DDD6) | (1<<DDD5) | (1<<DDD4) | (0<<DDD3) | (0<<DDD2) | (1<<DDD1) | (0<<DDD0);// State: Bit7=0 Bit6=T Bit5=0 Bit4=0 Bit3=T Bit2=T Bit1=0 Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: 11.719 kHz// Mode: Normal top=0xFF// OC0 output: Disconnected// Timer Period: 9.984 msTCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (1<<CS02) | (0<<CS01) | (1<<CS00);TCNT0=0x8B;OCR0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: 12000.000 kHz// Mode: Fast PWM top=0x00FF// OC1A output: Non-Inverted PWM// OC1B output: Non-Inverted PWM// Noise Canceler: Off// Input Capture on Falling Edge
A-10
// Timer Period: 0.021333 ms// Output Pulse(s):// OC1A Period: 0.021333 ms Width: 0 us// OC1B Period: 0.021333 ms Width: 0 us// Timer1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10);TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer2 Stopped// Mode: Normal top=0xFF// OC2 output: DisconnectedASSR=0<<AS2;TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);TCNT2=0x00;OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (1<<TOIE0);
// External Interrupt(s) initialization// INT0: On// INT0 Mode: Any change// INT1: Off// INT2: OffGICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00);MCUCSR=(0<<ISC2);GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);
// USART initialization
A-11
// USART disabledUCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization// Analog Comparator: Off// The Analog Comparator's positive input is// connected to the AIN0 pin// The Analog Comparator's negative input is// connected to the AIN1 pinACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);SFIOR=(0<<ACME);
// ADC initialization// ADC disabledADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
// SPI initialization// SPI disabledSPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI initialization// TWI disabledTWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// Alphanumeric LCD initialization// Connections are specified in the// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:// RS - PORTA Bit 0// RD - PORTA Bit 1// EN - PORTA Bit 2// D4 - PORTA Bit 4// D5 - PORTA Bit 5// D6 - PORTA Bit 6// D7 - PORTA Bit 7// Characters/line: 16lcd_init(16);
// Global enable interrupts#asm("sei")
while (1) { // Place your code here
A-12
lcd_clear(); lcd_gotoxy(0,0); lcd_putsf("DROOP SPEED CONTROL"); delay_ms(1000); lcd_clear(); menurpm(); menudroop(); hitungdroop(); lcd_clear(); timerrpm=1; pwma=0; motor=0; while(timerrpm==1) { jalan(); while(f==1) { motor=0; PengaturUtama=rpm/60; if(frek==freksp) { PORTD.4=1; delay_ms(500); } if(frek<freksp) { pwma=0; } } } }}
A-13
LAMPIRAN B
LISTING PROGRAM SYNCHRONIZING SWITCH
B-1
B-2
/*******************************************************This program was created by theCodeWizardAVR V3.12 AdvancedAutomatic Program Generator© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com
Project : Version : Date : 7/4/2015Author : Company : Comments:
Chip type : ATmega16Program type : ApplicationAVR Core Clock frequency: 12.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*******************************************************/
#include <mega16.h>
// Declare your global variables hereint a,b,sa,sb,sc;// External Interrupt 0 service routineinterrupt [EXT_INT0] void ext_int0_isr(void){// Place your code here PORTC.0 = 0; PORTC.1 = 0;}
void standalone(){ if(PINA!=0 || PINB !=0) { if(PINA!=0) { a=1; } if(PINB!=0) { b=1;
B-3
} while(a==1) { PORTC.0=1; if(PINA==0) { PORTC.0=0; } } while(b==1) { PORTC.1=1; if(PINB==0) { PORTC.1=0; } } }
}
void piso(){ if(PINB!=0) { b=1; } while(b==1) { PORTC.1=1; if(PIND.1==1) { PORTC.0=1; } if(PINB==0) { PORTC.1=0; } }
B-4
}
void pdroop(){ if(PINA!=0) { a=1; } while(a==1) { PORTC.0=1; if(PIND.0==1) { PORTC.1=1; } if(PINA==0) { PORTC.0=0; } }
}
void main(void){// Declare your local variables here
// Input/Output Ports initialization// Port A initialization// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
B-5
// Port B initialization// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// Port C initialization// Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out DDRC=(1<<DDC7) | (1<<DDC6) | (1<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);// State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
// Port D initialization// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
// Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=0xFF// OC0 output: DisconnectedTCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);TCNT0=0x00;OCR0=0x00;
// Timer/Counter 1 initialization// Clock source: System Clock// Clock value: Timer1 Stopped// Mode: Normal top=0xFFFF// OC1A output: Disconnected// OC1B output: Disconnected// Noise Canceler: Off// Input Capture on Falling Edge// Timer1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off
B-6
// Compare B Match Interrupt: OffTCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
// Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer2 Stopped// Mode: Normal top=0xFF// OC2 output: DisconnectedASSR=0<<AS2;TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);TCNT2=0x00;OCR2=0x00;
// Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
// External Interrupt(s) initialization// INT0: On// INT0 Mode: Any change// INT1: Off// INT2: OffGICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (1<<ISC00);MCUCSR=(0<<ISC2);GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);
// USART initialization// USART disabledUCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
// Analog Comparator initialization// Analog Comparator: Off// The Analog Comparator's positive input is
B-7
// connected to the AIN0 pin// The Analog Comparator's negative input is// connected to the AIN1 pinACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);SFIOR=(0<<ACME);
// ADC initialization// ADC disabledADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
// SPI initialization// SPI disabledSPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
// TWI initialization// TWI disabledTWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
// Global enable interrupts#asm("sei")
while (1) { if(PIND.7==1) sa=1; if(PIND.6==1) sb=1; if(PIND.5==1) sc=1; while(sa==1) {
B-8
pdroop(); } while(sb==1) { piso(); } while(sc==1) { standalone(); } }}
B-9
LAMPIRAN C
RANGKAIAN KESELURUHAN
B-10
B-11