• Tidak ada hasil yang ditemukan

Perancangan Solar Charge Controller dan Inverter pada Aplikasi Solar Panel Berbasis Atmega8535 secara Software

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Solar Charge Controller dan Inverter pada Aplikasi Solar Panel Berbasis Atmega8535 secara Software"

Copied!
100
0
0

Teks penuh

(1)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN

INVERTER PADA APLIKASI SOLAR PANEL

BERBASIS ATMEGA 8535

SECARA SOFTWARE

TUGAS AKHIR

DEVI LARASATI

112408023

PROGRAM STUDI D-3 FISIKA

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN

INVERTER PADA APLIKASI SOLAR PANEL

BERBASIS ATMEGA 8535

SECARA SOFTWARE

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

DEVI LARASATI

112408023

PROGRAM STUDI D-3 FISIKA

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : Perancangan Solar Charge Controller dan Inverter

pada Aplikasi Solar Panel Berbasis Atmega8535 secara Software

Kategori : Tugas Proyek

Nama : Devi Larasati

Nomor Induk Mahasiswa : 112408023

Program Studi : Diploma 3 ( D-3) Fisika Departemen : Fisika

Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara

Disetujui di Medan, Juli 2014

Disetujui Oleh

Prodi D-3 Fisika FMIPA USU Pembimbing, Ketua,

(4)

PERNYATAAN

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2014

(5)

PENGHARGAAN

Alhamdulillahirobbil’alamin,

Segala puji dan syukur bagi Allah Subhanahuwata’ala yang telah melimpahkan barokah, rahmat, hidayah-Nya dan menganugerahkan kemudahan serta kelancaran

sehingga penulis dapat menyelesaikan penulisan tugas proyek ini sesuia waktu yang telah

ditetapkan. Sholawat dan salam semoga senantiasa tercurahkan kepada Rasulullah

Sallallahu’alaihiwassalam sang pembawa petunjuk dan selalu menjadi inspirasi dan teladan bagi penulis.

Tugas Akhir ini disusun untuk melengkapi persyaratan dalam mencapai gelar Ahli

Madya pada Program Studi Diploma Tiga Fisika Departemen Fisika Fakultas Matematika

dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

Adapun judul Tugas Proyek ini adalah

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

Penulis menyadari bahwa tersusunnya Tugas Akhir ini dari Do’a, perhatian,

bimbingan, motivasi dan dukungan berbagai pihak, sehingga dengan keikhlasan dan

kerendahan hati pada kesempatan ini penulis mengucapkan terima kasih yang

sebesar-besarnya kepada :

1. Kedua orang tua penulis serta saudara kandung yang telah memberikan bantuan

moril maupun materil, semangat dan do’a yang begitu besar kepada penulis.

2. Ibu Dr. Susilawati, M.Si, selaku Ketua Program Studi D-3 Fisika Fakultas

Matematika dan Ilmu Pengetahuan Alam.

3. Bapak Drs. Perdinan Sinuhaji, M.S, selaku Sekretaris Program Studi D-3 Fisika

Fakultas Matematika dan Ilmu Pengetahuan Alam.

4. Bapak Dr. Tulus Ikhsan Nst, S.Si, M.Sc selaku dosen pembimbing, yang telah

banyak membantu dan mendukung penulis dalam menyelesaikan Tugas Akhir ini.

5. Seluruh Dosen dan Karyawan Program Studi D-3 Fisika Departemen Fisika

Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

6. Seluruh pihak yang telah banyak membantu penulis didalam menyelesaikan Tugas

(6)

Penulis menyadari sepenuhnya bahwa dalam pembuatan Tugas Akhir ini masih

jauh dari kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca

yang bersifat ny membangun dalam penyempurnaan Tugas Akhir ini.

Semoga laporan ini menjadi ibadah yang baik bagi penulis dan menjadi ilmu yang

bermanfaat bagi pembaca.

Amin Yaa Rabbal’alamin

Medan, Juli 2014

(7)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

ABSTRAK

Tujuan pembuatan tugas akhir ini adalah untuk mengaplikasikan Codevision AVR pada ATMega 8535 untuk mengolah data pengisian arus pada baterai aki dari solar panel. Nilai arus yang diolah pada mikrokontroler merupakan arus yang di deteksi dengan menggunakan sensor arus ACS-712. Untuk menghindari terjadinya arus balik dari baterai aki ke solar panel ketika tegangan solar panel lebih kecil daripada tegangan baterai aki, arus dari solar panel dialirkan melalui solar charge controller sebelum ke baterai aki.

Codevision AVR merupakan software untuk membuat program berbasis bahasa C yang kemudian dimasukkan ke dalam mikrokontroler. Program yang di compile pada Codevision AVR, itulah yang di eksekusi oleh mikrokontroler.

Pada alat ini, program yang dibuat adalah untuk mengontrol pengisian baterai aki oleh solar panel dan menginstruksikan mikrokontroler untuk memutus pengisian pada tegangan yang terbaca oleh mikrokontroler bernilai maksimum sesuai dengan program yang dimasukkan.

(8)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

ABSTRACT

The purpose of this final project is to apply the codevision AVR ATMega 8535 to process the data on the storage accumulator battery charging current from the solar panels. Value current is processed in the microcontroller is in the current detection using current sensor ACS-712. To prevent backflow from batteries to solar panels when the solar panel voltage is less than accumulator battery voltage, current flows from the solar panels through solar charge controller to the battery before.

Codevision AVR is a software to create a program based on the C language which are then loaded into the microcontroller. Programs that are compiled on codevision AVR, that is executed by the microcontroller.

In this tool, programs are created to control the accumulator battery charging by solar panels and instruct the microcontroller to decide on the charging voltage is read by the microcontroller according to the maximum value-added programs.

(9)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataan ii

Penghargaan iii

Abstrak v Abstract vi Daftar Isi vii

Daftar Tabel x

Daftar Gambar xi Bab I Pendahuluan ……… 1

1.1. Latar Belakang ……… 1

1.2. Rumusan Masalah ……… 2

1.3. Tujuan Penulisan ……… 2

1.4. Batasan Masalah ……… 3

1.5. Metodologi Penulisan ……… 3

1.6. Sistematika Penulisan ……… 4

Bab II Landasan Teori ……… 5

2.1. Solar Panel ……… 5

2.2. Solar Charger Controller ……… 6

2.2.1. Mikrokontroller ATMega 8535 ……… 8

2.2.1.1. Fitur ATMega8535 ……… 9

2.2.1.2. Konfigurasi Pin ATMega 8535 ……… 10

2.2.1.3. Peta Memori ATMega 8535 ……… 14

2.2.1.4. Status Register (SREG) ATMega8535 …… 16

2.2.2. Sensor Arus ACS-712 ……… 17

2.2.3. LCD ……… 19

2.2.4. Bahasa Pemograman Mikrokontroler ……… 21

(10)

2.2.5.1Pendahuluan ……… 22

2.2.5.2. Pengenal Pada Bahasa C ……… 22

2.2.5.3. Tipe Data ……… 23

2.2.5.4. Header ……… 26

2.2.5.5. Operator Aritmatika ……….... 26

2.2.5.6. Operator Pembanding ……… 28

2.2.5.7. Operator Logika ……… 28

2.2.5.8. Operator Bitwise ……… 30

2.2.5.9. Operator Penugasan dan Operator Majemuk ……… 31

2.2.5.10. Operator Penambahan dan Pengurangan ……… 32

2.2.5.11. Pernyataan If dan If Bersarang ……….... 33

2.2.5.12. Pernyataan Switch ……… 35

2.2.5.13. Pernyataan While ……… 36

2.2.5.14. Pernyataan Do..While ……… 37

2.2.5.15. Pernyataan For ……… 38

2.2.6. Software ATMega8535 Editor dan Simulator ……… 39

2.2.6.1. Software ATMega8535 Editor ……….... 39

2.2.6.2. Software Downloader ……….... 39

2.2.6.3. Software Desain PCB Eagle 4.13r ……… 40

2.2.7. Pembagi Tegangan (Voltage Divider) ………...… 41

2.2.8. Relay ……… 42

2.2.9. Baterai Aki ……… 44

2.3. Inverter ……… 45

2.3.1. Transformator ……… 46

2.3.2. Transistor Mosfet IRFz44 ……… 48

Bab III Perancangan Sistem ……… 50

3.1. Diagram Blok Sistem ……… 50

3.2. Rangkaian Mikrokontroller ATMega8535 ……… 52

3.3. Perancangan Rangkaian LCD (Liquid Crystal Display) ……… 53

