Anda di halaman 1dari 16

PROTOTYPE PENGAMAN PINTU RUMAH BERBASIS MIKROKONTROLER

ATMEGA 16
LAPORAN PROYEK AKHIR
PRAKTIKUM MIKROKONTROLLER
PROTOTYPE PENGAMAN PINTU RUMAH BERBASIS MIKROKONTROLER
ATMEGA 16
Dosen Pengampu : Dr. Putu Sudira, M.P

DISUSUN OLEH :
Muthiah Ikhwandhia
NIM. 12502241016
ANGGOTA KELOMPOK :
Andhi Triyanto
NIM. 12502241009
Shalahudin Kamal
NIM. 12502241011

PROGRAM STUDI PENDIDIKAN TEKNIK ELEKTRONIKA


JURUSAN PENDIDIKAN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
2014

A.

JUDUL
Prototype Pengaman Pintu Rumah Berbasis Mikrokontroler Atmega 16

B.

LATAR BELAKANG
Sistem keamanan yang menggunakan sistem mikrokontroller telah digunakan dalam dunia industri, atau
pun di dalam kehidupan sehari - hari karena sistem keamanan yang menggunakan mikrokontroller lebih
efektif dan terjamin keamanannya. Aplikasi dari sistem keamanan ini bisa digunakan pada ruangan kelas.
Selain keamanan, kedisiplinan juga sangat diperlukan dalam dunia pendidikan, dimana setiap peserta didik
yang masuk ruangan kelas harus sesuai dengan waktu yang telah ditentukan. Sistem keamanan dan kedisiplinan
ini diaplikasikan pada pintu kelas yang terintegrasi dari komponen elektronika dan sistem
mikrokontroller yang dapat digunakan dalam kehidupan sehari-hari. Berdasarkan hal tersebut maka dibuatlah
sebuah alat yang diberi judul Prototype Pengaman Pintu Rumah Berbasis Mikrokontroler Atmega 16.

Adapun alat tersebut merupakan perangkat elektronika berupa pintu yang dapat terbuka
secara otomatis dengan menggunakan password dan diaplikasikan didalam rumah. Rangkaian
ini juga memiliki output berupa Motor stepper yang menggerakkan pintu, LCD dan lampu
indikator yang berfungsi untuk mendukung proses kerja alat agar bekerja dengan sebaik
mungkin.
Pada laporan ini telah dibahas dan dipelajari lebih dalam tentang perancangan
sebuah alat elektronika berbasis mikrokontroler yang dikendalikan oleh bahasa pemograman
Assembler yang dapat menggerakkan motor stepper sebagai pengunci agar pintu dapat
terbuka secara otomatis dan semua indikasi yang terkombinasi dengan alat dapat diaktifkan
dengan menggunakan password dan dapat dipahami fungsi, karakteristik, serta cara kerja
dari alat yang telah dibuat dan diaplikasikan pada pintu sebagai pengaman ataupun pada
aplikasi lainnya yang ada dalam kehidupan sehari-hari.
C.

TUJUAN

Setelah melaksanakan proyek diharapkan mampu :


1. Mengembangkan pengetahuan yang telah diperoleh pada matakuliah Mikrokontroler di Jurusan
Pendidikan Teknik Elektronika FT UNY.
2. Merancang sistem pengaman pintu rumah dengan kode pengaman berbasis mokrokontrole
ATMega 16.

D.

DESAIN RANCANGAN

1.

Gambaran Umum Alat dan Analiasa dan Perancangan Alat


Pembuka
pintu
otomatis
adalah
sebuah
alat
yang
berfungsi
membuka
pintu
sebagai penganti pintu konvensional. Perancangan alat keamanan sistem pintu otomatis ini merupakan alat
mampu memberi alternative keamanan kepada tuan rumah. Alat ini terdiri atas : perangkat keras
dan perangkat lunak. Perangkat keras terdiri atas mikrokontroler, input kode, mini switch yang berfungsi
sebagai inputan yang dihubungkan ke IC ATMega 16 yang diisi sebagai proses, serta motor stepper dan LCD
sebagai
output.
Pada bagian ini yang akan mengacu pada hasil mengeksekusi pintu. Pada rangkaian ini terdapat input kode
yang akan membaca setiap masukkan data dalam password. Password dimasukan secara benar
maka motor stepper akan bergerak dan memutar tuas kunci pada pintu. LCD berfungsi untuk menampilkan
perintah- perintah untuk membuka pintu, mengunci pintu, mengganti password.

2.

Blok Diagram Sistem

Gambar 1. Blok Diagram Sistem Pengaman Pintu berbasis Mikrokontroller ATMega 16

a.
1)

2)

3)

4)

5)

6)

Keterangan Blok Diagram Sistem :


