Keamanan adalah perhatian utama dalam kehidupan kita sehari-hari, dan kunci digital telah menjadi bagian penting dari sistem keamanan ini. Ada banyak jenis teknologi yang tersedia untuk mengamankan tempat kita, seperti sistem keamanan berbasis PIR, sistem keamanan berbasis RFID, alarm keamanan laser, sistem bio-matriks dll. Bahkan sekarang, ada kunci digital yang dapat dioperasikan menggunakan ponsel pintar kita, artinya tidak ada lebih perlu menjaga kunci yang berbeda, hanya satu ponsel pintar yang dapat mengoperasikan semua kunci, konsep ini didasarkan pada Internet of Things.
Dalam proyek ini, kami telah menjelaskan kunci kode Elektronik sederhana menggunakan Microcontorller 8051, yang hanya dapat dibuka dengan kode yang telah ditentukan, jika kami memasukkan kode yang salah, sistem akan diberi peringatan oleh sirene bel. Kami telah membuat kunci Digital menggunakan Arduino.
Penjelasan Kerja:
Sistem ini terutama berisi mikrokontroler AT89S52, modul keypad, buzzer dan LCD. Mikrokontroler At89s52 mengontrol proses lengkap seperti mengambil modul keypad bentuk kata sandi, membandingkan kata sandi yang telah ditentukan sebelumnya, mengarahkan buzzer dan mengirim status ke layar LCD. Keypad digunakan untuk memasukkan password ke mikrokontroler. Buzzer digunakan untuk indikasi password yang salah dan LCD digunakan untuk menampilkan status atau pesan di dalamnya. Buzzer memiliki driver bawaan dengan menggunakan transistor NPN.
Komponen:
- Mikrokontroler 8051 (AT89S52)
- Modul Keypad 4X4
- Bel
- LCD 16x2
- Resistor (1k, 10k)
- Resistor pullup (10K)
- Kapasitor (10uf)
- LED merah
- Papan roti
- IC 7805
- Kristal 11.0592 MHz
- Sumber Daya listrik
- Menghubungkan kabel
Mengambil input dari 4X4 Keypad Matrix menggunakan Teknik Multiplexing:
Pada rangkaian ini kita telah menggunakan teknik multiplexing untuk menghubungkan keypad ke mikrokontroler 8051, untuk memasukkan password ke dalam sistem. Disini kami menggunakan keypad 4x4 yang memiliki 16 tombol. Jika kita ingin menggunakan 16 kunci maka kita membutuhkan 16 pin untuk koneksi ke 89s52, tetapi dalam teknik multiplexing kita hanya perlu menggunakan 8 pin untuk menghubungkan 16 kunci. Sehingga ini adalah cara cerdas untuk membuat antarmuka modul keypad.
Teknik multiplexing adalah cara yang sangat efisien untuk mengurangi jumlah pin yang digunakan mikrokontroler untuk memberikan masukan atau kata sandi. Pada dasarnya teknik ini digunakan dalam dua cara - satu pemindaian baris dan yang lainnya adalah pemindaian kolom.
Di sini kami akan menjelaskan pemindaian baris:
Pertama kita harus menentukan 8 pin untuk modul keypad. Di mana 4 pin pertama adalah kolom dan 4 pin terakhir adalah baris.
Untuk pemindaian baris kita perlu memberikan data atau sinyal ke pin kolom dan membaca data atau sinyal tersebut dari pin baris. Sekarang misalkan kami memberikan data di bawah ini ke pin kolom:
C1 = 0;
C2 = 1;
C3 = 1;
C4 = 1;
Dan kami membaca data ini di pin baris (secara default pin baris TINGGI karena resistor pull-up).
Jika pengguna menekan tombol angka '1' maka R1 berubah TINGGI ke RENDAH berarti R1 = 0; dan pengontrol memahami bahwa pengguna telah menekan tombol '1'. Dan itu akan mencetak '1' pada LCD dan menyimpan '1' dalam array. Jadi perubahan TINGGI ke RENDAH di R1 ini, adalah hal utama di mana pengontrol memahami bahwa beberapa tombol, yang sesuai dengan Kolom 1, telah ditekan.
Sekarang jika pengguna menekan tombol angka '2' maka R1 tetap di TINGGI karena C1 dan R1 keduanya sudah di TINGGI. Sehingga tidak ada perubahan, artinya mikrokontroler memahami bahwa tidak ada yang ditekan di kolom satu. Dan juga prinsip ini berlaku untuk semua pin lainnya. Jadi dalam langkah ini pengontrol hanya menunggu kunci di kolom satu: '1', '4', '7' dan '*'.
Sekarang jika kita ingin melacak kunci di kolom lain (seperti di kolom 2), maka kita perlu mengubah data di pin kolom:
C1 = 1;
C2 = 0;
C3 = 1;
C4 = 1;
Pengontrol waktu ini hanya menunggu tombol di kolom dua: '2', '5', '8' dan '0', karena perubahan (HIGH ke LOW) hanya terjadi ketika tombol kolom dua akan ditekan. Jika kita menekan sembarang tombol di kolom 1, 3 atau 4 maka tidak akan terjadi perubahan, karena kolom ini berada di TINGGI, dan Baris sudah TINGGI.
Jadi, kunci di kolom C3 dan C4 juga dapat dilacak dengan menjadikannya 0, sekaligus. Periksa di sini penjelasan rinci: Keypad Interfacing dengan 8051. Juga melalui bagian Kode di bawah untuk memahami logikanya dengan benar.
Penjelasan Sirkuit:
Diagram rangkaian untuk kunci digital menggunakan 8051 ini telah ditunjukkan di bawah ini dan dapat dengan mudah dipahami. Pin Kolom modul keypad terhubung langsung ke pin P0.0, P0.1, P0.2, P0.3 dan pin Baris terhubung ke P0.4, P0.5, P0.6, P0.7 dari port mikrokontroler 89s52 0 Sebuah LCD 16x2 dihubungkan dengan mikrokontroler 89s52 dalam mode 4-bit. Pin kontrol RS, RW dan En terhubung langsung ke pin P1.0, GND dan P1.2. Dan data pin D4-D7 dihubungkan ke pin P1.4, P1.5, P1.6 dan P1.7 dari 89s52. Dan satu bel dihubungkan ke pin P2.6 melalui sebuah resistor.
Penjelasan Program:
Kami telah menggunakan kata sandi yang telah ditentukan dalam program ini, kata sandi ini dapat ditentukan oleh pengguna dalam kode di bawah ini. Ketika pengguna memasukkan kata sandi ke sistem, kemudian sistem membandingkan kata sandi yang dimasukkan pengguna dengan kata sandi yang disimpan atau telah ditentukan sebelumnya dalam Kode Program. Jika terjadi kecocokan maka LCD akan menampilkan “Access Grated” dan jika password tidak cocok maka LCD akan menampilkan “Access Denied” dan buzzer akan terus berbunyi bip beberapa saat. Di sini kami telah menggunakan perpustakaan string.h. Dengan pustaka ini kita bisa membandingkan atau mencocokkan dua string, dengan menggunakan fungsi “strncmp”.
Dalam program ini, pertama-tama kami menyertakan file header dan mendefinisikan variabel dan pin input & output untuk keypad dan LCD.
#include
Fungsi untuk membuat penundaan 1 detik telah dibuat, bersama dengan beberapa fungsi LCD seperti untuk inisialisasi LCD, mencetak string, untuk perintah, dll. Anda dapat dengan mudah menemukannya di Kode. Periksa artikel ini untuk antarmuka LCD dengan 8051 dan fungsinya.
Setelah ini, pada program utama kita telah menginisialisasi LCD kemudian kita membaca input dari Keypad dengan menggunakan fungsi keypad () dan menyimpan tombol input ke dalam array kemudian membandingkannya dari data array yang telah ditentukan menggunakan strncmp.
batal main () {buzzer = 1; lcd_init (); lcdstring ("Kode Elektronik"); lcdcmd (0xc0); lcdstring ("Sistem Kunci"); penundaan (400); lcdcmd (1); lcdstring ("Circuit Digest"); penundaan (400); sedangkan (1) {i = 0; keypad (); if (strncmp (lulus, "4201", 4) == 0)
Jika kata sandi yang dimasukkan cocok, maka fungsi accept () dipanggil:
void accept () {lcdcmd (1); lcdstring ("Selamat Datang"); lcdcmd (192); lcdstring ("Kata Sandi Terima"); penundaan (200); }
Dan jika kata sandi salah maka fungsi salah () dipanggil:
batal salah () {buzzer = 0; lcdcmd (1); lcdstring ("Kode Sandi Salah"); lcdcmd (192); lcdstring ("PLZ Coba Lagi"); penundaan (200); bel = 1; }
Periksa fungsi keypad di bawah ini dalam kode yang membaca modul keypad bentuk masukan.