3.4. Perancangan Sensor Tegangan ……… 54

(11)

3.6. Perancangan Inverter ……… 58

3.7. Flow Chart Program ……… 60

Bab IV Pengujian Rangkaian ……… 62

4.1. Pengujian Rangkaian Mikrokontroller ATMega 8535 ……… 62

4.2. Pengujian Rangkaian LCD ……… 63

4.3. Pengujian Sensor Tegangan ……… 63

4.4. Pengujian Sensor Arus ……… 68

4.5. Pengujian Inverter ……… 68

4.6. Pengujian Lama Waktu Pengisian Baterai Aki ……… 69

4.7. Program Code-Vision AVR ……… 71

Bab V Penutup ……… 82

5.1. Kesimpulan ……… 82

5.2. Saran ……… 82

(12)

DAFTAR TABEL

Halaman

Tabel 2.1 Penjelasan Pin pada Port B 12

Tabel 2.2 Penjelasan Pin pada Port D 13

Tabel 2.3 Tipe Data 24

Tabel 2.4 Operator Aritmatika 27

Tabel 2.5 Operator Pembanding 28

Tabel 2.6 Operator Logika 28

Tabel 2.7 Operator Bitwise 30

Tabel 2.8 Operator Penugasan 31

Tabel 2.9 Operator Majemuk 32

Tabel 2.10 Operator Penambahan dan Pengurangan 32

Tabel 4.1. Pengujian Sensor Tegangan pada Solar Panel dengan Baterai Aki 64 Tabel 4.2. Pengujian Sensor Tegangan pada Solar Panel 66

Tabel 4.3 Data pengujian sensor arus ACS712 68

Tabel 4.4. Data Pengujian Inverter 69

(13)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Konfigurasi Pin ATmega8535 PDIP 11

Gambar 2.2 Peta Memori Program 14

Gambar 2.3 Peta Memori Data 15

Gambar 2.4 EEPROM Data Memory 15

Gambar 2.5 Status Register ATMega 8535 16

Gambar 2.6 Sensor Arus ACS712 18

Gambar 2.7 LCD 20

Gambar 2.8 Tampilan Code Vision AVR 39

Gambar 2.9 Tampilan Ponyprog2000 40

Gambar 2.10 Tampilan software Eagle 4.13r 40

Gambar 2.11 Rangkaian Pembagi Tegangan 41

Gambar 2.12 Relay 43

Gambar 2.13 Baterai Aki Basah 45

Gambar 2.14 Trafo 46

Gambar 2.15 Hubungan Primer – Sekunder 47

Gambar 2.16 IRFz44 49

Gambar 3.1 Diagram Blok Sistem 50

Gambar 3.2 Rangkaian Sistem Minimum Mikrokontroler ATMEGA 8535 52

Gambar 3.3 Rangkaian LCD 54

Gambar 3.4 Rangkaian Sensor Tegangan 54

Gambar 3.5 Rangkaian Aplikasi Sensor Arus ACS 712 ,5 Ampere 57 Gambar 3.6 Konfigurasi Pin LM321 dan Rangkaian Inverting Amplifier 57

Gambar 3.7 Rangkaian inverter 59

(14)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

ABSTRAK

Tujuan pembuatan tugas akhir ini adalah untuk mengaplikasikan Codevision AVR pada ATMega 8535 untuk mengolah data pengisian arus pada baterai aki dari solar panel. Nilai arus yang diolah pada mikrokontroler merupakan arus yang di deteksi dengan menggunakan sensor arus ACS-712. Untuk menghindari terjadinya arus balik dari baterai aki ke solar panel ketika tegangan solar panel lebih kecil daripada tegangan baterai aki, arus dari solar panel dialirkan melalui solar charge controller sebelum ke baterai aki.

Codevision AVR merupakan software untuk membuat program berbasis bahasa C yang kemudian dimasukkan ke dalam mikrokontroler. Program yang di compile pada Codevision AVR, itulah yang di eksekusi oleh mikrokontroler.

Pada alat ini, program yang dibuat adalah untuk mengontrol pengisian baterai aki oleh solar panel dan menginstruksikan mikrokontroler untuk memutus pengisian pada tegangan yang terbaca oleh mikrokontroler bernilai maksimum sesuai dengan program yang dimasukkan.

(15)

PERANCANGAN SOLAR CHARGE CONTROLLER DAN INVERTER PADA APLIKASI SOLAR PANEL BERBASIS ATMEGA8535 SECARA SOFTWARE

ABSTRACT

The purpose of this final project is to apply the codevision AVR ATMega 8535 to process the data on the storage accumulator battery charging current from the solar panels. Value current is processed in the microcontroller is in the current detection using current sensor ACS-712. To prevent backflow from batteries to solar panels when the solar panel voltage is less than accumulator battery voltage, current flows from the solar panels through solar charge controller to the battery before.

Codevision AVR is a software to create a program based on the C language which are then loaded into the microcontroller. Programs that are compiled on codevision AVR, that is executed by the microcontroller.

In this tool, programs are created to control the accumulator battery charging by solar panels and instruct the microcontroller to decide on the charging voltage is read by the microcontroller according to the maximum value-added programs.

(16)

BAB I PENDAHULUAN

1.1. Latar Belakang

Beberapa jenis teknologi telah banyak diciptakan oleh manusia untuk

dapat mempermudah manusia dalam melakukan pekerjaannya. Sebagai salah satu

teknologi yang berkembang adalah teknologi dibidang solar cell. Menggunakan

solar cell dalam kehidupan sehari-hari bisa mengurangi biaya listrik di rumah.

Solar cell ini menggunakan energi yang tidak pernah habis dan gratis yaitu cahaya

matahari.

Matahari merupakan sumber energi yang diharapkan dapat mengatasi

permasalahan kebutuhan energi masa depan setelah berbagai sumber energi

konvensional berkurang jumlahnya serta tidak ramah terhadap lingkungan. Jumlah

energi yang begitu besar yang dihasilkan dari sinar matahari, membuat solar cell

menjadi alternatif sumber energi masa depan yang sangat menjanjikan. Solar cell

juga memiliki kelebihan menjadi sumber energi yang praktis mengingat tidak

membutuhkan transmisi karena dapat dipasang secara modular di setiap lokasi

yang membutuhkan dan sistem solar cell juga sangat bersih dan ramah

lingkungan. Jadi, sekali beli atau invest bisa menikmati untuk bertahun-tahun.

Dapat di lihat berapa alat di rumah yang tidak bisa berjalan tanpa listrik. Mulai

dari TV, DVD, kipas angin, AC hingga kulkas semuanya menggunakan listrik.

Jika tidak bisa mengatur dan berhemat, pengeluaran untuk listrik bisa sangat

besar. Menggunakan solar cell ini akan banyak membantu untuk memperkecil

(17)

Untuk lebih mengoptimalkan pemanfaatan dari sumber energi matahari

(solar cell), maka dalam laporan tugas akhir ini penulis membuat sistem

perancangan solar charge controller dan inverter. Sistem solar cell yang

digunakan terdiri dari panel solar cell, rangkaian kontroler pengisian (charge

controller) dan baterai aki 12 volt. Konsepnya cukup sederhana yaitu mengubah

cahaya matahari menjadi tegangan listrik. Tegangan listrik yang dihasilkan dari

panel solar cell masuk kedalam charge controller yang dideteksi arus listriknya

oleh sensor arus ACS-712. Arus yang dideteksi oleh sensor arus akan berbanding

lurus dengan tegangan output dari sensor arus dan ditampilkan pada LCD. Setelah

masuk ke dalam charge controller, arus listrik tersebut kemudian masuk ke dalam

baterai aki. Setelah proses pengisian berlangsung selama beberapa jam, tegangan

baterai aki akan naik. Bila tegangan baterai aki itu telah mencapai 12 volt, maka

charge controller akan menghentikan proses pengisian baterai aki.

1.2. Rumusan Masalah

Laporan tugas akhir ini membahas tentang:

1. Bagaimana merencanakan dan membuat suatu alat yang dapat mengontrol

pengisian arus pada aki baterai ?

2. Bagaimana merencanakan dan membuat suatu alat untuk menghidupkan

perangkat AC dengan sumber DC ?

1.3. Tujuan Penulisan

(18)

1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma III

Fisika FMIPA Universitas Sumatera Utara

2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasi

pengontrolan dan elektronika sebagai bidang diketahui.

3. Memberikan penjelasan tentang Codevision AVR untuk mengaktifkan

Mikrokontroler ATMega8535 dalam pengolahan data arus terukur pada