Blok Input
Input Kode / Potensiometer
Input kode berupa rangkaian potensiometer yang berfungsi untuk memasukkan kode/sandi
sebagai pengaman. Kode yang dapat dimasukkan dari angka 0 sampai dengan angka 9.
Mini Switch 1
Mini Switc 1 digunakan sebagai tombol yang berada di dalam ruangan untuk membuka pintu
tanpa harus memasukkan kode sandi pengaman.
Mini Switc 2
Mini Switch 2 digunkan sebagai tombol yang berada di dalam ruangan untuk mengunci pintu
tanpa haru memasukkan kode sandi pengaman.
Mini Switch 3
Mini Switch 3 digunakan sebagai tombol yang berada di luar ruangan sebagai menu pilihan
masukkan kode, ganti kode dengan memasukkan kode sandi pengaman.
Mini Switch 4
Mini Switch 4 digunakan sebagai tombol yang berada di luar ruangan untuk megunci pintu
dengan memasukkan kode sandi pengaman.
Mini Switch 5
Mini Switch 3 digunakan sebagai tombol yang berada di luar ruangan untuk OK.

b.

Blok Proses
Pada blok diagram ini menggunakan mikrokontroller ATMega 16 yang menjadi pengolah
data utama dari input kemudian melakukan eksekusi program sehingga dapat dihasilkan suatu
output. Mikrokontroler ini merupakan suatu device yang merupakan penggabungan beberapa
jenis device yaitu mikroprosesor (sebagai otak dari chip ini), internal random access memory
(RAM) , internal electrical erasable programmable read only memory (EEPROM) sebagai
program memoridan I/O port , sehingga tidak memerlukan I/O untuk pengambilan atau
pengeluaran data dantidak memerlukan memori untuk penyimpanan data, karena semua
media tersebut telah ada didalam chip mikrokontroler tersebut. Hanya bila diperlukan fasilitas
tersebut dapat ditambah diluar chip.

c.
1)

Blok Output
LCD

LCD digunakan untuk menampilkan output yang berupa tulisan perintah untuk memasukkan
kode, mengganti kode, dan peringatan pada eksekusi program yang dilakukkan.
2)

Driver Motor
Driver motor berfungsi untuk mengendalikan putaran motor stepper. Driver
ini berfungsi unuk memutar motor stepper arah jarum jam atau pun berlawanan jarum jam.
Rangkaian ini dikendalikan oleh mikrokontroler AVR ATMega 16. Jadi dengan
memberikan sinyal high secara bergantian ke input dari rangkaian driver motor stepper
tersebut, maka pergerakan motor stepper untuk membuka pintu sudah dikendalikan oleh
miokrokontroler AVR ATMega 16.
3)
a.

Skema Rangkaian

Rangkaian Input Kode/Potensiometer

Gambar 2. Rangkaian Input Kode dengan Potensiometer


b.

Rangkaian Driver Motor

Gambar 3. Rangkaian Driver Motor


c.

Rangkaian Power Supply

Gambar 4. Rangkaian Regulator


d.

Rangkaian Reset

Gambar 5. Rangakain Reset


e.

Rangkaian Osilator

Gambar 6. Rangkaian Osilator


f.

Rangkaian Sistem Minimum

Gambar 7. Rangkaian Sistem Minimum


2.

Desain Box

Gambar 8. Desain Box

Gambar 9. Tata Letak Tampilan Menu

Gambar 10. Instalasi Rangkaian


E.
1.
a.
1)
2)
3)
4)
5)
6)
7)
b.
c.
d.
e.
f.
g.

LANGKAH PEMBUATAN
Pembuatan Desaian PCB
Membuat skema rangkaian di ISIS diantaranya adalah rangkaian :
Rangkaian input kode
Rangkaian driver motor
Rangkaian regulator
Rangkaian reset
Rangkaian osilator
Rangkaian downloader
Rangkaian sistem minimum
Membuat layout PCB di ARES.
Mencetakan layout PCB yang telah dibuat di ARES ke kertas glossy.
Menyetrika papan PCB yang telah ditempel layout PCB di kertas glossy.
Melarutkan PCB dengan larutan Fe3Cl.
Memasangan komponen atau menyolder komponen.
Menghubungkan antar rangkaian dengan rangkaian lainnya.

2.
a.
b.

Pembuatan Desain Box


Mengukur triplek sesuai dengan desain box yang telah ditentukan.
Memotong triplek sesuai dengan ukuran desain box yang telah dibuat.

c.
d.

Menyusun dan menempel bagian bagian dari box sesuai dengan desain.
Memasang motor stepper dan PCB sesuai dengan tempatnya masing masing.

3.

