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
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
D.
DESAIN RANCANGAN
1.
2.
a.
1)
2)
3)
4)
5)
6)
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 Reset
Rangkaian Osilator
Desain Box
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.
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 ");}
}
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
G.
1.
3.
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.