solar panel dan baterai aki.

1.4. Batasan Masalah

Adapun batasan masalah dalam laporan tugas akhir ini adalah :

1. Pembahasan mikrokontroler ATMega 8535.

2. Sensor yang digunakan adalah Sensor Arus ACS712

3. Program yang digunakan adalah Codevision AVR.

4. Sistem solar charge controller hanya melakukan pengisian pada baterai 12

V dan solar panel yang digunakan hanya 10 Watt.

1.5. Metodologi Penulisan

Adapun metode penulisan yang digunakan dalam menyusun dan menganalisa

tugas akhir ini adalah:

1. Studi literatur yang berhubungan dengan perancanangan dan pembuatan

alat ini.

2. Perencanaan dan pembuatan alat

Merencanakan peralatan yang telah dirancang baik software maupun

(19)

3. Pengujian alat

Peralatan yang telah dibuat kemudian diuji apakah telah sesuai yang telah

direncanakan.

1.6. Sistematika Penulisan

Sistematika penulisan dalam tugas akhir ini terdiri dari 5 bab, yaitu:

BAB I : PENDAHULUAN

Berisi latar belakang permasalahan, rumusan masalah, batasan masalah, tujuan

pembahasan, metodologi pembahasan, dan sistematika penulisan dari penulisan

laporan proyek ini.

BAB II : LANDASAN TEORI

Membahas tentang solar panel, solar charge controller, mikrokontroller, sensor

arus, inverter dan alat – alat pendukung lainnya.

BAB III : PERANCANGAN SISTEM

Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.

BAB IV : PENGUJIAN RANGKAIAN

Berisi tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat.

BAB V : PENUTUP

Merupakan kesimpulan dari pembahasan pada bab-bab sebelumnya dan

(20)

BAB II

LANDASAN TEORI

Landasan teori sangat membantu untuk dapat memahami suatu sistem.

Selain dari pada itu dapat juga dijadikan sebagai bahan acuan didalam

merencanakan suatu sistem. Dengan pertimbangan hal-hal tersebut, maka

landasan teori merupakan bagian yang harus dipahami untuk pembahasan

selanjutnya. Pengetahuan yang mendukung perencanaan dan realisasi alat meliputi

solar charge controller dan inverter.

2.1. Solar Panel

Solar Cell adalah salah satu jenis sensor cahaya photovoltaic, yaitu sensor

yang dapat mengubah intensitas cahaya menjadi perubahan tegangan pada

outputnya. Apabila solar cell menerima pancaran cahaya maka pada kedua

terminal outputnya akan keluar tegangan DC sebesar 0,5 volt hingga 0,5 volt.

Dalam aplikasinya solar cell lebih sering digunakan sebagai pembangkit listrik

DC tenaga surya (matahari).

Jumlah energi yang begitu besar yang dihasilkan dari sinar matahari,

membuat solar cell menjadi alternatif sumber energi masa depan yang sangat

menjanjikan. Solar cell juga memiliki kelebihan menjadi sumber energi yang

praktis mengingat tidak membutuhkan transmisi karena dapat dipasang secara

(21)

Solar Panel merupakan modul yang terdiri beberapa solar cell yang

digabung dalam hubungkan seri dan paralel tergantung ukuran dan kapasitas yang

diperlukan. Yang sering digunakan adalah modul solar cell 20 watt atau 30 watt.

Modul solar cell itu menghasilkan energi listrik yang proporsional dengan luas

permukaan panel yang terkena sinar matahari.

2.2. Solar Charge Controller

Solar charge controller adalah komponen penting dalam Pembangkit

Listrik Tenaga Surya. Pada dasarny

mengatur voltage yang didapat dari panas matahari agar voltage yang masuk

kedalam aki menjadi tidak berlebih. Beberapa fungsi dari solar charge controller

adalah (a) Mengatur arus untuk pengisian ke baterai, menghindari overcharging

dan overvoltage, (b) Mengatur arus yang dibebaskan/diambil dari baterai agar

baterai tidak full discharge, dan overloading dan (c) Monitoring temperatur

baterai.

Solar charge controller yang baik biasanya mempunyai kemampuan

mendeteksi kapasitas baterai. Bila baterai sudah penuh terisi maka secara otomatis

pengisian arus dari panel surya berhenti. Cara deteksi adalah melalui monitor

level tegangan tertentu, kemudian apabila level tegangan turun maka baterai akan

diisi kembali. Solar charge controller biasanya terdiri dari : 1 input (2 terminal)

yang terhubung dengan output panel sel surya, 1 output (2 terminal) yang

terhubung dengan baterai/aki dan 1 output (2 terminal yang terhubung dengan

(22)

sel surya karena biasanya ada diode protection yang hanya dilewati arus listrik

DC dari panel sel surya ke baterai, bukan sebaliknya.

Cara kerja solar charge controller antara lain: (a) Charging Mode Solar

Charge Controller dan (b) Mode Operasi Solar Charge Controller.

1. Charging Mode Solar Charge Controller

Dalam charging mode, umumnya baterai diisi dengan metoda three

stage charging:

a. Fase bulk : baterai akan di-charge sesuai dengan tegangan setup (bulk)

antara 14,4 – 14,6 Volt) dan arus diambil secara maksimun dari panel

surya. Pada saat baterai sudah pada tegangan setup (bulk) dimulailah fase

absorption.

b. Fase absorption : pada fase ini, tegangan baterai akan dijaga sesuai

dengan tegangan bulk, sampai solar charge controller timer (umumnya

satu jam) tercapai, arus yang dialirkan menurun sampai tercapai

kapasitas dari baterai.

c. Fase float : baterai akan dijaga pada tegangan float setting (umumnya

13,4-13,7 Volt). Beban yang terhubung ke baterai dapat menggunakan

arus maksimun dari panel surya pada stage ini.

2. Mode Operation Solar Charge Controller

Pada mode ini, baterai akan melayani beban. Apabila ada over-discharge

ataun over-load, maka baterai akan dilepaskan dari beban. Hal ini berguna

(23)

2.2.1. Mikrokontroler ATMega 8535

Mikrokontroler merupakan sebuah single chip yang didalamnya telah

dilengkapi dengan CPU (Central Processing Unit), RAM (Random Access

Memori), ROM (Read Only Memori), Input dan Output, Timer/Counter, Serial

com port secara spesifik digunakan untuk aplikasi – aplikasi kontrol dan aplikasi

serbaguna. Perangkat ini sering digunakan untuk kebutuhan kontrol tertentu

seperti pada sebuah penggerak motor. Read Only Memori (ROM) yang isinya

tidak berubah meskipun IC kehilangan catu daya. Memori penyimpanan program

dinamakan sebagai memori program. Random Access Memori (RAM) isinya akan

langsung hilang ketika IC kehilangan catudaya yang dipakai untuk menyimpan

data pada saat program bekerja. RAM yang dipakai untuk menyimpan data ini

disebut sebagai memori data.

Mikrokontroler biasanya dilengkapi dengan UART (Universal

Asychronous Receiver Transmitter) yaitu port serial komunikasi serial asinkron,

USART (Universal Syncrhronous and Asyncrhronous Serial Receiver and

Transmitter) yaitu port yang digunakan untuk komunikasi serial sinkron dan

asinkron yang kecepatannya 16 kali lebih cepat dari UART, SPI (Serial Port

Interface), SCI (Serial Communication Interface), Bus RC (Intergrated circuit

Bus) merupakan 2 jalur yang terdapat 8 bit, CAN (Control Area Network)

merupakan standart pengkabelan SAE (Society of Automatic Engineers).

Mikrokontroler saat ini sudah dikenal dan digunakan secara luas pada

dunia industri. Banyak sekali penelitian atau proyek mahasiswa yang

menggunakan berbagai versi mikrokontroler yang dapat dibeli dengan harga yang

(24)

peralatan elektronika canggih. Mikrokontroler AVR memiliki arsitektur RISC 8

bit, dimana semua instruksi dikemas dalam kode 16 bit (16 bit word) dan sebagian

besar instruksi dieksekusi dalam satu siklus clock, berbeda dengan instruksi CS51

yang membutuhkan siklus 12 clock. AVR berteknologi RISC (Reduce Instruction

Set Computing), sedangkan seri MCS51berteknologi CISC (Complex Instruction

Set Computing). Secara umum, AVR dikelompokkan menjadi beberapa kelas,

yaitu keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang

membedakan masing – masing kelas adalah memori, peripheral dan fungsinya.

Dari segi arsitektur dan instruksi yang digunakan, mereka bias dikatakan hamper

