Program Perancangan Sistem Multi Locker Dengan Penyandian Berbasis Mikrokontroler Atmega 8 Menggunakan Android Phone

Flow chart diatas menjelaskan aliran proses system yang ditentukan oleh program yang dibuat. Dimulai dari inisialisasi dan nilai awal, kemudian program akan mulai membaca input yaitu input serial dari user melalui Bluetooth adapter. Jika terdapat masukan, maka program akan verifikasi password tersebut. Jika password benar maka locker akan dibuka sesuai kode yang diberikan. Sedangkan jika salah, program akan cek jumlah kesalahan, bila mencapai lebih 3 kali maka buzzer akan diaktifkan. Jika belum mencapai 3 lebih maka counter akan ditambahkan. Proses mengunci kembali locker yang telah dibuka cukup dengan mengirim tanda tanpa disertai password. Flow chart diatas memberikan aliran 1 siklus kerja system.

3.9 Program

Adapun program ringkas yang diisikan ke dalam IC Mikrokontroler ATmega 8 adalah sebagai berikut: include mega8.h include delay.h include stdio.h unsigned char x,j,t,Data,I,A,B,C,D,E; void Open_Lock1void{ for j=0;j18;j++{ PORTC.0 = 1 ;delay_ms200; PORTC.1 = 2 ;delay_ms200; PORTC.2 = 4 ;delay_ms200; PORTC.3 = 8 ;delay_ms200; } PORTC = 0 ; } void Close_Lock1void{ for j=0;j18;j++{ PORTC.3 = 8 ;delay_ms200; Universitas Sumatera Utara PORTC.2 = 4 ;delay_ms200; PORTC.1 = 2;delay_ms200; PORTC.0 = 1 ;delay_ms200; } PORTC = 0 ; } void Close_Lock2void{ for j=0;j18;j++{ PORTD.1 = 1 ; delay_ms200;PORTD.4 = 0 ; PORTD.2 = 1 ; delay_ms200;PORTD.1 = 0 ; PORTD.3 = 1 ; delay_ms200;PORTD.2 = 0 ; PORTD.4 = 1 ; delay_ms200;PORTD.3 = 0 ;PORTD.4 = 0 ; } } void Open_Lock2void{ for j=0;j18;j++{ PORTD.4 = 1 ; delay_ms200;PORTD.1 = 0 ; PORTD.3 = 1 ; delay_ms200;PORTD.4 = 0 ; PORTD.2 = 1 ; delay_ms200;PORTD.3 = 0 ; PORTD.1 = 1 ; delay_ms200;PORTD.2 = 0 ;PORTD.1 = 0 ; } } void Open_Lock3void{ for j=0;j18;j++{ PORTB.0 = 1 ;delay_ms200; PORTB.1 = 2 ;delay_ms200; PORTB.2 = 4 ;delay_ms200; PORTB.3 = 8 ;delay_ms200; } PORTB = 0 ; } Universitas Sumatera Utara void Close_Lock3void{ for j=0;j18;j++{ PORTB.3 = 8 ;delay_ms200; PORTB.2 = 4 ;delay_ms200; PORTB.1 = 2;delay_ms200; PORTB.0 = 1 ;delay_ms200; } PORTB = 0 ; } void mainvoid { PORTB=0x00; DDRB=0xFF; PORTC=0x00; DDRC=0x3F; PORTD=0xE0; DDRD=0x1E; UCSRA=0x00; UCSRB=0x10; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47; t = 10; x = 0; while 1 {XT:if UCSRA 1RXC{ Data = UDR; PORTC.4 = 1; delay_ms15;PORTC.4 = 0; Universitas Sumatera Utara ifI == 1{ A = Data;} ifI == 2{ B = Data;} ifI == 3{ C = Data;} ifI == 4{ D = Data;} ifI == 5{ E = Data;} ifI 5 { I = 0;} if Data == {I = 0;} if Data == {I = 0;if A==3{if B==2{if C==4{if D==1{if E==1{Open_Lock1;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==4{if B==3{if C==2{if D==1{if E==2{Open_Lock2;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==5{if B==2{if C==3{if D==1{if E==3{Open_Lock3;x = 0;goto XT;}}}}}x++;} if Data == {I = 0;if A==3{if B==2{if C==4{if D==1{x = 0;goto XT;}}}}} if Data == {I = 0;if A==5{if B==2{if C==1{Close_Lock1;x = 0;}}}} if Data == {I = 0;if A==7{if B==3{if C==2{Close_Lock2;x = 0;}}}} if Data == {I = 0;if A==8{if B==1{if C==3{Close_Lock3;x = 0;}}}} I++;} if x 6 {PORTC.4 = 1; delay_ms200;PORTC.4 = 0; delay_ms200;} } } Universitas Sumatera Utara BAB 4 PENGUJIAN ALAT DAN PROGRAM

4.1 Pengujian Rangkaian Mikrokontroler ATMega 8