pengunci pintu otomatis

7
PENGUNCI PINTU (DOOR LOCK) BERPASSWORD MENGGUNAKAN KEYPAD DAN LCD DENGAN CODEVISION AVR 30APR Mungkin teman-teman semua sudah tahu tentang aplikasi yang bernama pengunci pintu (door lock) berpassword, pada aplikasi ini sudah saya realisasikan pada hardware yang sesungguhnya dan berhasil. Tetapi ketika saya simulasikan tidak berjalan dengan baik, saya tidak tahu kenapa. Tapi itu tidak masalah yang penting sudah saya coba pada hardware yang sesungguhnya dan berhasil. Motivasi pembuatan aplikasi ini adalah awalnya saya sedang browsing dengan mengunjungi salah satu forum mikrokontroler yang ada di Indonesia, disitu ada yang bertanya tentang penyimpanan input yang berasal dari keypad kedalam satu variabel, tetapi tidak ada yang menanggapinya bahkan memberikan saran pun tidak. Entah karena budaya tidak mau berbagi ilmu atau entah kenapa, saya kurang mengerti. Maka dari itu saya mencoba membuat aplikasi ini. Kesulitan utama dari aplikasi ini adalah ketika seorang user memasukkan password dengan menggunakan keypad, kita harus dapat menyimpan input yang berasal dari keypad kedalam satu variabel. Misalnya user menekan 6, lalu 2, lalu 0 dan 4 berarti passwornya adalah 6204 (misalkan). Nilai tersebut harus dijadikan dalam 1 variabel yang kemudian akan dibandingkan dengan password yang sebenarnya. Jika user memasukkan password dengan benar maka akan membuka kunci, jika salah maka kunci tidak akan terbuka. Untuk mengatasi masalah tersebut saya menggunakan array untuk mendeteksi berapa kali penekanan keypad dan angka berapa yang akan ditekan. Baiklah disini saya akan menjelaskan algoritma yang saya buat. Jika user menekan 6, lalu 2 lalu 0 dan 4 maka seperti ini logikanya: Awalnya saya deklarasikan array sebagai berikut: array[10], i=0; saat terjadi penekanan angka 6 maka; i++ (saya increamentkan) jadi i=1 kemudian angka 6 saya simpan pada variabel array[i] jadi array[1]=6 kemudian saat terjadi penekanan angka 2, maka: i++ (saya increamentkan lagi) jadi i=2 kemudian angka 2 saya simpan pada variabel array[i] jadi array[2]=2

Upload: ujang

Post on 23-Sep-2015

37 views

Category:

Documents


13 download

DESCRIPTION

hahaha

TRANSCRIPT

PENGUNCI PINTU (DOOR LOCK) BERPASSWORD MENGGUNAKAN KEYPAD DAN LCD DENGAN CODEVISIONAVR30APRMungkin teman-teman semua sudah tahu tentang aplikasi yang bernama pengunci pintu (door lock) berpassword, pada aplikasi ini sudah saya realisasikan pada hardware yang sesungguhnya dan berhasil. Tetapi ketika saya simulasikan tidak berjalan dengan baik, saya tidak tahu kenapa. Tapi itu tidak masalah yang penting sudah saya coba pada hardware yang sesungguhnya dan berhasil.Motivasi pembuatan aplikasi ini adalah awalnya saya sedangbrowsingdengan mengunjungi salah satu forum mikrokontroler yang ada di Indonesia, disitu ada yang bertanya tentang penyimpanan input yang berasal dari keypad kedalam satu variabel, tetapi tidak ada yang menanggapinya bahkan memberikan saran pun tidak. Entah karena budaya tidak mau berbagi ilmu atau entah kenapa, saya kurang mengerti. Maka dari itu saya mencoba membuat aplikasi ini.Kesulitan utama dari aplikasi ini adalah ketika seorang user memasukkan password dengan menggunakan keypad, kita harus dapat menyimpan input yang berasal dari keypad kedalam satu variabel. Misalnya user menekan 6, lalu 2, lalu 0 dan 4 berarti passwornya adalah 6204 (misalkan). Nilai tersebut harus dijadikan dalam 1 variabel yang kemudian akan dibandingkan dengan password yang sebenarnya. Jika user memasukkan password dengan benar maka akan membuka kunci, jika salah maka kunci tidak akan terbuka.Untuk mengatasi masalah tersebut saya menggunakan array untuk mendeteksi berapa kali penekanan keypad dan angka berapa yang akan ditekan. Baiklah disini saya akan menjelaskan algoritma yang saya buat. Jika user menekan 6, lalu 2 lalu 0 dan 4 maka seperti ini logikanya:Awalnya saya deklarasikan array sebagai berikut:array[10], i=0;saat terjadi penekanan angka 6 maka;i++ (saya increamentkan) jadi i=1kemudian angka 6 saya simpan pada variabel array[i] jadi array[1]=6kemudian saat terjadi penekanan angka 2, maka:i++ (saya increamentkan lagi) jadi i=2kemudian angka 2 saya simpan pada variabel array[i] jadi array[2]=2kemudian saat terjadi penekanan angka 0, maka:i++ (saya increamentkan lagi) jadi i=3kemudian angka 0 saya simpan pada variabel array[i] jadi array[3]=0kemudian saat terjadi penekanan angka 4, maka:i++ (saya increamentkan lagi) jadi i=4kemudian angka 4 saya simpan pada variabel array[i] jadi array[4]=4maka didapat array[1]=6, array[2]=2, array[3]=0, array[4]=4kalo sudah didapat seperti diatas maka kita tinggal kumpulkan dalam satu variabel (nama variabelnya misalkan nilai) caranya:saat i bernilai 1, i=1 kita hitung dengan rumus:nilai=array[1] //jadi nilai=6saat i bernilai 2, i=2 kita hitung dengan rumus:nilai=(array[1]*10)+array[2] //jadi nilai=62saat i bernilai 3, i=3 kita hitung dengan rumus:nilai=(array[1]*100)+(array[2]*10)+array[3] //jadi nilai=620saat i bernilai 4, i=4 kita hitung dengan rumus:nilai=(array[1]*1000)+(array[2]*100)+(array[3]*10)+array[4] //jadi nilai=6204sudah mengerti bukan, dari rumus-rumus diatas masih dapat disederhanakan, menjadi:jika i=1nilai=array[i]jika i bernilai if (i>=2 dan i=2 && i0) { ftoa(nilai,0,temp); lcd_gotoxy(0,1); lcd_puts(temp); }}void main(void){PORTB=0xff;DDRB=0x0f;PORTD=0x00;//PD0 belogika low atau dlm keadaan unlock awalnyaDDRD=0x01;//PD0 sebagai output// Analog Comparator initialization// Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;// LCD module initializationlcd_init(16);lcd_putsf(ElectrO-cOntrOl);delay_ms(1500);lcd_clear();while (1) { lock(); scanning_keypad(); tampil_lcd(); };}Jika ingin mendapatkan program dalam bentuk file CodeVision AVR dan file simulasi menggunakan proteus untuk aplikasi ini, silakan download pada link dibawah ini.file codevision dan file simulasi proteus aplikasi door lock.CATATAN:saat memasukkan password disarankan tidak diawali dengan angka 0, untuk lebih jelasnya lihat perhitungan untuk menjadikannya dalam satu variabel.Semoga bermanfaat bagi banyak orang, khususnya yang membutuhkan.