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
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.
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
Keterangan Blok Diagram Sistem :
a.
Blok
Input
1)
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.
2)
Mini
Switch 1
Mini Switc 1 digunakan sebagai
tombol yang berada di dalam ruangan untuk membuka pintu tanpa harus memasukkan
kode sandi pengaman.
3)
Mini
Switc 2
Mini Switch 2 digunkan sebagai
tombol yang berada di dalam ruangan untuk mengunci pintu tanpa haru memasukkan
kode sandi pengaman.
4)
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.
5)
Mini
Switch 4
Mini Switch 4 digunakan sebagai
tombol yang berada di luar ruangan untuk megunci pintu dengan memasukkan kode
sandi pengaman.
6)
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.
Blok
Output
1)
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) Skema Rangkaian
a. 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. LANGKAH
PEMBUATAN
1.
Pembuatan Desaian PCB
a.
Membuat
skema rangkaian di ISIS diantaranya adalah rangkaian :
1)
Rangkaian
input kode
2)
Rangkaian
driver motor
3)
Rangkaian
regulator
4)
Rangkaian
reset
5)
Rangkaian
osilator
6)
Rangkaian
downloader
7)
Rangkaian
sistem minimum
b.
Membuat
layout PCB di ARES.
c.
Mencetakan
layout PCB yang telah dibuat di ARES ke kertas glossy.
d.
Menyetrika
papan PCB yang telah ditempel layout PCB di kertas glossy.
e.
Melarutkan
PCB dengan larutan Fe3Cl.
f.
Memasangan
komponen atau menyolder komponen.
g.
Menghubungkan
antar rangkaian dengan rangkaian lainnya.
2.
Pembuatan Desain Box
a.
Mengukur
triplek sesuai dengan desain box yang telah ditentukan.
b.
Memotong
triplek sesuai dengan ukuran desain box yang telah dibuat.
c.
Menyusun
dan menempel bagian – bagian dari box sesuai dengan desain.
d.
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. KESIMPULAN
Berdasarkan teori dan pembahasan yang
telah dijabarkan pada bab yang sebelumnya, maka dapat ditarik
kesimpulan sebagai berikut :
1. 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.
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.
I. 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.
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.
Okey
BalasHapusBagus
mbk boleh minta file codingnyaa
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapuskak boleh minta simulasi rangkaiannya. klau bleh ini email saya mb idbaliyah@gmail.com
BalasHapusmantap, semoga baca ini menginspirasi para pembaca. sangat kreatif !! good job gan :) salam dari Politeknik Negeri Sriwijaya #Miko
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapusmbak senyumnya bikin diabetes... wkwkwkwk
BalasHapus