BAB II
LANDASAN TEORI
2.1
Sel Photovoltaic
Sel surya atau sel photovoltaic adalah sebuah alat semi konduktor yang terdiri
dari sebuah wilayah-besar diode p-n junction, di mana dalam hadirnya cahaya
matahari
mampu
menciptakan energi listrik yang
berguna.
Pengubahan
ini
disebut efek photovoltaic. Sel surya memiliki banyak aplikasi. Mereka terutama cocok untuk digunakan
bila
tenaga
listrik
dari grid tidak
tersedia,
seperti
di
wilayah
terpencil,
satelit pengorbit bumi, kalkulator genggam, pompa air, dll. Sel surya (dalam bentuk modul atau panel surya) dapat dipasang di atap gedung di mana mereka berhubungan dengan inverter ke grid listrik dalam sebuah pengaturan net metering
Gambar 2.1 Sel Photovoltaic Sel photovoltaic (sel PV) ini terbuat dari bahan khusus semikonduktor yang sekarang banyak digunakan dan disebut dengan silikon. Ketika cahaya mengenai sel silikon, cahaya tersebut akan diserap oleh sel ini, hal ini berarti bahwa energi cahaya yang diserap telah ditransfer ke bahan semikonduktor yang berupa silikon. Energi yang tersimpan dalam semikonduktor ini akan mengakibatkan elektron lepas dan
6
mengalir dalam semikonduktor. Semua sel photovoltaic ini juga memiliki medan
elektrik yang memaksa elektron yang lepas karena penyerapan cahaya tersebut untuk mengalir dalam suatu arah tertentu. Elektron yang mengalir ini adalah arus listrik,
dengan meletakkan terminal kontak pada bagian atas dan bawah dari sel photovoltaic ini akan dapat dilihat dan diukur arus yang mengalir sehingga dapat digunakan untuk
menyuplai perangkat eksternal. Hal diatas adalah dasar perubahan energi surya
menjadi listrik oleh semikonduktor silikon. 2.1.1 Sel Silikon Sel silikon mempunyai sifat kimia khusus dalam format kristalnya. Atom
silikon mempunyai 14 elektron yang diatur dalam tiga kulit atom yang berbeda. Dua
kulit atom yang pertama terisi elektron penuh dan sisanya pada kulit terluar yang hanya terisi empat elektron. Atom silikon ini akan selalu mencari jalan untuk memenuhi kulit luarnya (ingin memenuhi sampai punya 8 elektron) dengan cara melakukan ikatan dengan atom silikon lain yang kulit luarnya sama mempunyai 4 elektron. Gabungan dari dua atom ini adalah struktur kristal murni yang merupakan dasar pembentuk sel photovoltaic.
Gambar 2.2 Gabungan Sel Silicon Silikon murni bersifat sebagai konduktor karena tidak ada satupun elektron yang bergerak bebas, artinya elektron berada pada bahan yang mempunyai sifat konduktor yang bagus seperti tembaga, atau dengan kata lain elektron terkunci dalam struktur kristal silikon murni. Silikon dalam sel surya sudah dimodifikasi sedemikian rupa sehingga akan bekerja sebagai sel surya. Sel surya ini mempunyai silikon dengan impurity atom lain yang dicampur dengan atom silikon. Dalam hal ini atom
7
silikon tidak akan bekerja tanpa impurity tersebut. Silikon akan dicampur dengan
sebuah atom phospor. Atom phospor mempunyai 5 elektron di kulit terluarnya. Ketika energi diberikan ke kristal silikon murni, sebagai contoh misalnya
dalam wujud panas, hal ini akan menyebabkan beberapa elektron akan lepas dan meninggalkan atomnya. Setiap elektron akan meninggalkan sebuah hole (lobang)
disekitar atom dimana elektron bisa diikat. Elektron ini kemudian lepas secara acak
disekitar kisi – kisi dari kristal atom tersebut untuk mencari hole lain yang kosong untuk ditempati. Elektron ini disebut sebagai elektron bebas dan dapat membawa arus listrik.
Silikon tak murnian yang dicampur dengan phospor ini membutuhkan sedikit
energi untuk melepaskan salah satu elektron phospor yang tidak diikat dalam suatu ikatan dengan atom lain tetangganya. Sebagai hasil campuran antara silikon dan phospor ini, banyak elektron yang lepas dan banyak membawa muatan arus listrik apabila dibandingkan dengan silikon murni. Proses penambahan atom phospor ini disebut sebagai proses doping. Ketika silikon di doping dengan phospor maka silikon disebut sebagai atom n-type (n untuk negatif) karena adanya elektron bebas. Silikon n-type yang telah didoping ini mempunyai sifat konduktor yang lebih bagus daripada silikon murni. Pada bagian lain silikon yang didoping dengan boron yang mempunyai elektron pada kulit terluar 3 elektron maka silikon akan menjadi atom p-type (p untuk positif) yang banyak memilki hole bebas karena ketiadaan elektron. Sehingga atom p-type ini akan bertugas berkebalikan dari atom n-type. Ketika diletakkan silikon n-type dengan silikon p-type, maka setiap sel photovoltaic ini memiliki minimal satu medan listrik. Tanpa medan listrik maka sel tidak akan bekerja, dan pada fase ini antara silikon n-type dan silikon p-type sedang melakukan ikatan. Dan kemudian elektron pada slilikon n-type akan mencari hole pada silikon p-type untuk ditempati elektron tersebut. Sebelumnya silikon ini memiliki muatan yang netral. Elektron lebih pada phospor akan diseimbangkan oleh proton. Ketika hole dan elektron digabung jadi satu
8
dalam sambungan antara n-type dan p-type maka kenetralan dari silikon ini akan
terganggu. Pada sambungan akan membentuk suatu campuran elektron dan akhirnya keseimbangan tercapai lagi dan akan terbentuk suatu medan elektrik yang
memisahkan kedua sisi tersebut. Medan elektrik ini bekerja seperti dioda, membiarkan (bahkan mendorong) elektron untuk mengalir dari sisi P ke sisi N, dan
elektron hanya memiliki satu arah.
A = n-type ; B = p-type
2.1.2 Listrik yang dihasilkan sel photovoltaic Ketika cahaya dalam hal ini adalah photon (satuan energi dalam cahaya) mengenai sel surya, maka energinya akan membebaskan pasangan elektron dan hole. Setiap photon dengan energi yang cukup secara normal akan membebaskan elektron, dan akan menghasilkan hole bebas juga. Apabila hal ini terjadi cukup dekat dengan medan listrik, atau jika elektron bebas dan hole bebas masih berada pada range pengaruhnya, maka medan listrik ini akan mengirimkan elektron pada sisi N dan hole pada sisi P. Hal ini akan mengakibatkan kenetralan terganggu, dan jika disediakan alur arus luar, maka elektron akan mengalir sepanjang alur, kembali ke asalnya yaitu sisi P untuk bersatu dengan hole yang dikirim oleh medan listrik. Elektron yang mengalir ini akan menghasilkan arus sedangkan medan listrik akan menghasilkan tegangan. Dengan kedua unsur arus dan tegangan tersebut, akan didapatkan power.
9
A = n-type ; B = p-type 2.1.3 Karakteristik Sel Photovoltaic Sebuah sel surya dalam menghasilkan energi listrik (energi sinar matahari
menjadi photon) tidak tergantung pada besaran luas bidang silikon, dan secara konstan akan menghasilkan energi berkisar ±0.5 volt – max 600 mV pada 2 amp, dengan kekuatan radiasi sinar matahari 1000 W/m2, atau setara dengan ‘1 sun’ akan menghasilkan arus listrik (I) sekitar 30 mA/cm2 per sel surya . Pada gambar 2.3 dapat dilihat bahwa sel surya akan menghasilkan energi maksimum jika nilai Vm dan Im juga maksimum. Sedangkan Isc adalah arus listrik maksimum pada nilai volt = nol. Isc berbanding langsung dengan tersedianya sinar matahari. Voc adalah volt maksimum pada nilai arus nol. Voc naik secara logaritma dengan peningkatan sinar matahari, karakter yang memungkinkan sel surya untuk mengisi accu/baterai.
Gambar 2.3 Sel photovoltaic beroperasi secara normal
10
Isc = short-circuit current
Vsc = open-circuit voltage Vm = voltage maximum power
Im = current maximum power Pm = Power maximum-output dari PV array (watt)
Gambar 2.4 Karakteristik terhadap perubahan radiasi Gambar Kurva I/V fungsi radiasi matahari Pada saat sel surya dihubungkan secara seri maka akan merubah karakteristik V-I, khususnya pada tegangan keluaran pada saat kondisi rangkaian terbuka menjadi lebih besar, seperti yang terlihat pada gambar.
11
Gambar 2.5 Karakteristik Sel Surya dengan Rangkaian Seri Sementara jika sel surya dihubungkan secara parallel maka akan menaikkan kemampuan arus hubung singkatnya, seperti terlihat pada gambar berikut,
Gambar 2.6 Karakteristik Sel Surya dengan Rangkaian Parallel Untuk mencapai tingkat operasional PV yang maksimal, diperlukan adanya suatu sistem yang dapat mencapai kondisi kerja maksimal PV (maximum power point/MPP). Untuk mendapatkan daya maksimum dari sel PV, digunakan sebuah alat bernama maximum power point tracker atau MPPT, dimana kondisi tersebut bergantung pada karakteristik dari PV yang digunakan.
12
2.2
DC Chooper Jenis Boost
DC Chooper jenis Boost adalah konverter DC ke DC efisiensi tinggi yang memberikan optimal beban listrik pada solar panel (sel PV) dan memberikan
tegangan yang sesuai dengan beban. Sel PV digunakan untuk memenuhi kebutuhan energi untuk berbagai apliaksi. Untuk
mendapatkan daya maksimum dari sel PV, digunakan DC Booster tipe boost untuk
mengotrol karakteristik arus-tegangan dari sel PV tersebut. Rangkaian pengontrol pengisian baterai dalam BCR merupakan rangkaian
elektronik yang mengatur proses pengisian baterai. Alat ini penting untuk mengatur
transfer energi dari panel surya ke baterai secara efisien dan semaksimal mungkin,
melindungi baterai dari pengisian dan pengosongan berlebih, membatasi daerah tegangan kerja baterai, memperpanjang umur baterai dan mencegah kerusakan akibat beban berlebih (short-circuit). Terdapat beragam rangkaian kontrol pengisian baterai yaitu seperti direct connection, on-off regulator, two step regulator dan multisteps regulator.Pada dasarnya
rangkaian
kontrol
tersebut
mengatur
pengisian
baterai
dengan
memperhatikan karakteristik baterai.Rangkaian kontrol tersebut banyak dipakai pada saat ini. On-off regulator ini akan mengatur pengisian baterai dengan memperhatikan daerah kerja pengisian baterai. Penggunaan on-off regulator dalam penerapannya kurang efisien. Hal-hal yang menyebabkan kurang efisien adalah :
Daya keluaran dapat menjadi jauh lebih kecil dibanding daya masuk dari rangkaian sistem. Hal ini terjadi ketika tegangan keluaran dari panel surya dipaksa bekerja sesuai dengan tegangan baterai, sehingga tegangan keluaran dari panel surya tidak dapat memberikan kontribusi secara penuh untuk membentuk daya keluaran yang optimal.
Pengaturan pengisian baterai ketika tegangan nominal baterai lebih tinggi dari pada tegangan panel surya, sehingga hal ini akan menyebabkan kemungkinan
13
berhentinya proses pengisian apabila tegangan panel surya turun sampai di
bawah tegangan baterai. Panel surya biasanya didesain dengan menyesuaikan tegangan nominal baterai yang terkadang hanya berbeda beberapa volt saja. Daya keluaran yang optimal dapat diperoleh dengan menggunakan pengontrol
yang menggunakan metode pencarian titik daya maksimum.Metode ini digunakan untuk mencari titik daya maksimum dari panel surya dan kemudian menentukan titik kerja sistem yang sesuai untuk mendapatkan keluaran daya yang optimal.Titik daya
maksimum didapatkan dengan menggunakan pencari titik daya maksimum dengan
mengontrol suatu sistem yang berada antara panel surya dan baterai supaya bekerja
pada kondisi tertentu sehingga panel surya dapat memberikan daya maksimumnya kepada beban. Secara umum gambaran sederhana dari sistem kerja desain boost converter adalah ditunjukkan seperti pada Gambar 1 dibawah ini : Solar sell (PV)
DC to DC Boost Coneverter )))
Pompa DC 24 volt
ATMEGA 16
Gambar 2.7 Blok Diagram Pembangkit Listrik Tenaga Surya.
14
Gambar 2.8 kurva I/V dari solar sel. 2.2.1 Switch-mode converter Switch-mode converter atau Pengubah daya DC-DC (DC-DC converter) tipe peralihan dimanfaatkan terutama untuk penyediaan tegangan keluaran DC yang bervariasi besarannya sesuai dengan permintaan pada beban. Daya masukan dari proses DC-DC tersebut adalah berasal dari sumber daya DC yang biasanya memiliki tegangan masukan yang tetap. Pada dasarnya, penghasilan tegangan keluaran DC yang ingin dicapai adalah dengan cara pengaturan lamanya waktu penghubungan antara sisi keluaran dan sisi masukan pada rangkaian yang sama. Komponen yang digunakan untuk menjalankan fungsi penghubung tersebut tidak lain adalah switch (solid state electronic switch) seperti misalnya Thyristor, MOSFET, IGBT, GTO. Secara umum ada dua fungsi pengoperasian dari DC Chopper yaitu penaikan tegangan dimana tegangan keluaran yang dihasilkan lebih tinggi dari tegangan masukan, dan penurunan tegangan dimana tegangan keluaran lebih rendah dari tegangan masukan. Dilihat dari setting dari switch-mode dapat dibedakan atas, buck (step down) converter, boost (step up) converter, Buck-boost (step down/up) converter, dan Cuk converter. Buck dan boost merupakan topologi dasar dari converter, tetapi Buckboost dan cuk merupakan kombinasi dari dari keduanya. Tujuan dari switch-mode ini
15
untuk memberikan nilai output tegangan atau arus yang konstan. Pada MPPT,
tujuannya adalah untuk menyesuaikan tegangan dan atau arus pada sel PV agar bertahan pada titik maksimum, ketika tegangan output sesuai dengan tegangan
baterai.
2.2.2 Boost Converter
Gambar 2.9 Boost Converter Gambar 2.9 memperlihatkan boost chopper menggunakan MOSFET. Prinsip operasi dapat dibagi atas dua mode operasi yaitu pada saat ON dan OFF. Pada saat saklar ON arus mengalir melalui induktor-saklar dan kembali ke sumber negatif. Pada perioda ini induktor akan menyimpan energi. Pada saat saklar OFF beban akan tersambung dengan sumber tegangan Edc dan pada saat yang bersamaan energi yang tersimpan pada induktor akan dilepaskan.
1) Rumus penentuan Duty cycle:
+(
)
=0
16
=
=
=
= =
………………………………………………
(1)
(Power Electronic Fundamental: DC-DC Converter 2011, Nana
Heryana)
2) Rumus menentukan nilai inductor minimal L=
……………………………………………… (2)
(Power Electronics Hand book 2001, Rashid Power electronik)
3) Rumus menentukan nilai kapasitor minimal =
……………………………………………… (3)
(Power Electronics Hand book 2001, Rashid Power electronik) 2.3 Pulse Width Modulation (PWM) PWM adalah singkatan dari Pulse Width Modulation, merupakan suatu metode yang digunakan untuk mengontrol daya yang berkaitan dengan power supply, contohnya pada power supply PC. Selain fungsi PWM yang digunakan untuk mengintrol daya power supply, PWM juga dapat difungsikan sebagai pengatur gerak perangkat elektronika. Sesuai dengan namanya Pulse Width Modulation, maka dalam penerapannya sinyal tegangan-lah yang dirubah lebarnya. Siste pengontrolan dengan PWM ini merupakan sistem digital yang jauh lebih efisien jika dibandingkan dengan sistem konfensional.
17
2.4 Mikrokontroller
2.4.1. Pendahuluan Rangkaian kontrol terdiri dari mikrokontroller atmega 16 dan software
bascom AVR. Fungsi utama rangkaian kontrol adalah menghasilkan gelombang pwm
untuk dapat mengoperasikan MOSFET dari kondisi off ke kondisi on dan juga sebaliknya. Untuk melindungi rangkaian kontrol dari kerusakan bila terjadi trouble pada rangkaian daya maka digunakan rangkaian driver sebagai pelindung dan
penghubung ke rangkaian daya.
2.4.2 Mikrokontroller atmega 16 AVR merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer).Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable watchdog timer, dan mode power saving, ADC dan PWM internal. AVR juga mempunyai In-System Programmable flash on-chip yang mengijinkan memori program untuk diprogram ulang dalam system menggunakan hubungan serial SPI atmega16. Atmega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses. Beberapa keistimewaan dari AVR ATMega16 antara lain: 1) Advanced RISC Architecture a) 130 Powerful Instructions – Most Single Clock Cycle Execution b) 32 x 8 General Purpose Fully Static Operation c) Up to 16 MIPS Throughput at 16 MHz d) On-chip 2-cycle Multiplier 2) Nonvolatile Program and Data Memories a) 8K Bytes of In-System Self-Programmable Flash
18
b) Optional Boot Code Section with Independent Lock Bits
c) 512 Bytes EEPROM d) 512 Bytes Internal SRAM
e) Programming Lock for Software Security 3) Peripheral Features
a) Two 8-bit Timer/Counters with Separate Prescalers and CompareMode
b) Two 8-bit Timer/Counters with Separate Prescalers and CompareModes c) One 16-bit Timer/Counter with Separate Prescaler, CompareMode, and Capture Mode
d) Real Time Counter with Separate Oscillator
e) Four PWM Channels
f) 8-channel, 10-bit ADC g) Byte-oriented Two-wire Serial Interface h) Programmable Serial USART 4) Special Microcontroller Features a) Power-on Reset and Programmable Brown-out Detection b) Internal Calibrated RC Oscillator c) External and Internal Interrupt Sources d) Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Powerdown, Standby and Extended Standby 1) I/O and Package a) 32 Programmable I/O Lines b) 40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF 6) . Operating Voltages a) 2.7 - 5.5V for Atmega16L b) 4.5 - 5.5V for Atmega16
19
Gambar 3.0 Layout atmega 16 Pin-pin pada atmega16 dengan kemasan 40-pin DIP (dual inline package) ditunjukkan oleh gambar 3.0. Guna memaksimalkan performa, AVR menggunakan arsitektur harvard (dengan memori danbus terpisah untuk program dan data). Bagian – bagian dari pin sebagai berikut : 1)
VCC merupakan pin masukan positif catu daya. Setiap peralatan elektronika digital tentunya butuh sumber catudaya yang umumnya sebesar 5 V, itulah sebabnya di PCB kit
2)
mikrokontroler selalu ada IC regulator 7805.
3)
GND sebagai pin ground
4)
Port A (PA0…PA7) merupakan pin I/O dua arah dan dapat diprogram sebagai pin masukan ADC.
5)
Port B (PB0…PB7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu timer/counter, komparator analog, dan SPI.
6)
Port C (PC0…PC7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI, komparator analog, dan timer osilator.
20
7)
Port D (PD0…PD7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator
analog, interupsi eksternal, dan komunikasi serial. 8)
Reset merupakan pin yang digunakan untuk mereset mikrokontroler.
9)
XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal. Suatu mikrokontroler
membutuhkan sumber clock agar dapat mengeksekusi intruksi yang ada di memori.
Semakin tinggi nilai kristalnya, maka semakin cepat mikrokontroler tersebut. 10) AVCC sebagai pin masukan tegangan untuk ADC. 11) AREF sebagai masukan tegangan referensi.
2.4.2.1 Konfigurasi port
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 address PINx. 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 pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output 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).
21
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama
lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada
register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan
masalah yang sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0)
atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.
Tabel 2.4 Konfigurasi pin port
Bit 2 – PUD : Pull-up disable bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1). 2.4.2.2 Timer Timer/counter adalah fasilitas dari Atmega16 yang digunakan untuk perhitungan pewaktuan. Beberapa fasilitas chaneldari timer counter antara lain: counter channel tunggal, pengosongan data timer sesuai dengan data pembanding, bebas -glitch, tahap yang tepat Pulse Width Modulation (PWM), pembangkit frekuensi, event counter external. Gambar diagram block timer/counter 8 bit ditunjukan pada gambar 3.1. Untuk penempatan pin I/O telah di jelaskan pada bagian I/O di atas. CPU dapat diakses register I/O, termasuk dalam pin-pin I/O dan bit I/O. Device khusus register I/O dan lokasi bit terdaftar pada deskripsi timer/counter 8 bit.
22
Gambar 3.1. Gambar diagram blok timer Timer/counter didesain sinkron clock timer (clkT0) oleh karena itu ditunjukkan sebagai sinyal enable clock pada gambar 3.2. Gambar ini termasuk informasi ketika flag interrupt dalam kondisi set. Data timing digunakan sebagai dasar dari operasi timer/counter.
Gambar 3.2. Timing diagram timer/counter prescaling Sesuai dengan gambar 3.2 timing diagram timer/counter dengan prescaling maksudnya adalah counter akan menambahkan data counter (TCNTn) ketika terjadi pulsa clock telah mencapai 8 kali pulsa dan sinyal clock pembagi aktif clock dan ketika telah mencapai nilai maksimal maka nilai TCNTn akan kembali ke nol. Dan kondisi flag timer akan aktif ketika TCNTn maksimal.
23
Gambar 3.3. Timing diagram timer/counter
OCFO timer mode ini memasukan data ORCn sebagai data input timer. Ketika nilai ORCn sama dengan nilai TCNTn maka pulsa flag timer akan aktif. TCNTn akan
bertambah nilainya ketika pulsa clock telah mencapai 8 pulsa. Dan kondisi flag akan
berbalik (komplemen) kondisi ketika nilai TCNTn kembali kenilai 0 (overflow).
Gambar 3.4. Timing diagram timer/counter Ketika nilai ORCn sama dengan nilai TCNTn maka pulsa flag timer akan aktif. TCNTn akan bertambah nilainya ketika pulsa clock telah mencapai 8 pulsa. Dan kondisi flag akan berbalik (komplemen) kondisi ketika nilai TCNTn kembali kenilai 0 (overflow).
Gambar 3.5. Timing diagram timer/counter
24
2.4.2.3 Generator clock
Pada gambar 3.6 logic generator clock menghasilkan dasar clock untuk pengirim dan penerima. USART mendukung empat mode operasi clock: Normal asynchronous, double speed asynchronous mode master synchronous dan slave
synchronous. Bit UMSEL pada USART kontrol dan status register C (UCSRC)
memilih antara operasi asychronous dan synchronous. Double speed (hanya pada mode asynchronou ) dikontrol oleh U2X yang mana terdapat pada register UCSRA. Ketika mengunakan mode operasi synchronous (UMSEL = 1) dan data direction register untuk pin XCk (DDR_XCK) mengendalikan apakah sumber clock tersebut
adalah internal (master mode) atau eksternal (slave mode) pin-pin XCK hanya akan aktif ketika menggunakan mode synchronous.
Gambar 3.6 Gambar blok diagram generator clock Keterangan sinyal : txclk :clock pengirim (internal clock) rxclk :clock dasar penerima (internal clock) xcki :input dari pin XCK (sinyal internal). Digunakan untuk operasi slave synchronous. xcko :clock output ke pin XCK (sinyal internal). Digunakan untuk operasi master synchronous fosc :frekuensi pin XTAL (system clock)
25
a) Generator internal clock – pembangkit baud rate
Generasi internal clock digunakan untuk mode – mode operasi master asynchronous dan synchronous. Register USART baud rate (UBRR) dan down
counter dikoneksikan kepada fungsinya sebagai programmable prescaler atau
pembangkit baud rate. Down-counter, dijalankan pada system clock ( fosc), dibebani
dengan nilai UBRR setiap counter telah dihitung mundur ke nol atau ketika register
UBRRL ditulis. Clock dibangkitkan setiap counter mencapai nol. Clock ini adalah pembangkit baud rate clock output (fosc/( UBBR+1)).
Pemancar membagi baud rate generator clock output dengan 2, 8, atau 16 cara
tergantung pada mode. Pembangkit outputbaud rate digunakan secara langsung oleh penerima clock dan unit-unit pelindung data. Unit-unit recovery menggunakan suatu mesin status yang menggunakan 2, 8, atau 16 cara yang tergantung pada cara menyimpan status dari UMSEL, bit-bit U2X dan DDR_XCK. Tabel di bawah menunjukan penyamaan perhitungan baud rate dan nilai UBRR tiap mode operasi mengunakan sumber pembangkit clockinternal. Tabel 2.5 Baud Rate
b) Eksternal clock
Eksternal clock digunakan untuk operasi mode slave synchronous.eksternal clock masuk dari pin XCK dicontohkan oleh suatu daftar sinkronisasi register untuk memperkecil kesempatan meta-stabilitas. Keluaran dari sinkronisasi register kemudian harus menerobos detector tepi sebelum digunakan oleh pengirim dan penerima. Proses ini mengenalkan dua period delay clock CPU dan oleh karena itu
26
maksimal frekuensi clock XCK eksternal dibatasi oleh persamaan sebagai berikut
Fxck
Ketika mode sinkron digunakan (UMSEL=1), pin XCK akan digunakan sama
seperti clock input (slave) atau clock output (master). Dengan ketergantungan antara tepi clock dan data sampling atau perubahan data menjadi sama. Prinsip dasarnya adalah data input (on RxD) dicontohkan pada clock XCK berlawanan dari tepi data output (TxD) sehingga mengalami perubahan UCPOL bit UCRSC memilih tepi yang mana clock XCK digunakan untuk data sampling dan yang mana digunakan untuk
perubahan data. Seperti yang ditunjukan pada gambar 3.7 ketika UCPOL nol data akan diubah pada tepi kenaikan XCK dan dicontohkan pada tepi XCK saat jatuh. Jika UCPOL dalam kondisi set, data akan mengalami perubahan pada saat tepi XCK jatuh dan data akan dicontohkan pada saat tepi XCK naik.
Gambar 3.7. Timing diagram Operasi Synchronous Clock 2.4.2.4 Arsitektur Mikrokontroler ATMega 16 Atmega16 menggunakan arsitektur harvard dengan memisahkan antara memori dan bus untuk program dan data untuk memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan pipelining single level dimana ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep ini mengakibatkan instruksi dieksekusi setiap siklus clock. CPU terdiri dari 32x8 bit general purpose register yang dapat diakses dengan cepat dalam satu siklus clock, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat
27
dilakukan dalam satu siklus. Operasi aritmetik dan logika pada ALU akan mengubah
bit-bit yang terdapat pada Status Register (SREG).
Arsitektur Mikrokontroler
ATMega16 dapat dilihat pada Gambar 3.8. yang terdapat di bawah ini.
Gambar 3.8. Arsitektur atmega 16 2.4.2.5 Analog digital converter (ADC) Keunggulan mikrokontroler AVR atmega16 dibandingkan pendahulunya ialah: 1) Sudah terintegrasinya ADC 10 bit sebanyak 8 saluran. 2) 13-260uS conversion time 3) Mencapai 15kSPs padaresolusimaksimum 4) Optional left adjustment untuk ADC result readout 5) Interupsipada ADC conversion complete
28
6) Sleep mode noise canceler
Input ADC pada mikrokontroler dihubungkan kesebuah 8 channel Analog multiplexer yang digunakan untuk single ended input channels. Jika sinyal input dihubungkan kemasukan ADC dan 1 jalur lagi terhubung ke ground, disebut single
ended input.
Jika input ADC terhubung ke 2 buah input ADC disebut sebagai
differential input, yang dapat dikombinasikan sebanyak 16 kombinasi. 4 kombinasi terpenting antara lain kobinasi input diferensial (ADC0 dengan ADC1 dan ADC2 dengan ADC3) dengan penguatan yang dapat diatur. ADC0 dan ADC2 sebagai tegangan input negatif sedangkan ADC1 dan ADC3 sebagai tegangan input positif.
Besar penguatan yang dapat dibuat yaitu 20dB (10x) atau 46dB (200x) pada tegangan input diferensial sebelum proses konversi ADC. Secara umum, proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format output data, dan mode pembacaan. Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status Register), dan SFIOR (Special Function IO Register). ADMUX merupakan register 8 bit yang berfungsi menentukan egangan referensi ADC, format data output, dan saluran ADC yang digunakan.
Gambar 3.9 Register ADMUX Adapun resolusi ADC untuk 8 bit dengan tegangan referensinya 5V adalah sekitar 19 mV, sedangkan resolusi ADC untuk 10 bit dengan tegangan referensinya 5V adalah sekitar 5 mV.
29
2.4.3 Bascom AVR
BASCOM AVR adalah salah satu tool untuk pengembangan / pembuatan program untuk kemudian ditanamkan dan dijalankan pada milrokontroller terutama mikrokontroller keluarga AVR . BASCOM AVR juga bisa disebut sebagai IDE
(Integrated Development Environment) yaitu lingkungan kerja yang terintegrasi,
karena disamping tugas utamanya (meng-compile kode program menjadi file HEX / bahasa mesin), BASCOM AVR juga memiliki fitur lain yang berguna sekali contoh : 1) Terminal (monitoring komunikasi serial)
2) Programmer
(untuk
menanamkan
program
yang
sudah
di-compile
ke
mikrokontroller). 2.4.3.1 Langkah awal penulisan program Untuk memulai pembuatan program dengan BASCOM-AVR, klik menu File > New. Langkah awal penulisan program adalah dengan menentukan file register, kristal yang digunakan, yakni dengan menuliskan : $regfile ="m16.dat" $crystal = 16000000 Dimana "m16.dat" adalah nama file yang berisi konfigurasi alamat register pada Mikrokontroller AVR atmega 16, jika menggunakan jenis lain, maka diharuskan mengganti nama file register ini sesuai dengan kontroller yang gunakan, file-file ini dapat ditemukan pada direktori : Sedangkan 16000000 adalah frekuensi denyut kristal yang digunakan, satuannya adalah dalam Hertz (16000000 = 16MHz). 2.4.3.2 Variabel dan tipe data Di dalam pemrograman, tipe data adalah hal yang sangat penting untuk diketahui sebelum memulai pemrograman itu sendiri. Pada bahasa Basic yang telah
30
disesuaikan dengan BASCOM-AVR, tipe-tipe data yang dikenal dan dapat digunakan
adalah sebagai berikut : 1)
Bit (1/8 byte). Satu bit hanya bisa menampung nilai 1 atau 0. Kumpulan dari bit sebanyak 8 disebut byte.
2)
Byte
(1
byte);
Byte
bisa
menampung
angka
binari
8
bit
dengan
jangkauan 0 sampai 255. 3)
Integer (2 byte); Integer bisa menampung angka bulat 16 bit dengan jangkauan sampai +32,767. 32,768
4)
Word
(2
byte);
Words memiliki
daya
tampung
yang
sama
dengan
Integer, perbedaannya adalah Word tidak mendukung nilai negatif adapun
jangkauannya adalah dari 0 sampai 65535. 5)
Long (4 byte); Long mampu menampung angka bulat 32 bit mulai dari 2147483648 sampai 2147483647.
6)
Single; Single mampu menampung angka pecahan (desimal) 32 bit dengan jangkauan dari1.5 x 10^–45 sampai 3.4 x 10^38
7)
Double; Double mampu menampung angka pecahan (desimal) 64 bit dengan jangkauan dari 5.0 x 10^–324 sampai 1.7 x 10^308
8)
String (bisa sampai 254 byte). String bisa menampung karakter ataupun kumpulan karakter. Misalnya : "Edi Wang" => merupakan kumpulan karakter, sehingga bisa ditampung ke dalam variabel dengan tipe data String. Cara mendeklarasikan sebuah variabel pada BASCOM-AVR adalah sebagai
berikut : Dim nama variabel tipe data, contoh : Dim x as Byte. Khusus untuk tipe data String ada sedikit tambahan yakni jumlah karakter maksimal yang bisa ditampung oleh variabel tersebut. Contoh : Dim x as String * 10, berarti variabel x mampu menampung karakter sepanjang 10 karakter. Di dalam penulisan nama variabel terdapat beberapa aturan yang harus di perhatikan :
31
1) Tidak boleh menggunakan karakter khusus seperti : */#$@!%^&*(),;'~`?<>+=
2) Tidak boleh menggunakan kata kunci yang telah ada di dalam bahasa pemrograman, contoh : for, next, do, loop, while, until, dll.
3) Karakter pertama dalam nama varibel tidak boleh angka, contoh : 4ndi => salah, n4di => benar.
4) Tidak boleh ada spasi, jika nama variabel lebih dari satu kata dapat dihubungkan dengan underscore. 2.4.3.3 Operator Operator yang digunakan secara umum adalah, operator pembanding, operator
aritmatik, dan operator logika. 1) Operator pembanding 2)
Tabel 2.6 Operator pembanding Operator
Keterangan
Penggunaan
=
Sama Dengan
X = Y
<>
Tidak Sama Dengan
X <> Y
>
Besar Dari
X > Y
<
Kecil Dari
X < Y
>=
Besar Sama Dengan
X >= Y
<=
Kecil Sama Dengan
X <= Y
hasil dari operasi dengan menggunakan operator pembanding adalah true atau false. 3) Operator aritmatik
32
Tabel 2.7 Operator aritmatik
Operator
Keterangan
Penggunaan
+
Tambah
X = Y+Z
-
Kurang
X = Y-Z
*
Kali
X = Y*Z
/
Bagi
X = Y/Z
\
Pembagian Bulat
X = Y\Z
^
Pangkat
X = Y^Z
4) Operator logika
Tabel 2.8 Operator logika Operator
Keterangan
Penggunaan
And
Konjungsi
Y and Z
Or
Disjungsi
Y or Z
Xor
Exclusive or
Y x or Z
not
komplemen
not Z
2.4.3.4 Perulangan/Lopping Perulangan / looping tidak bisa dipisahkan dengan bahasa pemrograman. di dalam BASCOM-AVR) perulangan yang dapat digunakan adalah sebagai berikut: 1) Do ... Loop Until Kondisi
Contoh penggunaan : Dim x as byte x=0 Do statement ... x=x +1
33
Loop until x = 10
2) While Kondisi ..... Wend
Contoh penggunaan :
Dim x as byte
x=0
While x < 10
statement
...
x=x+1
Wend 3) For..... Next
Contoh penggunaan : Dim x as byte For x = 1 to 10 statement ... Next x 2.4.3.5 Konfigurasi dasar port Agar dapat digunakan, port yang terdapat pada kontroller harus dikonfigurasi terlebih dahulu. Pada kesempatan ini kita hanya akan mengkonfigurasi port sebagai I/O (input atau output). 1) Konfigurasi port sebagai output
Dengan mengkonfigurasi port sebagai output berarti port tersebut ditugaskan untuk mengeluarkan suatu logika. Untuk mengkonfigurasi port sebagai output dapat dilakukan dengan 2 cara :
34
Konfigurasi semua pin dalam suatu port secara keseluruhan. Dengan mengggunakan cara ini berarti kita menginginkan semua pin pada port tertentu dikonfigurasi
sebagai output. Adapun cara penulisannya adalah sebagaimana dijelaskan pada sub
bab 2.4.3.5 Konfigurasi dasar port
Agar dapat digunakan, port yang terdapat pada kontroller harus dikonfigurasi
terlebih dahulu. Pada kesempatan ini kita hanya akan mengkonfigurasi port sebagai I/O (input atau output).
2) Konfigurasi port sebagai input Dengan mengkonfigurasi port sebagai input berarti port tersebut ditugaskan
untuk menangkap perubahan logika dari suatu sumber tertentu (misalnya sensor). Untuk mengkonfigurasi port sebagai input dapat dilakukan dengan 2 cara : a)
Konfigurasi semua pin dalam suatu port secara keseluruhan. Dengan mengggunakan cara ini berarti kita menginginkan semua pin pada port tertentu dikonfigurasi sebagai input. Adapun cara penulisannya adalah : Config PORTX= input. Contoh : Config PORTA = input.
b)
Konfigurasi pin tertentu dalam suatu port. Dengan menggunakan cara ini berarti kita menginginkan salah satu pin atau beberapa pin pada port tertentu dikonfigurasi sebagai input. Adapun cara penulisannya adalah: Config PINX.y = input. Contoh : Config PINA.3 = input. Pada contoh tersebut dapat dilihat bahwa hanya pin 3 (pin ke 4, karena penomoran pin dimulai dari 0) pada PORTA yang dikonfigurasi sebagai input.
35