sama.

2.2.1.1. Fitur ATMega8535

Fitur-fitur yang dimiliki oleh mikrokontroler ATmega8535 adalah sebagai

berikut:

1. Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.

2. ADC internal sebanyak 8 saluran.

3. Tiga buah Timer/Counter dengan kemampuan pembandingan.

4. CPU yang terdiri atas 32 buah register.

5. SRAM sebesar 512 byte.

6. Memori Flash sebesar 8 kb dengan kemampuan Read While Write.

7. Port antarmuka SPI

8. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

9. Antarmuka komparator analog.

(25)

11.Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16

MHz.

2.2.1.2. Konfigurasi Pin ATMega 8535

Konfigurasi pin ATmega8535 dengan kemasan 40 pin DIP (Dual Inline

Package) dapat dilihat pada gambar xxxxxx. Dari gambar di atas dapat

dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:

1. VCC merupakan pinyang berfungsi sebagai masukan catu daya.

2. GND merukan pin Ground.

3. PortA (PortA0…PortA7) merupakan pin input/outputdua arah dan pin

masukan ADC.

4. PortB (PortB0…PortB7) merupakan pin input/outputdua arah dan dan

pinfungsi khusus,

5. Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin

fungsi khusus,

6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin

fungsi khusus,

7. RESET merupakan pinyang digunakan untuk me-resetmikrokontroler.

8. XTAL1 dan XTAL2 merupakan pin masukan clockeksternal.

9. AVCC merupakan pinmasukan tegangan untuk ADC.

(26)

Gambar 2.1 Konfigurasi Pin ATmega8535 PDIP

Berikut ini penjelasan mengenai konfigurasi pin ATMega8535 sebagai

berikut :

1. Port A

Pin33 sampai dengan pin 40 merupakan pin dari port A. Merupakan 8 bit

directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up

resistor (dapat diatur per bit). Output buffer port A dapat memberi arus 20 mA

dan dapat mengendalikan display LED secara langsung. Data Direction

Register port A (DDRA) harus di-setting terlebih dahulu sebelum port A

digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang

disesuaikan sebagai input, atau diisi 1 jika sebagai output.

2. Port B

Pin 1 sampai dengan pin 8 merupakan pin dari port B. Merupakan 8 bit

(27)

resistor (dapat diatur per bit). Output buffer port B dapat memberi arus 20 mA

dan dapat mengendalikan display LED secara langsung. Data Direction

Register port B (DDRB) harus di-setting terlebih dahulu sebelum port B

digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang

disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin

port B juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat

dalam tabel:

Tabel 2.1 Penjelasan pin pada port B

Pin Keterangan

PB.7 SCK (SPI Bus Serial Clock)

PB.6 VISO (SPI Bus Master Input/Slave Output)

PB.5 VOSI (SPI Bus Master Output/Slave Input)

PB.4 SS (SPI Slave Select Input)

PB.3 AIN1 (Analog Comparator Negative Input)OCC

(Timer/Counter0 Output Compare Match Output)

PB.2 AIN0 (Analog Comparator Positive Input)INT2 (External

Interrupt2 Input)

PB.1 T1 (Timer/Counter1 External Counter Input)

PB.0 T0 (Timer/Counter0 External Counter Input)XCK (JSART

External Clock Input/Output)

3. Port C

Pin 22 sampai dengan pin 29 merupakan pin dari port C. Port C sendiri

(28)

pull-up resistor (dapat diatur per bit). Output buffer port C dapat memberi arus

20 mA dan dapat mengendalikan display LED secara langsung. Data Direction

Register port C (DDRC) harus di-setting terlebih dahulu sebelum port C

digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang

disesuaikan sebagai input, atau diisi 1 jika sebagai output.

4. Port D

Pin 14 sampai dengan pin 20 merupakan pin dari port D. Merupakan 8 bit

directional port I/O. Setiap pin-nya dapat menyediakan internal pull-up

resistor (dapat diatur per bit). Output buffer port D dapat memberi arus 20 mA

dan dapat mengendalikan display LED secara langsung. Data Direction

Register port D (DDRD) harus di-setting terlebih dahulu sebelum port D

digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang

disesuaikan sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin

port D juga memiliki fungsi-fungsi alternatif khusus seperti yang dapat dilihat

dalam tabel:

Tabel 2.2 Penjelasan pin pada port D

Pin Keterangan

PD.0 RDX (UART input line)

PD.1 TDX (UART output line)

PD.2 INT0 (external interrupt 0 input)

PD.3 INT1 (external interrupt 1 input)

PD.4 OC1B (Timer/Counter1 output compareB match output)

PD.5 OC1A (Timer/Counter1 output compareA match output)

(29)

PD.7 OC2 (Timer/Counter2 output compare match output)

2.2.1.3. Peta Memori ATMega 8535

ATMega8535 memiliki dua jenis memori yaitu Data Memori dan Program

Memori ditambah satu fitur tambahan yaitu EEPROM Memori untuk penyimpan

data.

1. Program Memori

ATMEGA 8535 memiliki On-Chip In-Sistem Reprogrammable Flash

Memory untuk menyimpan program. Untuk alasan keamanan, program memori

dibagi menjadi dua bagian, yaitu Boot Flash Section dan Application Flash

Section. Boot Flash Section digunakan untuk menyimpan program Boot Loader,

yaitu program yang harus dijalankan pada saat AVR reset atau pertama kali

diaktifkan.

Application Flash Section digunakan untuk menyimpan program aplikasi

yang dibuat user. AVR tidak dapat menjalakan program aplikasi ini sebelum

menjalankan program Boot Loader. Besarnya memori Boot Flash Section dapat

diprogram dari 128 word sampai 1024 word tergantung setting pada konfigurasi

bit di register BOOTSZ. Jika Boot Loader diproteksi, maka program pada

Application Flash Section juga sudah aman.

(30)

2. Data Memori

Gambar berikut menunjukkan peta memori SRAM pada ATMEGA 8535.

Terdapat 608 lokasi address data memori. 96 lokasi address digunakan untuk

Register File dan I/O Memori sementara 512 lokasi address lainnya digunakan

untuk internal data SRAM. Register file terdiri dari 32 general purpose working

register, I/O register terdiri dari 64 register.

[image:30.595.206.422.250.400.2]

Gambar 2.3 Peta Memori Data

3. EEPROM Data Memori

ATMEGA 8535 memiliki EEPROM 8 bit sebesar 512 byte untuk

menyimpan data. Loaksinya terpisah dengan sistem address register, data register

dan control register yang dibuat khusus untuk EEPROM. Alamat EEPROM

[image:30.595.252.366.615.708.2]

dimulai dari $000 sampai $1FF.

(31)

2.2.1.4. Status Register (SREG) ATMega8535

Status register adalah register berisi status yang dihasilkan pada setiap

operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan

bagian dari inti CPU mikrokontroler.

Gambar 2.5 Status Register ATMega 8535

1. Bit 7-I : Global Interrupt Enable

Bit harus diset untuk meng-enable interupsi. Setelah itu anda dapat

mengaktifkan interupsi mana yang akan digunakan dengan cara

meng-enable bit kontrol register yang bersangkutan secara individu. Bit akan

di-clear apabila terjadi suatu interupsi yang dipicu oleh hardware, dan bit

tidak akan mengizinkan terjadinya interupsi, serta akan diset kembali oleh

instruksi RETI.

2. Bit 6-T : Bit Copy Storage

Instruksi BLD dan BST menggunakan bit-T sebagai sumber atau tujuan

dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit

T menggunakan instruksi BTS, dan sebaliknya bit-T dapat disalin kembali

ke suatu bit dalam register GPR menggunakan instruksi BDL.

3. Bit 5-H : half Carry Flag

4. Bit 4-S : Sigh Bit

Bit-S merupakan hasil operasi EOR antara Flag-N (negatif) dan flag V

(32)

5. Bit 3-V : Two’s Complement Overflow Flag

Bit berguna untuk mendukung operasi aritmatika.

6. Bit 2-N : Negative Flag

Apabila suatu operasi menghasilkan bilangan negatif, maka flag-N akan

di-set.

7. Bit 1-Z : Zero Flag

Bit akan di-set bila hasil operasi yang diperoleh adalah nol.

8. Bit 0-C : Carry Flag

Apabila suatu operasi menghasilkan carry, maka bit akan di-set.

Port I/O pada mikrokontroler ATMega8535 dapat difungsikan sebagai

input ataupun dengan keluaran high atau low. Untuk mengatur fungsi port I/O

