1.1 Sistem Kontrol Tertutup
Sistem kontrol tertutup adalah cara tebaik untuk mengontrol suatu sistem, dimana sistem ini biasanya dilengkapi dengan sebuah sensor untuk mengukur keluaran dan kemudian membandingkan keluaran tersebut dengan keluaran yang kita inginkan dari suatu sistem. Perbedaan antara keluaran yang dihasilkan dengan keluaran yang diinginikan sering disebut dengan eror. Eror tersebut digunakan untuk mengarahkan dari sistem pada titik dimana nilai keluaran yang dihasilkan dengan nilai keluaran yang kita inginkan (setting point) adalah sama.
Cara ini disebut menggunkan sistem kontrol tertutup atau bisa juga disebut sebagai pengontrolan dengan feedback. Gamabar 1.1 menunjukkan sebuah sistem kontrol tertutup . satu dari keuntungansistem kontrol tertutup adalah kemampuannya untuk menghindari/ mengurangi gangguan dari luar dan hasil dari proses tersebut lebih tepat meski banyaknya prosentasi dari gangguan yang diperoleh plant. Gambar sistem kontrol tertutup dapat dilihat pada gambar 1.1.
Gambar 1.1 Sistem Kontrol Tertutup
Sebuah kontrol biasanya digunakan untuk membaca eror dan mengarahkan plant ke arah nilai eror cenderung sama dengan nol.Sistem kontrol tertutup ini mempunyai keuntungan lebih besar keakuratannya dibandingkan dengan sistem kontrol terbuka. Sistem ini juga lebih sensitif terhadap gangguan dan perubahan dari lingkungannya. Waktu dari respon dan eror dari steady state dapat dikontrol dalam sebuah sistem kontrol tertutup.
1.2 Mikro Kontroler Atmega 16
Mirkokontroler AVR (Alf and Vegard’s Risc processor) standar memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar intruksi dieksekusi dalam 1(satu) siklusclock. AVR berteknologi RISC (Reduced Instruction Set Computing),sedangkan MCS51 berteknologi CISC (Complex Intruction Set Computing).
AVR dapat dikelompokkan menjadi empat kelas, yaitu keluargaAttiny, keluarga AT902xx, keluarga Atmega, dan keluarga AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Silahkan buka www.atmel.com untuk informasi lebih lanjut tentang berbagai variasi AVR. Untuk mikrokontroler AVR yang berukuran lebih kecil, silahkan mencobaAtmega8, Attiny2313 dengan ukuran Flash Memory 2KB dengan dua input analog.
Mikrokontroler pada dasarnya diprogram dengan bahasa assembler. Tetapi Saat ini mikrokontroler dapat deprogram dengan menggunakan bahasa tingkat tinggi sepert BASIC, PASCAL atau C. Bahasa tingkat tinggi tersebut memiliki beberapa keuntungan dibandingkan dengan bahasa asembler :
· Lebih mudah membangun program dengan menggunakan bahasa tingkat tinggi
· Perbaikan program lebih mudah jika program dibangun menggunakan bahasa tingkat tinggi
· Testing program didalam bahasa tingkat tinggi lebih mudah
· Bahasa tingkat tinggi lebih banyak dikenal dan error program yang dibuat dapat dihindari
· Mudah mendokumentasikan sebuah program tingkat tingggi
Meskipun demikian, bahasa tingkat tinggi juga memiliki beberapa kelemahan, contohnya ukuran kode memori biasanya besar, dan program yang dibangun menggunakan bahasa asembler biasanya bekerja cepat dibangdingkan dengan program yang dibangun menggunakan bahasa tingkat tinggi.
Didalam mikrokontroler Atmega16 terdiri dari:
- Saluran I/O ada 32 buah, yaitu Port A, Port B, Port C, danPort D.
- ADC (Analog to Digital Converter) 10 bit sebanyak 8 channel.
- Tiga buah Timer/Counter dengan kemampuan perbandingan.
- CPU yang terdiri dari 32 register.
- 131 intruksi andal yang umumnya hanya membutuhkan 1 siklusclock.
- Watchdog Timer dengan oscilator internal.
- Dua buah Timer/Counter 8 bit.
- Satu buah Timer /Counter 16 bit.
- Tagangan operasi 2.7 V - 5.5 V pada Atmega16.
- Internal SRAM sebesar 1KB.
- Memory Flash sebesar 16KB dengan kemampuan Read While Write.
- Unit interupsi internal dan eksternal.
- Port antarmuka SPI.
- EEPROM sebesar 512 byte dapat diprogram saat operasi.
- Antar muka komparator analog.
- 4 channel PWM.
- 32x8 general purpose register.
- Hampir mencapai 16 MIPS pada Kristal 16 MHz.
- Port USART programmable untuk komunikasi serial.
1.2 .1 Konfigurasi Pin ATmega16
Atmega 16 memepunyai kaki standart 40 pin PID yang mempunyai fungsi sendiri-sendiri. Untuk lebih jelas tentang konigurasi Pin Atmega 16 bisa di lihat pada gambar 1.2.
Gambar 1.2 Konfigurasi Pin Atmega 16
Gambar di atas merupakan susunan kaki standar 40 pin mikrokontroler AVR Atmega16. Berikut penjelasan umum susunan kaki Atmega16 tersebut:
- VCC merupakan pin masukan positif catudaya. Setiap peralatan elektronika digital tentunya butuh sumber catu daya yang umumnya sebesar 5 V, itulah sebabnya di PCB kit rangkaian mikrokontroler selalu dipasang IC regulator 7805.
- GND sebagai PIN ground.
- Port A (PA0 ... PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin masukan ADC.
- Port B (PB0 ... PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu Timer/Counter, Komparator Analog, dan SPI.
- Port C (PC0 ... PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan Timer Oscilator.
- Port D (PD0 ... PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial.
- Reset merupakan pin yang digunakan untuk me-reset mikrokontroler ke kondisi semula.
- XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal. Suatu mikrokontroler membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di memori. Semakin tinggi nilai kristalnya, maka semakin cepat pula mikrokontroler tersebut dalam mengeksekusi program.
- AVCC sebagai pin masukan tegangan untuk ADC.
- AREF sebagai pin masukan tegangan referensi.
1.2 .2 Port sebagai input/output digital
ATMega16 mempunyai empat buah port yang bernama PortA, PortB,PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O addressPINx. Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pinoutput. Pin port adalah tri-state setelah kondisi reset.
Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pinoutput maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Untuk lebih jelasnya, dapat dilihat pada gambar 1.3 .
Gambar 1.3 Diagram Blok Mikrokontroler ATMega16
1.2.3 Peta Memori
AVR ATMega16 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 1kb SRAM internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler,
seperti kontrol register, timer/counter, fungsi – fungsi I/O, dan sebagainya. Alamat memori berikutnya yang digunakan untuk SRAM 1kb, yaitu pada lokasi $60 sampai dengan $45F. Konfigurasi memori data ditunjukan pada gambar 1.4
Gambar 1.4 Konfigurasi Memori Data AVR ATMega 16
Mikrokontroler disini digunakan sebagai komunikasi antara computer dengan Plant, dimana digunakan komunikasi serial RS232 sebagai komunikasi antara Mikrokontroler dengan Komputer. (Wardhana.L ,2006).
1.2.4 Pulse Width Modulation (PWM)
PWM atau modulasi lebar pulsa adalah salah satu keunggulan dari Timer/Counter yang terdapat pada ATMega16. Ketiga jenisTimer/Counter pada ATMega32 dapat menghasilkan pulsa PWM. Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur. Pulsa PWM berfungsi mengatur kecepatan motor DC, mengatur gelap terang LED dan lain sebagainya.
Untuk memahami penggunaan PWM, disini digunakanTimer/Counter 1 sebagai PWM. PWM adalah Timer Mode Output Compareyang canggih. Mode PWM timer juga dapat mencacah turun yang berlawanan dengan mode Timer lainya yang hanya mencacah naik. Pada mode PWM tersebut, Timer mencacah naik hingga mencapai nilai TOP, yaitu 0xFF untuk PWM 8 bit. Timer/Counter 1 memiliki PWM 9 bit dan PWM 10 bit, selain PWM 8 bit. Pemilihan Timer Mode PWM diseting melalui bit WGM01 dan bit WGM00 pada register TCCR0. TabelKonfigurasi Bit WGM01 dan WGM00 dapat dilihat pada tabel 1.1.
Tabel 1.1 Konfigurasi Bit WGM01 dan WGM00
Mode
|
WGM01 (CTC 0)
|
WGM00
(PWM0)
|
Timer Conunter Mode of Operation
|
TOP
|
Update of OCR0
|
TOV0 Flag Set-on
|
0
|
0
|
0
|
Normal
|
0XFF
|
Immadiete
|
MAX
|
1
|
0
|
1
|
PWM, Phase Correct
|
0XFF
|
TOP
|
BOTTOM
|
2
|
1
|
0
|
CTC
|
OCR0
|
Immadiete
|
MAX
|
3
|
1
|
1
|
Fast PWM
|
0XFF
|
TOP
|
MAX
|
Sebagai penggunaan mode PWM Timer / Counter 0, keluaran sinyal PWM terletak pada pin OC0 sehingga pada contoh ini LED diletakkan pada pin OC0. Ketika nilai TCNT0 sama dengan nilai pada OCR0, maka output pada OC0 akan berlogika nol atau berlogika satu, tergantung pada pemilihan mode PWM. Anda dapat memilih mode normal atau mode inverted PWM. Pemilihan mode PWM diseting melalui bit COM01 dan bit COM00 pada register TCCR0 yang konfigurasinya seperti tabel 2.2
Tabel 1.2 Konfigurasi Bit COM01 dan COM00 Compare Output Mode Phase Correct PWM
COM01
|
COM00
|
Dscription
|
0
|
0
|
Normal port operation,OC0 disconnected
|
0
|
1
|
Reserved
|
1
|
0
|
Clear OC0 on compare match when up-connection Set OC0 on compare match downcounting
|
1
|
1
|
Set OC0 on compare match when up-counting. Clear OC0 on compare match when downcounting
|
Dari tabel diatas dapat diketahui saat COM00 clear dan COM01 set, pin OC0 clear saat timer mencacah diatas Compare Match dan pin OC0 set saat timer mencacah dibawah Compare Match atau non-invertingPWM. Kebalikannya, saat COM00 set dan COM01 juga set, maka pin OC0 set saat timer mencacah diatas Compare Match dan pin OC0 clear saat mencacah dibawah Compare Match atau disebut juga inverting PWM. Untuk lebih jelasnya, perhatikan gambar 1.5.
Gambar 1.5 Pulse PWM Inverting dan Non – Inverting
Tidak ada komentar:
Posting Komentar