Cara Membuat Kunci PIN dengan Keypad dan Servo Arduino — Simulasi Online
Kunci PIN ini bekerja seperti brankas mini: pengunjung mengetik kode di keypad, dan hanya kode yang benar yang membuat servo membuka palangnya. Keypad terhubung ke pin D2 sampai D9 dan servo ke D10.
Komponen yang dipakai
- Arduino Uno
- Keypad 4x4
- Motor servo
Cara kerja
- Keypad matriks disambungkan ke pin D2 sampai D9 sebagai baris dan kolom tombol.
- Pustaka Keypad membaca tombol yang ditekan satu per satu dan menyusunnya menjadi kode masukan.
- Kode masukan dibandingkan dengan PIN yang tersimpan di program (coba 1234).
- Bila PIN cocok, servo di D10 bergerak membuka palang; bila salah, palang tetap terkunci.
Konsep yang dipelajari
Kode program
/*
Kunci PIN: ketik 4 digit di keypad. PIN benar (1-2-3-4) memutar servo
membuka palang; PIN salah mengunci kembali.
Rangkaian: keypad (R1-R4 -> D2-D5, C1-C4 -> D6-D9),
servo (GND -> GND, VCC -> 5V, SIG -> D10).
Klik tombol keypad di kanvas saat simulasi berjalan.
Pustaka: Keypad, Servo.
*/
#include <Keypad.h>
#include <Servo.h>
const byte BARIS = 4, KOLOM = 4;
char tombol[BARIS][KOLOM] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte pinBaris[BARIS] = {2, 3, 4, 5};
byte pinKolom[KOLOM] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(tombol), pinBaris, pinKolom, BARIS, KOLOM);
Servo palang;
const String PIN_BENAR = "1234";
String masukan = "";
void setup() {
palang.attach(10);
palang.write(0); // Terkunci.
Serial.begin(9600);
Serial.println(F("Ketik PIN 4 digit di keypad."));
}
void loop() {
char kunci = keypad.getKey();
if (kunci) {
Serial.print(F("Tombol: "));
Serial.println(kunci);
if (kunci == '*') {
masukan = "";
palang.write(0);
Serial.println(F("Direset, terkunci."));
} else if (kunci == '#') {
if (masukan == PIN_BENAR) {
palang.write(90);
Serial.println(F("PIN benar, terbuka!"));
} else {
Serial.println(F("PIN salah."));
}
masukan = "";
} else if (masukan.length() < 4) {
masukan += kunci;
}
}
}