Pada kali ini kita melanjutkan dari postingan sebelumnya. Setelah berhasil untuk menghubungkan Keypad dan LCD, kita kembangkan ke fungsi selanjutnya yaitu mengolah data dari Keypad. Dalam hal ini kita buat fungsi Password pada aplikasi Arduino kita.
Apabila Password benar maka akan men-trigger kondisi :
- LED Hijau menyala selama 1 detik (1000ms)
Apabila Password salah maka akan men-trigger kondisi :
- LED Merah dan Buzzer menyala selama 1 detik (1000ms)
Berikut full source code untuk aplikasi tersebut :
#include <LiquidCrystal_I2C.h>
#include <Key.h>
#include <Keypad.h>
const byte panjang_password = 5;
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
byte rowPins[ROWS] = { 11, 10, 9, 8 }; //pin baris
byte colPins[COLS] = { 7, 6, 5, 4 }; //pin kolom
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
char karakter;
char ketikan_data[panjang_password]; //untuk menampung ketikan password
char master_password[panjang_password] = "5558";
byte hitungan_data = 0, hitungan_master_password = 0;
bool passwordBenar;
int pinLEDHijau = 3;
int pinLEDMerah = 2;
int pinBuzzer = 12;
//membuat LCD
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(pinBuzzer, OUTPUT);
pinMode(pinLEDHijau, OUTPUT);
pinMode(pinLEDMerah, OUTPUT);
digitalWrite(pinBuzzer, LOW);
lcd.backlight();
lcd.begin();
lcd.setCursor(2, 0);
lcd.print("TUTOR LCD");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Masukan Password :");
}
void loop() {
// put your main code here, to run repeatedly:
karakter = customKeypad.getKey();
//Untuk mengumpulkan karakter yang diketikan, lalu dimasukan ke array data
if (karakter) {
ketikan_data[hitungan_data] = karakter;
lcd.setCursor(hitungan_data, 1);
lcd.print(ketikan_data[hitungan_data]); //memprint hasil ketikan yang masuk ke array data
Serial.print(ketikan_data[hitungan_data]); //print ke serial monitor
hitungan_data++; //proses increment atau menaikan angka hitungan per 1
}
//jika jumlah karakter yang diketikan telah sama dengan panjang password maka akan men-trigger kondisi ini
//diberi -1 karena penghitungan data mulai dari 0 bukan 1;
if (hitungan_data == panjang_password - 1) {
lcd.clear();
//proses membandingkan array ketikan_data dengan master_password
if (!strcmp(ketikan_data, master_password)) {
lcd.print("Password Benar!");
digitalWrite(pinLEDHijau, HIGH);
delay(1000);
digitalWrite(pinLEDHijau, LOW);
}else{
lcd.print("Password Salah!");
digitalWrite(pinLEDMerah, HIGH);
digitalWrite(pinBuzzer, HIGH);
delay(1000);
digitalWrite(pinLEDMerah, LOW);
digitalWrite(pinBuzzer, LOW);
}
lcd.clear();
clearData();
}
//
}
void clearData(){
while(hitungan_data !=0){
ketikan_data[hitungan_data--] = 0;
}
lcd.setCursor(0, 0);
lcd.print("Masukan Password :");
return;
}
Penjelasan penuh ada di Youtube @IndoTechBro

0 Komentar