sebagai input ataupun output perlu dilakukan setting pada DDR dan Port. Logika

port I/O dapat berubah-ubah dalam program secara byte atau hanya bit tertentu.

Mengubah sebuah keluaran bit I/O dapat dilakukan menggunakan perintah cbi

(clear bit I/O) untuk menghasilkan output low atau perintah sbi (set bit I/O) untuk

menghasilkan output high. Perubahan secara byte dilakukan dengan perintah in

atau out yang menggunakan register bantu.

2.2.2. Sensor Arus ACS-712

ACS712 adalah Hall Effect current sensor. Hall effect allegro ACS712

merupakan sensor yang presisi sebagai sensor arus AC atau DC dalam pembacaan

(33)

Gambar 2.6 Sensor Arus ACS712

Pada umumnya aplikasi sensor ini biasanya digunakan untuk mengontrol

motor, deteksi beban listrik, switched-mode power supplies dan proteksi beban

berlebih.

Sensor ini memiliki pembacaan dengan ketepatan yang tinggi, karena

didalamnya terdapat rangkaian low-offset linear Hall dengan satu lintasan yang

terbuat dari tembaga. Cara kerja sensor ini adalah arus yang dibaca mengalir

melalui kabel tembaga yang terdapat didalamnya yang menghasilkan medan

magnet yang di tangkap oleh integrated Hall IC dan diubah menjadi tegangan

proporsional. Ketelitian dalam pembacaan sensor dioptimalkan dengan cara

pemasangan komponen yang ada didalamnya antara penghantar yang

menghasilkan medan magnet dengan hall transducer secara berdekatan.

Persisnya, tegangan proporsional yang rendah akan menstabilkan Bi CMOS Hall

IC yang didalamnya yang telah dibuat untuk ketelitian yang tinggi oleh pabrik.

Sensor ini memiliki beberapa fitur penting, yaitu :

a. Jalur sinyal analog yang rendah noise

b. Bandwidth perangkat diatur melalui pin filter yang baru

c. Waktu naik keluaran 5 mikrodetik dalam menanggapi langkah masukan

(34)

d. Bandwith 50 kHz

e. Total error keluaran 1,5% pada TA = 25° dan 4% pada -40° C sampai

85°C

f. Bentuk yang kecil, paket SOIC8 yang kompak.

g. Resistansi internal 1.2 mΩ.

h. 2.1 kVRMS tegangan isolasi minimum dari pin 1-4 ke pin 5-8

i. Operasi catu daya tunggal 5.0 V

j. Sensitivitas keluaran 66-185 mV/A

k. Tegangan keluaran sebanding dengan arus AC atau DC

l. Akurasi sudah diatur oleh pabrik

m. Tegangan offset yang sangat stabil

n. Histeresis magnetic hampir mendekati nol

o. Keluaran ratiometric diambil dari sumber daya

2.2.3. LCD

LCD (liquid crystal display) merupakan suatu alat yang dapat

menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan

angka sekaligus. LCD didalamnya terdapat sebuah mikroprosesor yang

mengendalikan tampilan, kita hanya perlu membuat program untuk

berkomunikasi.

Ukuran lcd ada berbagai macam seperti :

a. lcd 16 x 2 ada 16 colom dan 2 baris

(35)
[image:35.595.238.384.80.225.2]

Gambar 2.7 LCD

Adapun konfigurasi dan deskripsi dari pin-pin LCD antara lain:

a. VCC (Pin 1)

Merupakan sumber tegangan +5V.

b. GND 0V (Pin 2)

Merupakan sambungan ground.

c. VEE (Pin 3)

Merupakan input tegangan Kontras LCD.

d. RS Register Select (Pin 4)

Merupakan Register pilihan 0 = Register Perintah, 1 = Register Data.

e. R/W (Pin 5)

Merupakan read select, 1 = read, 0 = write.

f. Enable Clock LCD (Pin 6)

Merupakan masukan logika 1 setiap kali pengiriman atau pembacaan data.

g. D0 – D7 (Pin 7 – Pin 14)

Merupakan Data Bus 1 -7.

h. Anoda ( Pin 15)

(36)

i. Katoda (Pin 16)

Merupakan masukan tegangan negatif backlight.

Display karakter pada LCD diatur oleh pin EN, RS dan RW. Jalur EN

dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa sebuah

data sedang dikirimkan. Untuk mengirimkan data ke LCD, maka melalui

program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain

RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1”

dan tunggu dan berikutnya di set.

2.2.4. Bahasa Pemograman Mikrokontroler

Pengembangan sebuah sistem menggunakan mikrokontroler AVR buatan

ATMEL menggunakan software AVR STUDIO dan CodeVisionAVR. AVR

STUDIO merupakan software yang digunakan untuk bahasa assembly yang

mempunyai fungsi yang sangat lengkap, yaitu digunakan untuk menulis program,

kompilasi, simulasi dan download program ke IC mikrokontroler AVR.

Sedangkan CodeVisionAVR merupakan software C-cross Compiler, dimana

program dapat ditulis dalam bahasa C, CodeVision memiliki IDE (Integrated

Development Environment) yang lengkap, dimana penulisan program, compile,

link, pembuatan kode mesin (assembler) dan download program ke chip AVR

dapat dilakukan dengan CodeVision, selain itu ada fasilitas terminal, yaitu

melakukan komunikasi serial dengan mikrokontroler yang sudah di program.

(37)

programmable Flash on-Chip mengizinkan memori program untuk diprogram

ulang dalam sistem menggunakan hubungan serial SPI.

2.2.5. Dasar Pemrograman ATMega8535 dengan Bahasa C 2.5.5.1. Pendahuluan

C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa

tingkat rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi

(bahasa yang berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat

tinggi mempunyai kompatibilitas antara platform. Karena itu, amat mudah untuk

membuat program pada berbagai mesin. Berbeda halnya dengan menggunakan

bahasa mesin, sebab setiap perintahnya sangat bergantung pada jenis mesin.

Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada

tahun 1972. C adalah bahasa pemrograman terstruktur, yang membagi program

dalam bentuk blok. Tujuannya untuk memudahkan dalam pembuatan dan

pengembangan program. Program yang ditulis dengan bahasa C mudah sekali

dipindahkan dari satu jenis program ke bahasa program lain. Hal ini karena

adanya standarisasi bahasa C yaitu berupa standar ANSI (American National

Standart Institute) yang dijadikan acuan oleh para pembuat kompiler.

2.5.5.2. Pengenal Pada Bahasa C

Pengenal merupakan sebuah nama yang didefinisikan oleh program untuk

menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus.

Pemberian pengenal pada program harus memenuhi syarat-syarat di bawah ini:

(38)

b. Karakter kedua berupa huruf, angka, garis bawah,;

c. Tidak menggunakan spasi;

d. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap

berbeda;

e. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator

dari bahasa C.

Contoh menggunakan pengenal yang diperbolehkan:

1. Nama

2. _nama

3. Nama2

4. Nama_pengenal

Contoh penggunaan pengenal yang tidak diperbolehkan:

1. 2nama

2. Nama+2

3. Nama pengenal

2.5.5.3. Tipe Data

Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan

dari tipe berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai

positif sedangkan signed menyebabkan nilai tipe data bernilai negatif dan

memungkinkan data bernilai positif. Perbedaan nilai tipe data dapat kita lihat pada

(39)
[image:39.595.130.497.108.397.2]

Tabel 2.3 Tipe Data

Pemodifikasi Tipe Persamaan Jangkauan Nilai

Signed char Char -128 s/d 127

Signed int Int -32.768 s/d 32.767

Signed short int Short, signed short -32.768 s/d 32.767

Signed long int Long, long int, signed

long

-2.147.483.648 s/d

2.147.483.647

Unsigned char Tidak ada 0 s/d 255

Unsigned int Unsigned 0 s/d 65.535

Unsigned short int Unsigned short 0 s/d 65.535

Unsigned long int Unsigned long 0 s/d 4.294.967.295

Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil

program,

#include <mega.8535>

#include <delay.h>

Void main (void)

{

int a, b; // pengenal

unsigned d, e;

a = 50;

b = 40;

(40)

e = 40;

PORTC = 0x00;

DDRC = 0Xff; //set PORTC sebagai output

PORTB = 0x00;

DDRB = 0Xff; // set PORTB sebagai output

While(1)

{

PORTB = a – b;

PORTC = d – e;

delay_ms(100);

};

}

Program di atas akan memberikan data di PORTB = 10 (desimal)

sedangkan PORTC = -10 (desimal) karena PORT mikrokontroler tidak dapat

mengeluarkan nilai negatif maka PORTB dan PORTC akan memiliki keluaran

0x0A tapi pada kenyataannya PORTC lebih banyak memakan memori karena

tanda negatif tersebut disimpan dalam memori.

Pada program di atas terdapat tulisan //set PORTB sebagai output yang

berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari

program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu

dengan mengawali komentar dengan tanda “ // “ ( untuk komentar yang hanya

satu baris ) dan mengawali komentar dengan tanda “ /* “ dan mengakhiri

(41)

Contoh:

// ini adalah komentar

/* ini adalah komentar

Yang lebih panjang

Dan lebih panjang lagi */

