baterai. Hubungan tombol ke mikrokontroler dapat dilihat seperti pada Gambar 3.13.
Gambar 3.13 Hubungan Tombol ke Mikrokontroler
Pada Gambar 3.13 Tombol 1 dan tombol 4 dihubungkan ke PB 6 dan PB2 pada kaki mikrokontroler yang berfungsi untuk mengatur besar kecil nilai
tegangan minimum, Tombol 2 dan 5 dihubungkan ke PB 5 dan PB 3 yang berfungsi untuk mengatur besar kecil nilai tegangan maksimum. Dan Tombol 3
dihubungkan ke PB 4 yang berfungsi untuk memulai proses pengisian.
3.9 Hubungan LCD ke Mikrokontroler
LCD digunakan untuk menampilkan nilai tegangan dan suhu pada saat pengisian baterai, sehingga dapat diketahui kondisi tegangan baterai. LCD yang
digunakan adalah LCD 2x16, lebar display 2 baris 16 kolom. Hubungan antara mikrokontroler dan LCD diperlihatkan pada Gambar 3.14.
Universitas Sumatera Utara
Gambar 3.14 Hubungan LCD ke Mikrokontroler
Pada Gambar 3.14 pin 1 dihubungkan ke Vcc 5V, pin 2 dan 16 dihubungkan ke Ground GND, pin 3 merupakan pengaturan tegangan contrast
dari LCD, pin 4 merupakan register RS, pin 5 merupakan RW readwrite, pin 6 merupakan Enable, pin 11-14 merupakan data. Reset Enable RW dan data
dihubungkan ke mikrokontroler ATMega 8535. Fungsi dari potensiometer adalah untuk mengatur gelapterangnya karakter yang ditampilkan pada LCD.
Universitas Sumatera Utara
Start Inisialisasi
Vmax,Vmin
Apakah Nilai ADC=0?
Cek tegangan baterai
Tampilkan tegangan baterai ,
Vmax,Vmin
V=Vmin ?
Aktifkan relayON Proses charging
V=Vmax ?
Non aktifkan relayOFF Tampilkan
Pesan error Tidak
Ya
Ya Tidak
Ya Tidak
Tekan Tombol?
Masukan nilai Vmax, Vmin baru
Ya Tidak
3.10 Flowchart Program
Diagram alir yang menggambarkan aliran atau proses kerja program diperlihatkan pada Gambar 3.15.
Gambar 3.15 Diagram alir sistem secara keseluruhan
Universitas Sumatera Utara
Program dimulai dengan menampilkan tegangan maksimum dan minimum yang kemudian dilanjutkan dengan pembacaan tegangan baterai melalui ADC.
Apabila tegangan minimum, maka charger akan aktif dan ketika tegangan baterai mencapai maksimum maka charger akan putus. Selanjutnya pada saat pengisian
sudah berhenti maka tampilan akan kembali seperti semula. Prinsip Kerja dan fungsi perintah-perintah pada program awal.
define charger PORTB.7 define indikator PORTB.6
define setting PINB.3 define max_naik PINB.5
define max_turun PINB.1 define min_naik PINB.4
define min_turun PINB.2 Perintah program diatas merupakan perintah untuk penamaan port yaitu
memberikan nama ataupun inisialisasi pada port-port yang digunakan. Tujuan penamaan adalah untuk mempermudah pemograman.
Alphanumeric LCD Module functions asm
.equ __lcd_port=0x15 ;PORTC endasm
include lcd.h Perintah diatas untuk mensetting LCD di port C
LCD module initialization lcd_init16;
lcd_gotoxy4,0; lcd_putsfMy Projek; lcd_gotoxy5,1; lcd_putsfBukry;
delay_ms2000; lcd_clear;
V_max=13.8; V_min=12.1;
settingan=1; baca_ADC=0;
charger=0;
Universitas Sumatera Utara
indikator=0; status=0;
simpan_sensor=0; simpan_nilai_V=0;
while 1 Perintah diatas merupakan inisialisasi dan tampilan pada LCD
ADC initialization ADC Clock frequency: 750,000 kHz
ADC Voltage Reference: AVCC pin ADC High Speed Mode: Off
ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE 0xff;
ADCSRA=0xA4; SFIOR=0x0F;
Perintah diatas merupakan inisialisasi ADC. {
nilai_V=read_adc1; lcd_gotoxy0,0; lcd_putsfBaca Nilai ADC;
sprintfdatalcd,nilai ADC=d,nilai_V; lcd_gotoxy0,1;
lcd_putsdatalcd; delay_ms1000;
lcd_clear; ifmax_turun==0{baca_ADC=0; delay_ms1000;}
} delay_ms500;
}; Perintah diatas untuk membaca nilai tegangan dengan menggunakan ADC.
InputOutput Ports initialization Port A initialization
Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T PORTA=0x00;
DDRA=0x00;
Universitas Sumatera Utara
Port B initialization Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=In
Func1=In Func0=Out State7=0 State6=0 State5=P State4=P State3=P State2=P State1=P
State0=0 PORTB=0x3E;
DDRB=0xC1; Port C initialization
Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T PORTC=0x00;
DDRC=0x00; Port D initialization
Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T PORTD=0x00;
DDRD=0x00; Printah diatas merupakan inisialisasi setiap port yang dipakai.
ifnilai_V1=V_max{charger=0; indikator=0; status=0;} ifnilai_V1=V_min{charger=1; indikator=1; status=1;}
Perintah diatas untuk mengaktifkan dan memutuskan charger setelah
tegangan baterai yang dibaca ADC sesuai dengan nilai Vmax dan Vmin.
Universitas Sumatera Utara
46
BAB IV PENGUJIAN SISTEM