6
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
7
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
8
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
9
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.
10
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
11
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.
12
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.
13
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
14
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 :
Gambar 2.7 Blok Diagram Pembangkit Listrik Tenaga Surya.
Solar sell
(PV)
DC to DC
Boost
Coneverter
)))
Pompa DC
24 volt
ATMEGA 16
15
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 Buck-
boost dan cuk merupakan kombinasi dari dari keduanya. Tujuan dari switch-mode ini
16
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
17
=
=
=
=
=
……………………………………………… (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.
18
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
19
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
20
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.
21
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).
22
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.
23
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.
24
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
25
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)
26
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
27
maksimal frekuensi clock XCK eksternal dibatasi oleh persamaan sebagai berikut
Fxck <fosc/4 .
c) Operasi synchronous clock
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
28
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
29
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.
30
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
31
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-
32,768 sampai +32,767.
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 :
32
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
33
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
34
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 :
35
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.