Selasa, 08 Desember 2015

PENGGUNAAN ATMEGA 8535 SEBAGAI MIKROKONTROLER PINTU BERKODE


        I.            Pendahuluan
1.  1 Latar Belakang
Pintu merupakan sebuah alat yang penting sebagai penghubung satu ruang dengan ruang yang lainnya. Namun keaman sebuah pintu terletak pada kunci yang di pasang pada pintu tersebut. Pada umumnya kunci pintu dioperasikan secara manual yang mudah di rusak/di bobol. Dengan memanfaatkan kemajuan teknologi mikrokontroler keamanan sebuah pintu semakin meningkat. Dengan memanfaatkan Atmega8535 sebagai mikrokontroler, keamanan pintu menjadi lebih meningkat.

Penggunaan Atmega8535 sebagai kontrol pintu berkode menambah keamanan sebuah pintu. Dengan 8-bit kode yang dapat di set membuat penggunaan Atmega8535 semakin populer digunakan.

1.  2 Tujuan Pembuatan
tujuan pembuatan pintu berkode ini adalah sebagai tindak lanjut pengaman sebuah pintu. Selain itu pembuatan pintu berkode ini adalah sebagai praktikum Tugas Akhir  Lab 3 yang berbasis mikro kontroler.



        I.            Analisa dan Perancangan Alat
1.  1 Langkah kerja
1.       Buat skrip program pada aplikasi Code Vision
2.       Donwload program yang telah dibuat ke Atmega8535
3.       Sambungkan rangkaian yang telah dibuat ke sumber VCC
4.       Masukkan sandi yang telah ditentukan untuk membuka pintu

1.2    Analisa Alat
Pengunci pintu berkode merupakan suatu alat berbasis Atmega8535 yang menggunakan 8-bit prosesing sistem. Rangkaina alat menggunakan logika 1 saat terbuka dan logika 0 saat tertutup.

GAMBAR 1.1 RANGKAIAN DENGAN PROTEUS


#include <mega8535.h>
#include <delay.h>
#include <stdlib.h>
#include <stdio.h>

float nilai=0, password=12345678;
char temp[12], array[10], i=0, indeks=0;

#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

void lock()
{
 while (indeks==0)
      {
      lcd_gotoxy(0,0);
      lcd_putsf("tekan C");
      lcd_gotoxy(0,1);
      lcd_putsf("untuk mengunci");
     
     
      PORTB = 0b11111011;
      delay_ms(30);
      if (PINB.7 == 0)
       {
        indeks=1;
        PORTD.0=1;
        lcd_clear();  
        lcd_gotoxy(0,0);
        lcd_putsf("terkunci");
        delay_ms(1000);
        lcd_clear();
        }
      }
}

void enter()
{
if (nilai==password)
   {
   lcd_clear();
   lcd_gotoxy(0,0);
   lcd_putsf("tidak terkunci");
   delay_ms(1000);
   i=0; nilai=0;
   PORTD.0=0;
   indeks=0; 
   }                      
else
   {
   lcd_clear();
   lcd_gotoxy(0,0);
   lcd_putsf("sandi salah");
   delay_ms(2500);
   i=0; nilai=0;
   indeks=1;
   }
}

void simpan_dlm_1variabel()
{
       if (i==1){nilai=array[i];}
        
       if (i>=2 && i<=8)
           {
           nilai=(nilai*10)+array[i];
           }  
}

void scanning_keypad()
{
lcd_gotoxy(0,0);
lcd_putsf("sandi anda");

PORTB = 0b11111110;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=1; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.5 == 0) {i++; array[i]=2; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.6 == 0) {i++; array[i]=3; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.7 == 0) {lcd_clear();i=0;nilai=0;delay_ms(30);}

PORTB = 0b11111101;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=4; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.5 == 0) {i++; array[i]=5; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.6 == 0) {i++; array[i]=6; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.7 == 0) {i++; array[i]=0; simpan_dlm_1variabel(); delay_ms(30);}

PORTB = 0b11111011;
delay_ms(30);
if (PINB.4 == 0) {i++; array[i]=7; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.5 == 0) {i++; array[i]=8; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.6 == 0) {i++; array[i]=9; simpan_dlm_1variabel(); delay_ms(30);}
if (PINB.7 == 0) {delay_ms(30);}

PORTB = 0b11110111;
delay_ms(30);
if (PINB.4 == 0) {delay_ms(30);}
if (PINB.5 == 0) {delay_ms(30);}
if (PINB.6 == 0) {delay_ms(30);}
if (PINB.7 == 0) {enter();delay_ms(30);}
}

void tampil_lcd()
{
if (nilai>0)
    {
        ftoa(nilai,0,temp);
        lcd_gotoxy(0,1);
        lcd_puts(temp);
    }
}

void main(void)
{
PORTB=0xff;
DDRB=0x0f;

PORTD=0x00;
DDRD=0x01;


ACSR=0x80;
SFIOR=0x00;


lcd_init(16);
lcd_putsf("pintu berkode");
delay_ms(1000);
lcd_clear();
lcd_putsf("Akhmad Fauzi Ilyas B");
delay_ms(1000);
lcd_clear();
lcd_putsf("Garindra Firdaus");
delay_ms(1000);
lcd_clear();
lcd_putsf("Moh. Tri Bahana L");
delay_ms(1000);
lcd_clear();

while (1)
      {
      lock();
      scanning_keypad();
      tampil_lcd();        
      };
}
 
        I.            Penutup
Kesimpulan
Pengunci pintu berkode merupakan suatu alat berbasis Atmega8535 yang menggunakan 8-bit prosesing sistem. Rangkaina alat menggunakan logika 1 saat terbuka dan logika 0 saat tertutup.
Pada alat yang kami gunakan tidak menggunakan motor, sebagai gantinya kami menjadikan LED sebagai indikator terkunci atau terbukannya pintu.





Tidak ada komentar:

Posting Komentar