2.5.5.4. Header

Header digunakan untuk menginstruksikan kompiler untuk menyisipkan

file lain. Di dalam file header ini tersimpan deklarasi, fungsi, variable, dan jenis

mikrokontroler yang kita gunakan (pada software Code Vision AVR). File-file

yang ber akhiran .hdisebut file header.

File header yang digunakan untuk mendefinisikan jenis mikrokontroler

yang digunakan berfungsi sebagai pengarah yang mana pendeklarasian

register-register yang terdapat program difungsikan untuk jenis mikrokontroler apa yang

digunakan ( pada software Code Vision AVR ).

Contoh:

#include <mega8535.h>

#include<delay.h>

#include <stdio. h>

2.5.5.5. Operator Aritmatika

Operator aritmatika digunakan untuk melakukan proses perhitungan

matematika. Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat

(42)

Tabel 2.4 Operator Aritmatika

Operator Keterangan

+ Operator untuk penjumlahan

- Operator untuk pengurangan

* Operator untuk perkalian

/ Operator untuk pembagian

% Operator untuk sisa bagi

Contoh penggunaan operator aritmatika dapat dilihat di bawah ini.

#include < mega8535.h>

#include <delay.h>

void main (void)

{

unsigned char a, b;

a = 0x03;

b = 0x05;

DDRC 0XFF; // PORTC digunakan sebagai output

while (1)

{

PORTC = (a * b);

delay_ms(500);

}

(43)

2.5.5.6. Operator Pembanding

Operator pembanding digunakan untuk membandingkan 2 data atau lebih.

Hasil operator akan di jalankan jika pernyataan benar dan tidak dijalankan jika

salah. Operator pembanding dapat kita lihat pada tabel di bawah ini.

Tabel 2.5 Operator Pembanding

Operator Contoh Keterangan

= = x = = y Benar jika kedua data bernilai sama

!= x != y Bernilai benar jika kedua data tidak sama

> x > y Bernilai benar jika nilai x lebih besar dari pada y

< x < y Bernilai jika x lebih kecil dari y

>= x >= y Bernilai jika x lebih besar atau sama dengan y

<= x <= y Bernilai benar jika x lebih kecil atau sama dengan y

2.5.5.7. Operator Logika

Operator logika digunakan untuk membentuk logika dari dua pernyataan atau

[image:43.595.133.495.246.458.2]

lebih. Operator logika dapat dilihat pada tabel di bawah ini.

Tabel 2.6 Operator Logika

Operator Keterangan

&& Logika AND

| | Logika OR

(44)

Contoh program:

#include < mega8535.h>

#include <delay.h>

void main (void)

{

DDRC = 0XFF; // sebagai output

DDRA = 0X00; // sebagai input

while (1)

{

If ( PINA.0 == 1 )|| (PINA.1 == 1 ){

PORTC = 0XFF;

delay_ms(500);

PORTC = 0X00;

Delay_ms(500);

}

else{

PORTC = 0x00;

delay_ms(500);

}

}

}

Penjelasan program:

Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan

mengeluarkan logika 0xff kemudian logika 0x00 secara bergantian dengan selang

waktu 0,5 s. dan apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC

(45)

2.5.5.8. Operator Bitwise

Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan

operator logika adalah pada operator logika akan menghasilkan pernyataan benar

atau salah sedangkan pada operator bitwise akan menghasilkan data biner.

[image:45.595.222.403.276.478.2]

Operator bitwise dapat dilihat pada tabel di bawah ini.

Tabel 2.7 Operator Bitwise

Operator Keterangan

& Operasi AND level bit

| Operasi OR level bit

^ Operasi XOR level bit

~ Operator NOT level bit

>> Operator geser kanan

<< Operator geser kiri

Contoh program:

#include <mega8535.h>

#include <delay.h>

void main (void)

{

unsigned char a,b,c;

DDRC = 0xff; //portc sebagai output

while (1)

(46)

a = 0x12;

b = 0x34;

c = a & b;

PORTC = c;

delay_ms(500);

};

}

Penjelasan program:

a = 0x12 = 0001 0010

b = 0x32 = 0011 0000

---

a & b = 0x10 = 0001 0000

2.5.5.9. Operator Penugasan dan Operator Majemuk

Operator ini digunakan untuk memberikan nilai atau manipulasi data

[image:46.595.211.414.532.732.2]

sebuah variabel. Operator penguasa dapat kita lihat pada tabel di bawah ini:

Tabel 2.8 Operator Penugasan

Operator Keterangan

= Memberikan nilai variabel

+= Menambahkan nilai variabel

- = Mengurangi nilai variabel

*= Mengalikan nilai variabel

/= Membagi nilai variable

(47)

Contoh:

a += 2 ; artinya nilai variabel a berubah menjadi a = a + 2

b *= 4; artinya nilai variabel b berubah menjadi b = b * 4

selain operator penugasan di atas juga ada operator penugasan yang berkaitan

dengan operator bitwise seperti pada tabel di bawah ini:

Tabel 2.9 Operator Majemuk

Operator Contoh Arti

&= x &= 1 Variabel x di AND kan dengan 1

|= x |= 1 Variabel x di OR kan dengan 1

~= x ~= 1 x = ~ (1) ; x = 0xFE

^= x ^= 1 Variabel x di XOR kan dengan 1

<<= x <<= 1 Variabel x digeser kiri 1 kali

>>= x >>= 1 Variabel x digeser kanan 1 kali

2.5.5.10. Operator Penambahan dan Pengurangan

Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu

[image:47.595.174.448.271.480.2]

variabel dengan selisih 11. Operator ini dapat dilihat pada tabel di bawah ini.

Tabel 2.10 Operator Penambahan dan Pengurangan

Operator Keterangan

++ Penambahan 1 pada variable

(48)

Contoh:

a = 1;

b = 2;

a ++;

b --;

Penjelasan:

Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan

operator B— akan mengubah variabel b dari 2 menjadi 1.

2.5.5.11. Pernyataan If dan If Bersarang

Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau

lebih pernyataan dengan menghasilkan pernyataan benar atau salah. Jika

pernyataan benar maka akan di jalankan instruksi pada blok nya, sedangkan jika

pernyataan tidak benar maka instruksi yang pada blok lain yang dijalankan (

sesuai dengan arah programnya).

Bentuk pernyataan IF adalah sebagai berikut:

1. Bentuk sederhana

if (kondisi){

Pernyataan_1;

Pernyataan_2;

...

}

2. Pernyataan else

if (kondisi) {

(49)

else {

Pernyataan_2; ...; }

3. If di dalam if

Pernyataan ini sering disebut nested if atau if bersarang. Salah satu

bentuknya adalah sebagai berikut:

if (kondisi1)

Pernyataan_1; else if (kondisi2)

pernyataan_2; else if (kondisi3)

pernyataan_3; else

pernyataan;

Contoh program:

if ( PINA.0 = =1)

{

PORTC = 0xff;

}

else

{

PORTC = 0x00;

}

Penjelasan program:

Jika PINA.0 diberi input logika 1 maka PORTC akan mengeluarkan logika 0xff,

(50)

2.5.5.12. Pernyataan Switch

Pernyataan switch digunakan untuk melakukan pengambilan keputusan

terhadap banyak kemungkinan. Bentuk pernyataan switch adalah sebagai berikut.

Switch (ekspresi)

{

case nilai_1 : pernyataa_1;break;

case nilai_2 : pernyataan_2;break;

case niai_3 : pernyataan_3;break;

Defaut : pernyataan_default;break;

}

Pada pernyataan switch, masing-masing pernyataan (pernyataan_1 sampai

dengan pernyataan_default) dapat berupa satu atau beberapa perintah dan tidak

perlu berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai

sama dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama

dengan nilai_2, pernyataan_3 akan dikerjakan jika ekspresi bernilai sama dengan

nilai_3 dan seterusnya. Pernyataan_default bersifat opsional, artinya boeh

dikerjakan apabila nilai ekspresi tidak ada yang sama satupun dengan salah satu

nilai_1, nilai_2, nilai_3 dan seterusnya. Setiap akhir dari pernyataan harus

diakhiri dengan break, karena ini digunakan untuk keuar dari pernyataan swich.

Contoh :

Switch (PINA)

{

(51)

case 0xFD : PORT=0xFF;break;

}

Pernyataan di atas berarti membaca port A, kemudian datanya (PINA)

akan dicocokan dengan nilai case. Jika PINA bernilai 0xFE maka data 0x00 akan

dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika

PINA bernilai 0xFD maka data 0xFF akan dikeluarkan ke port C kemudian

program keluar dari pernyataan switch.

2.5.5.13. Pernyataan While

Pernyataan while digunakan untuk mengulangi sebuah pernyataan atau

blok kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi.

Bentuk pernyataan while adalah sebagai berikut :

while (kondisi)

{

// sebuah pernyataan atau blok pernyataan

}

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja

maka tanda { dan } bisa dihilangkan.

Contoh :

unsigned char a=0;

…..

while (a<10)

(52)

PORT=a;

a++;

}