Pemograman Mikrokontroller
/***********************************************************
PROTOTIPE PENGAMAN PINTU BERBASIS MIKROKONTROLER ATMEGA 16
***********************************************************/
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD functions
#include <alcd.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
int coba=0;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0 = 0xFD;
if (coba==1)
{lcd_gotoxy(0,0);lcd_putsf("MATI ");}
}

eeprom int kode_satuan=0, kode_ribuan=0, kode_ratusan=0, kode_puluhan=0;


unsigned char buff[33],h,m,s;
int i,sat,pul,rat,rib,a,b,c,d;
int menu,ganti,masuk,kode,masuk,kode,kunci;
int terbuka,terkunci;
// Declare your global variables here

unsigned char step[]={0b0001,0b0010,0b0100,0b1000};


int i,j;
void buka()
{
int j=0;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Membuka Kunci");
delay_ms(500);
do
{
j++;
i++;
if (i>3)
{
i=0;
}
PORTD = step[i];
delay_ms(20);
}while (j<500);
PORTD=0b00010000;
}
void tutup()
{
int j=0 ;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Mengunci Pintu");
do
{
j++;
i--;
if (i<0)
{
i=3;
}
PORTD = step[i];
delay_ms(20);
}while (j<500);
PORTD=0b00000000;
}
void input(void)
{
sat = read_adc(0)/100;

pul = read_adc(1)/100;
rat = read_adc(2)/100;
rib = read_adc(3)/100;
if (sat>9){sat=0;};
if (pul>9){pul=0;};
if (rat>9){rat=0;};
if (rib>9){rib=0;};
lcd_gotoxy(7,1);
sprintf(buff,"%d %d %d %d",rib,rat,pul,sat);
lcd_puts(buff);
delay_ms(100);
}
void cek(void)
{
if(rib==kode_ribuan&&rat==kode_ratusan&&pul==kode_puluhan&&sat==kode_satuan
)
{
masuk=1;
buka();
do{
PORTD=0xFF;
lcd_clear();
lcd_gotoxy(i,0);
lcd_putsf("Assalamualaikum");
i++;
delay_ms(500);
if(i==18){i=0;}
if (PINC.5==0)
{
menu=0;
masuk=0;
lcd_clear();
}
if (PINC.4==0)
{
delay_ms(5);
kunci=1;
masuk=0;
}
}while(masuk==1);
if (kunci==1);
{
tutup();
menu=kode=masuk=ganti=0;
lcd_clear();
}

}
else
{
rib=rat=pul=sat=0;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Kode Salah");
delay_ms(1000);
coba++;
menu=3;
}
}
void cek_ganti(void)
{
if(rib==kode_ribuan&&rat==kode_ratusan&&pul==kode_puluhan&&sat==kode_satuan
)
{
rib=rat=pul=sat=0;
ganti=1;
delay_ms(20);
lcd_clear();
do{
lcd_gotoxy(0,0);
lcd_putsf("Mskan Kode Baru");
lcd_gotoxy(0,1);
lcd_putsf("Kode =");
input();
if (PINC.7==0)
{
kode_satuan=sat;
kode_puluhan=pul;
kode_ratusan=rat;
kode_ribuan=rib;
delay_ms(20);
ganti=2;
rib=rat=pul=sat=0;
do{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Kode Baru=");
lcd_gotoxy(0,1);
sprintf(buff,"%d %d %d %d",kode_ribuan, kode_ratusan,
kode_puluhan, kode_satuan);
lcd_puts(buff);
delay_ms(1000);
menu=1;
if (PINC.5==0)

{
ganti=3;
menu=3;
lcd_clear();
}
}while(ganti==2&&menu==2);
}
}while(ganti=1&&menu==2);
}
else
{
ganti=0;
menu=3;
rib=rat=pul=sat=0;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("Kode Awal Salah");
delay_ms(1000);
menu=2;
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf(" ");
delay_ms(1000);
}
}
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0xFF;
DDRC=0x00;
PORTD=0x00;
DDRD=0xFF;
TCCR0=0x07;
TCNT0=0xFD;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;

OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SPCR=0x00;
TWCR=0x00;

