Hallo semuanya, artikel berikut ini merupakan lanjutan dari artikel sebelumnya  Arduino, Keypad dan LCD i2C      jadi bagi yang belum membaca artikel tersebut silahkan klik disini.

Pada artikel ini, kita bahas mengenai bagaimana cara menyalakan lampu dengan menggunakan password. Jelasnya begini, kita mempunyai sebuah lampu AC 220v , yang akan menyala, jika kita mengisi password melalui keypad dengan benar. Dan inputan password juga muncul pada display LCD 16x2.  Bagi yang sudah memahami, sebenarya rangkaian lampu bisa kita ganti dengan rangkaian lain, misal saja rangkaian kunci pintu. pokoknya kalau sudah memahami project ini bisa dimodif jadi hal-hal yang lebih berguna.


Perlengkapan Yang Harus Ada

- Arduino Uno



- Kabel Jumper



- LCD 16X2


- Module i2C untuk LCD



- Keypad membran 4X4



- Relay Keyes 5V
   
- Lampu Pijar AC 220v  kalo gak ada boleh ganti dengan lampu hemat energi

                        

- Fitting Lampu model Gantung

    

- Stecker dan Kabel secukupnya





Library Tambahan

  Untuk penggunaan i2C LCD  saya menggunakan library tambahan yang dapat di download disini


Wiring Alias Pengkabelan

Yang pertama kita lakukan adalah memasangkan module i2C ke LCD 16X2 seperti gambar berikut:


Selanjutnya adalah menghubungkan moudle i2C ke arduino uno yaitu pin SDA ke A4 dan pin SCL ke A5.Jangan lupa GND dan VCC nya juga.

Dan terakhir adalah mengubungkan keypad,Lcd,Relay dan rangkaian lampu ke arduino uno. lengkapnya seperti gambar berikut:




Sketch Alias Koding


Kalau wiringnya sudah oke, mari kita lanjut ke koding.... silahkan dicoba sketch dibawah ini, kalau tidak aral melintang, maka ketika tombol keypad ditekan, akan muncul tulisan di layar LCD.

Oke segitu dulu ya....next kita akan lanjutkan artikel ini dengan menggunakannya sebagai pengontrol relay dengan password...selamat malam semuanya. happy coding.

#include <LiquidCrystal_I2C.h>
#include <Keypad.h>

#define Password_Length 8 

int signalPin = 12;

char Data[Password_Length]; 
char Master[Password_Length] = "123A456"; 
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;

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] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x21, 16, 2);  

void setup(){
  lcd.init(); 
  lcd.backlight();
  pinMode(signalPin, OUTPUT);
}

void loop(){

  lcd.setCursor(0,0);
  lcd.print("Enter Password:");

  customKey = customKeypad.getKey();
  if (customKey){
    Data[data_count] = customKey; 
    lcd.setCursor(data_count,1); 
    lcd.print(Data[data_count]); 
    data_count++; 
    }

  if(data_count == Password_Length-1){
    lcd.clear();

    if(!strcmp(Data, Master)){
      lcd.print("Correct");
      digitalWrite(signalPin, HIGH); 
      delay(5000);
      digitalWrite(signalPin, LOW);
      }
    else{
      lcd.print("Incorrect");
      delay(1000);
      }
    
    lcd.clear();
    clearData();  
  }
}

void clearData(){
  while(data_count !=0){
    Data[data_count--] = 0; 
  }
  return;
}

Kalo rangkaian dan koding tidak ada problem, maka setelah upload selesai. Maka di layar  LCD akan  muncul tulisan "ENTER PASSWORD", coba ketik 123A456 melaui keypad. Maka di layar LCD akan muncul tulisan correct dan lampu pijar akan menyala.  (jangan lupa steckernya di colokin ke stop kontak listrik dulu).

Oke teman-teman selamat mencoba, happy coding