Arduino - Penggunaan Keypad 4x4 untuk Password

 

Ingin membuat sistem keamanan sederhana dengan verifikasi password? Dengan keypad 4x4, kamu bisa dengan mudah membuat sistem input PIN/password 4 digit. Proyek ini cocok untuk kunci pintu digital, kontrol akses, atau sistem alarm.

 

Dalam tutorial ini, kita akan:

  • Menghubungkan keypad 4x4 ke Arduino
  • Membaca dan menyimpan input dari keypad
  • Memverifikasi password dan memberikan respons (LED)

Alat dan Bahan

  • 1x Arduino Uno
  • 1x Keypad 4x4
  • 2x LED (indikator sukses/gagal)
  • 2x Resistor 220 ohm
  • Kabel jumper
  • Breadboard

Instalasi Library Keypad

  • Buka Arduino IDE
  • Masuk ke Tools > Manage Libraries...
  • Cari dan install Keypad by Mark Stanley, Alexander Brevig

Skema Rangkaian

Hubungkan pin 8 keypad ke pin digital Arduino (contoh pin 2–9)
  •     R1 → pin 9
  •     R2 → pin 8
  •     R3 → pin 7
  •     R4 → pin 6
  •     C1 → pin 5
  •     C2 → pin 4
  •     C3 → pin 3
  •     C4 → pin 2

LED Hijau:

  • Anoda (+) → pin 13 Arduino
  • Katoda (–) → Resistor → GND

LED Merah:

  • Anoda (+) → pin 12 Arduino
  • Katoda (–) → Resistor → GND

Kode Program Verifikasi Password 4 Digit

#include "Keypad.h"

const byte ROWS = 4; // jumlah baris keypad
const byte COLS = 4; // jumlah kolom keypad

// Definisi tombol pada keypad
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

// Pin arduino untuk baris dan kolom
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};

// Membuat objek keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

// Password default
const char password[5] = "1234"; // Harus 4 karakter + null terminator
char enteredPassword[5];         // Untuk menyimpan input user
byte passwordIndex = 0;

// Pin LED indikator
const int ledPinOk = 13;     // LED Hijau
const int ledPinGagal = 12;  // LED Merah

void setup() {
  Serial.begin(9600);
  Serial.println("Masukkan Password (4 karakter):");
  pinMode(ledPinOk, OUTPUT);
  pinMode(ledPinGagal, OUTPUT);
  digitalWrite(ledPinOk, LOW); // Matikan LED saat awal
  digitalWrite(ledPinGagal, LOW); // Matikan LED saat awal
}

void loop() {
  char key = keypad.getKey();

  if (key) {
    if (key == '*') {
      // Reset input jika user tekan *
      passwordIndex = 0;
      Serial.println("\nInput dibatalkan. Masukkan ulang password:");
    } else if (passwordIndex < 4) {
      enteredPassword[passwordIndex++] = key;
      Serial.print("*"); // Tampilkan bintang sebagai pengganti karakter
    }

    if (passwordIndex == 4) {
      enteredPassword[4] = '\0'; // Akhiri string
      if (strcmp(enteredPassword, password) == 0) {
        Serial.println("\nPassword Benar! Akses Diberikan.");
        
        
        digitalWrite(ledPinOk, HIGH); // Nyalakan LED
        delay(2000);                // Biarkan nyala 1 detik
        digitalWrite(ledPinOk, LOW);  // Matikan kembali
        
      } else {
        Serial.println("\nPassword Salah! Coba Lagi.");
        Serial.println("Masukkan Password (4 karakter):");
        
        digitalWrite(ledPinGagal, HIGH); // Nyalakan LED
        delay(2000);                // Biarkan nyala 1 detik
        digitalWrite(ledPinGagal, LOW);  // Matikan kembali
      }
      passwordIndex = 0; // Reset untuk input berikutnya
    }
  }
}

 Tampilan Serial Monitor :


 

Cara Kerja Program

  • Pengguna memasukkan 4 karakter (bisa angka/huruf)
  • Jika cocok dengan password, LED Hijau menyala 2 detik
  • Jika tidak cocok dengan password, LED Merah menyala 2 detik
  • jika menekan *, maka input akan dibatalkan

Semoga membantu!

Selanjutnya
« Post Selanjutnya
Sebelumnya
Post Sebelumnya »

EmoticonEmoticon

Note: Only a member of this blog may post a comment.