lcd_init(16);
while (1)
{
if (PINC.5==0)
{
menu=1;
delay_ms(200);
do{
lcd_gotoxy(0,0);
lcd_putsf("Masukkan Kode");
lcd_gotoxy(0,1);

lcd_putsf("Kode =");
if (PINC.5==0)
{
delay_ms(100);
menu=2;
lcd_clear();
}

if (PINC.7==0)
{
kode=1;
do{
input();
if (PINC.7==0)
{
cek();
}
if (PINC.5==0)
{
delay_ms(200);
menu=2;
//lcd_clear();
}
}while(kode==1&&menu==1);
}
}while(menu==1);
lcd_clear();
do{
lcd_gotoxy(0,0);
lcd_putsf("Ganti Kode Awal");
lcd_gotoxy(0,1);
lcd_putsf("Kode =");
if (PINC.7==0)
{
ganti=1;
do{
input();
if (PINC.7==0)
{
cek_ganti();
}
if (PINC.5==0)
{
delay_ms(100);
menu=2;
lcd_clear();
}
}while(ganti==1&&menu==2);
}
if (PINC.5==0)
{
delay_ms(100);
menu=1;
}
}while(menu==2);

lcd_clear();
}
if(PINC.1==0)
{
delay_ms(200);
kode_satuan=0,kode_ribuan=0,kode_ratusan=0,kode_puluhan=0;
sprintf(buff,"%d%d%d
%d",kode_ribuan,kode_ratusan,kode_puluhan,kode_satuan);
lcd_gotoxy(0,0);
lcd_puts(buff);}
if(PINC.0==0){sprintf(buff,"%d%d%d
%d",kode_ribuan,kode_ratusan,kode_puluhan,kode_satuan);
lcd_gotoxy(0,0);
lcd_puts(buff);}
if (PINC.6 == 0)
{
tutup();
terkunci=1;
terbuka=0;
lcd_clear();
}
if (PINC.4 == 0)
{
tutup();
terkunci=1;
terbuka=0;
lcd_clear();
}
if (PINC.3 == 0)
{
buka();
terkunci=0;
terbuka=1;
lcd_clear();
}
}
}
F.

PENGUJIAN
Video Pengujian Alat

PROTOTYPE PENGAMAN PINTU RUMAH BERBASIS


MIKROKONTROLER ATMEGA 16

G.

ANALISIS BERDASARKAN TUJUAN

1.

Penginputan Angka Dari Potensiometer

Dengan memanfaatkan PORT ADC pada mikrokontroler, penggunaan-potensiometer untuk


menginputkan angka-angka yang digunakan sebagai kode pengaman. Potensiometer ini
menggunakan prinsip pembagi tegangan yang kemudian hasil dari pembagian tegangan
tersebur dimasukkan pada pin ADC yang terdapat pada PORTA 0 sampai PORTA 7 pada chip
ATMega 16.
2.

Penyimpanan Angka Ke EEPROM


Penyimpanan kode dalam proyek ini memanfaatkan media penyimpanan pada mikrokontroler
yaitu EEPROM. Dalam mikrokontroler ATMega16 terdiri dari 512 byte memori data
EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data
kode angka yang ditulis pada memori EEPROM masih tersimpan pada memori ini sampai
data tersebut akan dipanggil untuk mdicocokkan dengan data yang dimasukkan oleh
pengguna pada saat akan membuka pintu.

3.

Penguncian Dan Pembukaan Kunci Pintu Dengan Motor


Untuk mengunci pintu, dalam proyek ini menggunakan motor steper utuk menggerakkan
pengunci. Digunakannya motor steper karena besar putaran pada motor tersebut bias diatur
sesuai dengan kebutuhan pengguna dan memiliki torsi yang cukup besar.

H.

1.

I.

KESIMPULAN

Berdasarkan teori dan pembahasan yang telah dijabarkan pada bab yang sebelumnya,
maka dapat ditarik kesimpulan sebagai berikut :
Sistem keamanan ini dapat dioperasikan dua tempat yaitu dari dalam ruangan ataupun luar
ruangan.
2. Sistem pengamanan pintu dapat berguna mencegah orang- orang tidak berkepentingan
masuk kedalam ruangan/rumah. Sistem keamanan dapat beroperasi jika password yang
dimasukkan benar. Sehingga dapat melakukan langkah berikutnya yaitu membuka pintu atau
menutup pintu.

SARAN
Dalam pembuatan perancangan pembuka pintu ini banyak terdapat beberapa kandala yang dihadapi, agar
apa yang telah direncanakan dapat terealisasi sesuai dengan perencanaan, untuk itu diharapkan agar dapat
dilakukan penyempurnaan dalam berbagai aspek mulai dari hardware maupun software agar dapat tercipta alat
yang lebih baik lagi. Adapun hal hal yang perlu lebih diperhatikan dan ditingkatkan kelak adalah :
1. Pada pembuatan program masih memerlukan pengembangan dan penyesuaian yang lebih lanjut sesuai dengan
kondisi
hardware.
2. Untuk mendesain peralatan elektronika yang dikontrol oleh komputer hendaknya selalu dibekali dengan
dasar - dasar atau teori - teori yang kuat tentang hardware dan software komputer sehinnga tidak mengalami
kegagalan
yang
fatal
dalam
mendesain
nantinya.
3. Tambahkan waktu pengaksesan buka atau tutup pintu agar dapat diketahui waktu terakhir melakukan
pembukaan pintu.

Anda mungkin juga menyukai