Pernyataan di atas akan mengeluarkan data a ke port C secara

berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan setelah niai a

mencapai 10 maka pengulangan selesai.

2.5.5.14. Pernyataan Do..While

Pernyataan do…while hamper sama dengan pernyataan while, yaitu

pernyataan yang digunakan untuk menguangi sebuah pernyataan atau blok

pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk

pernyataan while adalah sebagai berikut :

do {

// sebuah pernyataan atau b;ok pernyataan

} while (kondisi).

Yang membedakan antara pernyataan while dengan do..while adalah

bahwa pada pernyataan while pengetesan kondisi dilakukan terlebih dahulu, jika

kondisi terpenuhi maka barulah blok pernyataan dikerjakan. Sebaliknya pada

pernyataan do…while blok pernyataan dikerjakan terebih dahulu setelah itu baru

diakukan pengetesan kondisi, jika kondisi terpenuhi maka dilakukan pengulangan

(53)

pernyataaan do..while blok pernyataan pasti akan dikerjakan minimal satu kali

sedangkan pada pernyataan while blok pernyataan beum tentu dikerjakan.

2.5.5.15. Pernyataan For

Pernyataan for juga digunakan untuk melakukan pengulangan sebuah

pernyataan atau blok pernyataan, tetapi berapa kali jumah pengulangannya dapat

ditentukan secara lebih spesifik. Bentuk pernyataan for adalah sebagai berikut :

for (nilai_awal ; kondisi ; perubahan)

{

// sebuah pernyataan atau blok pernyataan

}

Nilai_awal adaah nilai inisial awal sebuah variabel yang didefenisikan

terlebih dahulu untuk menentukan nilai variabel pertama kali sebelum

pengulangan.

Kondisi merupakan pernyataan pengetesan untuk mengontrol

pengulangan, jika pernyataan kondisi terpenuhi (benar) maka blok pernyataan

akan diulang terus sampai pernyataan kondisi tidak terpenuhi (salah).

Perubahan adalah pernyataan yang digunakan untuk melakukan

perubahan nilai variabel baik naik maupun turun setiap kali pengulangan

dilakukan.

Contoh :

unsigned int a;

(54)

{

PORT=a;

}

Pertama kali nilai a adalah 1, kemudian data a dikeluarkan ke port C.

selanjutnya data a dinaikkan (a++) jika kondisi a<10 masih terpenuhi maka data a

akan terus dikeluarkan ke port C.

2.5.6. Software ATMega8535 Editor dan Simulator 2.5.6.1Software ATMega8535 Editor

Instruksi - instruksi yang merupakan bahasa C tersebut dituliskan pada

sebuah editor, yaitu Code Vision AVR. Tampilannya seperti berikut ini:

Gambar 2.8 Tampilan Code Vision AVR

2.5.6.2 Software Downloader

Melakukan download program ke mikrokontroler dapat menggunakan

(55)
[image:55.595.149.475.85.288.2]

Gambar 2.9 Tampilan Ponyprog2000

2.5.6.3Software Desain PCB (Printed Circuit Board) Eagle 4.13r

Untuk mendesain PCB dapat digunakan software eagle 4.13r yang dapat

di-download di internet secara gratis . Tampilan software eagle 4.13r dapat dilihat

pada gambar 2.4 dibawah ini :

[image:55.595.151.477.466.710.2]
(56)

Cara menggunakan software ini terlebih dahulu yang dikerjakan adalah

mendesain skematik rangkaian, setelah itu memindahkannya ke dalam bentuk

board dan mendesain tata letak komponen sesuai keinginan tetapi harus sesuai

jalur rangkaian nya agar rangkaian dapat berfungsi sesuai dengan skematiknya.

Setelah itu didesain layout PCB nya , barulah siap di-print dan di-transfer ke

PCB. Pada proses pentransferan layout ke PCB dapat digunakan kertas Transfer

Paper.

2.5.7. Pembagi Tegangan (Voltage Divider)

Rangkaian pembagi tegangan biasanya digunakan untuk membuat suatu

tegangan referensi dari sumber tegangan yang lebih besar, titik tegangan referensi

pada sensor, untuk memberikan bias pada rangkaian penguat atau untuk memberi

bias pada komponen aktif. Rangkaian pembagi tegangan pada dasarnya dapat

dibuat dengan 2 buah resistor, contoh rangkaian dasar pembagi tegangan dengan

output Vo dari tegangan sumber Vi menggunakan resistor pembagi tegangan R1

[image:56.595.261.401.555.670.2]

dan R2 seperti pada gambar berikut.

(57)

Dari rangkaian pembagi tegangan diatas dapat dirumuskan tegangan

output Vo. Arus (I) mengalir pada R1 dan R2 sehingga nilai tegangan sumber VI

adalah penjumlahan Vs dan Vo sehingga dapat dirumuskan sebagai berikut.

VI = VS + VO = i . R1 + i . R2

Nampak bahwa tegangan masukan terbagi menjadi dua bagian,

masing-masing sebading dengan harga resistor yang dikenai tegangan tersebut. Sehingga

besarnya Vo dapat dirumuskan sebagai berikut.

���

=

+

×

��

2.5.8. Relay

Relay adalah komponen elektronika berupa saklar elektronik yang

digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan

lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus

listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid

sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet

akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali

terbuka.Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar

(misalnya peralatan listrik 4 ampere AC 220 V) dengan memakai arus/tegangan

yang kecil (misalnya 0.1 ampere 12 Volt DC). Dalam pemakaiannya biasanya

relay yang digerakkan dengan arus DC dilengkapi dengan sebuah dioda yang

di-paralel dengan lilitannya dan dipasang terbalik yaitu anoda pada tegangan (-) dan

katoda pada tegangan (+). Ini bertujuan untuk mengantisipasi sentakan listrik yang

terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen

(58)
[image:58.595.240.386.84.179.2]

Gambar 2.12 Relay

Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta

kekuatan relay men-switch arus/tegangan. Biasanya ukurannya tertera pada body

relay. Misalnya relay 12VDC/4 A 220V, artinya tegangan yang diperlukan

sebagai pengontrolnya adalah 12Volt DC dan mampu men-switch arus listrik

(maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay

difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi

lebih aman. Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay

jenis ini berupa batang kontak terbuat dari besi pada tabung kaca kecil yang

dililitin kawat. Pada saat lilitan kawat dialiri arus, kontak besi tersebut akan

menjadi magnet dan saling menempel sehingga menjadi saklar yang on. Ketika

arus pada lilitan dihentikan medan magnet hilang dan kontak kembali terbuka

(off).

Kontak penghubung relay terdiri dari dua bagian, yaitu :

a. Kontak NC (NormallyClose),

Kontak penghubung dalam kondisi menutup atau terhubung bila relay

(59)

tegangan yang mencukupi pada kumparannya maka kontak penghubung

menjadi terbuka.

b. Kontak NO (Normally Open).

Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat

tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi

pada kumparannya maka kontak penghubung menjadi tertutup.

2.2.7. Baterai Aki

Baterai atau aki, atau bisa juga accu adalah sebuah sel listrik dimana di

dalamnya berlangsung proses elektrokimia yang reversibel (dapat berbalikan)

dengan efisiensinya yang tinggi. Yang dimaksud dengan proses elektrokimia

reversibel, adalah di dalam baterai dapat berlangsung proses pengubahan kimia

menjadi tenaga listrik (proses pengosongan), dan sebaliknya dari tenaga listrik

menjadi tenaga kimia, pengisian kembali dengan cara regenerasi dari

elektroda-elektroda yang dipakai, yaitu dengan melewatkan arus listrik dalam arah

(polaritas) yang berlawanan di dalam sel.

Baterai berfungsi untuk menyimpan energi listrik dalam bentuk energi

kimia, yang akan digunakan untuk mensuplai (menyediakan) listik ke komponen -

komponen kelistrikan lainnya.

Accu ini berisi air accu (cairan asam belerang / sulfuric acid). Pada accu

basah, terdapat lubang dengan tutup yang dapat dibuka-tutup untuk menambah air

accu. Air accu dapat berkurang saat accu digunakan. Hal ini terjadi karena reaksi

(60)

Gambar 2.13 Baterai Aki Basah

2.3. Inverter

listrik searah (DC) menjadi arus listrik bolak balik (AC). Inverter mengkonversi

DC dari perangkat seperti

Penggunaa

untuk perangkat yang menggunakan AC (Alternating Current).

Rugi-rugi / loss yang terjadi pada

dalam bentuk panas. Effisiensi tertinggi dipegang oleh grid tie inverter yang

diklaim bisa mencapai 95-97% bila beban outputnya hampir mendekati rated

bebannya. Sedangkan pada umumnya effisiensi inverter adalah berkisar 50-90%

tergantung dari beban outputnya. Bila beban outputnya semakin mendekati beban

kerja inverter yang tertera maka effisiensinya semakin besar, demikian pula

sebaliknya. Modified sine wave inverter ataupun square wave inverter bila

dipaksakan untuk beban-beban induktif maka effisiensinya akan jauh berkurang

dibandingkan dengan true sine wave inverter. Perangkatnya akan menyedot daya

20% lebih besar dari yang seharusnya.

(61)

1. Fungsi inverter sebagai perubah tegangan Direct current menjadi

Alternating current.

2. Fungsi inverter sebagai penggerak motor.

Fungsi inverter sebagai perubah tegangan DC ke AC ada dua di pasaran yaitu

1. Inverter yang dilengkapi charger aki.

2. Inverter tanpa charger.

2.3.1. Transformator

Transformer atau trafo adalah kompone

mengubah taraf suatu tegangan

merupakan piranti yang menggunakan transformator step-down.

Transformator step-down

Gambar 2.14 Trafo

Transformator bekerja berdasarkan prinsi

Tegangan masukan bolak-balik yang membentangi primer menimbulka

(62)

balik ini menginduksika

semua daya pada lilitan primer akan dilimpahkan ke lilitan sekunder.

Hubungan Primer-Sekunder

Gambar 2.15 Hubungan Primer - Sekunder

Fluks pada transformator

Rumus untuk fluks magnet yang ditimbulkan lilitan primer adalah

dan rumus untuk GGL induksi yang terjadi di lilitan sekunder adalah .

Karena kedua kumparan dihubungkan dengan fluks yang sama, maka

dimana dengan menyusun ulang persamaan akan didapat

sedemikian hingga . Dengan kata lain, hubungan

antara tegangan primer dengan tegangan sekunder ditentukan oleh perbandingan

jumlah lilitan primer dengan lilitan sekunder.

(63)

2.3.2. Transistor Mosfet IRFZ44

Transistor FET bekerja bergantung dari satu pembawa muatan, baik itu

elektron atau hole. Karena hanya bergantung pada satu pembawa muatan saja,

transistor ini disebut komponen unipolar. Transistor FET memiliki impedansi

input (input impedance) yang sangat besar. Terutama jika digunakan sebagai

switch karena resistansi dan disipasi dayanya yang kecil.

Ada dua jenis transistor FET yaitu JFET (junction FET) dan MOSFET

(metal-oxide semiconductor FET). Pada dasarnya kedua jenis transistor memiliki

prinsip kerja yang sama, namun tetap ada perbedaan yang mendasar pada struktur

dan karakteristiknya.

Ada dua jenis MOSFET yaitu jenis depletion-mode dan jenis

enhancement-mode. Jenis MOSFET yang kedua adalah komponen utama dari

gerbang logika dalam bentuk IC (integrated circuit), uC (micro controller) dan uP

(micro processor) yang tidak lain adalah komponen utama dari komputer modern

saat ini.

FET bentuk fisiknya seperti transistor. Fungsinya adalah untuk menaikkan

tegangan atau menurunkan tegangan. FET memiliki tiga kaki juga yaitu :

a. Gate (G) adalah kaki input

b. Drain (D) adalah kaki output

c. Source (S) adalah kaki sumber

Fungsinya biasanya digunakan pada rangkaian power supply jenis

switching untuk menghasilkan tegangan tinggi untuk menggerakkan trafo.

Kakinya biasanya sudah pasti yaitu bila kita hadapkan FET ke arah kita maka

(64)
[image:64.595.141.482.91.197.2]
(65)

BAB III

PERANCANGAN SISTEM

3.1. Diagram Blok Sistem

ATMEGA 8535 SOLAR

PANEL TEGANGANPEMBAGI

Relay 1

Relay 2

LCD Sensor arus

baterai PEMBAGI

TEGANGAN

[image:65.595.112.539.190.557.2]

Load/inverter

Gambar 3.1 Diagram Blok Sistem

Penjelasan dari masing-masing blok adalah sebagai berikut:

a. Solar panel berfungsi sebagai sumber arus untuk pengisian pada baterai.

b. Pembagi tegangan digunakan sebagai rangkaian untuk membagi tegangan

(66)

tegangan dari solar panel bernilai 21 volt, sedangkan fitur adc pada

mikrokontroler hanya bisa dilalui oleh tegangan 5 volt.

c. Sensor arus ACS-712 digunakan untuk mendeteksi arus yang berasal dari

solar panel ke baterai.

d. Baterai digunakan sebagai sumber tegangan dan untuk menghidupkan

beban dan sistem.

e. Mikrokontroler ATMega8535 sebagai pengolah data dari inputan.

f. Relay digunakan sebagai pemutus dan penyambung arus dari solar panel

ke baterai.

g. LCD digunakan untuk menampilkan hasil pengukuran dari solar panel dan

baterai.

h. Load/Inverter digunakan sebagai beban dan mengubah arus dc dari baterai

(67)

3.2. Rangkaian Mikrokontroler ATMega8535

Rangkaian sistem minimum mikrokontroler ATMEGA 8535 dapat dilihat

[image:67.595.120.489.172.537.2]

pada gambar 3.2 di bawah ini :

Gambar 3.2 Rangkaian Sistem Minimum Mikrokontroler ATMEGA 8535

Dari gambar 3.2, Rangkaian tersebut berfungsi sebagai pusat kendali dari

seluruh sistem yang ada. Komponen utama dari rangkaian ini adalah IC

Mikrokontroler ATMega8535. Semua program diisikan pada memori dari I

Gambar

Gambar 2.3 Peta Memori Data
Gambar 2.7 LCD
Tabel 2.3 Tipe Data
Tabel 2.6 Operator Logika
+7

Referensi

Dokumen terkait

Tugas akhir ini bertujuan untuk membuat alat untuk meningkatkan kinerja panel surya dengan menggunakan sensor LDR (Light Dependent Resistor) yang hasil tegangan dan

DC. Untuk prinsip kerja sendiri hanya mengeluarkan tegangan pada akumulator. Ketika proses pengisian arus dari solar cell menuju ke baterai terputus atau.. dalam

Arduino akan menghasilkan nilai duty cycle yang bervariasi yang digunakan untuk mengontrol buck converter agar menjaga keluaran dari panel surya tetap pada daya

Maximum Power Point Tracking (MPPT) adalah sebuah metode yang di gunakan pada charge controller pada sistem pembangkit listrik turbin angin dan sistem solar untuk memaksimalkan

Dapat mengukur daya tegangan dan arus yang masuk ketika pengisian baterai power bank menggunakan solar cell sebagai sumber energi listrik menggunakan dan sistem kontrol

KESIMPULAN Tegangan output panel surya rata – rata sebesar 20 Volt tanpa cuk converter, namun untuk pengisian baterai tegangan keluaran panel surya di stabilkan sebesar 14 Volt dengan

Penggunaan panel surya secara langsung untuk pengisian baterai tidak maksimal, hal ini dikarenakan tegangan keluaran dari panel surya akan langsung turun menjadi sama

Dalam memanfaatkan sumber listrik dari cahaya matahari dengan menggunakan sistem fotovoltaik maka cara yang tepat adalah menyimpan energi listrik dari keluaran panel