#include <Keypad.h> //Library keypad
#include <LiquidCrystal_I2C.h> //Library LCD I2C
LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C
int Li = 17;
int Lii = 1;
int Ri = -1;
int Rii = -1;
void setup() {
// put your setup code here, to run once:
lcd.init();
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 0; i <= 18; i++) {
lcd.setCursor(0, 0);
lcd.backlight();
lcd.print(Scroll_LCD_Right(" InternetofThings "));
delay(350);
}
for (int i = 0; i <= 50; i++) {
lcd.setCursor(0, 1);
lcd.backlight();
lcd.print(Scroll_LCD_Left("LCD 16x2 scrolling text"));
delay(350);
}
Clear_Scroll_LCD_Left();
for (int i = 17; i <= 32; i++) {
lcd.setCursor(0, 0);
lcd.backlight();
lcd.print(Scroll_LCD_Right("IoT4"));
delay(350);
}
Clear_Scroll_LCD_Right();
for (int i = 0; i <= 14; i++) {
lcd.setCursor(0, 0);
lcd.backlight();
lcd.print(Scroll_LCD_Right("Indobot"));
delay(350);
}
for (int i = 0; i <= 72; i++) {
lcd.setCursor(0, 1);
lcd.backlight();
lcd.print(Scroll_LCD_Left("Welcome to DTS PROA"));
delay(350);
}
Clear_Scroll_LCD_Left();
for (int i = 14; i <= 25; i++) {
lcd.setCursor(0, 0);
lcd.backlight();
lcd.print(Scroll_LCD_Right("Endless Learning"));
delay(350);
}
Clear_Scroll_LCD_Right();
}
//----------------------------------
String Scroll_LCD_Left(String StrDisplay){
String result;
String StrProcess = " " + StrDisplay + " ";
result = StrProcess.substring(Li,Lii);
Li++;
Lii++;
if (Li>StrProcess.length()){
Li=16;
Lii=0;
}
return result;
}
void Clear_Scroll_LCD_Left(){
Li=16;
Lii=0;
}
//----------------------------------
String Scroll_LCD_Right(String StrDisplay){
String result;
String StrProcess = " " + StrDisplay + " ";
if (Rii<1){
Ri = StrProcess.length();
Rii = Ri-16;
}
result = StrProcess.substring(Rii,Ri);
Ri--;
Rii--;
return result;
}
void Clear_Scroll_LCD_Right(){
Ri=-1;
Rii=-1;
}
/*#include <Wire.h> //library I2C
#include <LiquidCrystal_I2C.h> //library LCD
LiquidCrystal_I2C lcd(0x27,16,2); // set address I2C dan besar karakter untuk lcd 16×2
void setup()
{
lcd.init(); // inisiasi LCD
}
void loop()
{
lcd.backlight();//menyalakan backlight
lcd.print("Hello, world!");//menulis kata
lcd.scrollDisplayLeft();
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.noBacklight();//mematikan backlight
lcd.print("Lampu Mati");//menulis kata
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.backlight();//menyalakan backlight
lcd.print("Lampu Hidup");//menulis kata
delay(2000);//menunggu 2000 milidetik
lcd.clear();//menghapus tampilan LCD
lcd.setCursor(0,0);//mengatur posisi kursor pada baris 1 posisi 0
lcd.print("Baris satu");//menulis kata
lcd.setCursor(3,1);//mengatur posisi kursor pada baris 2 posisi 3
lcd.print("Geser Baris 2");//menulis kata
delay(3000);//menunggu 3000 milidetik
lcd.clear();//menghapus tampilan LCD
}
/*
/*
const byte ROWS = 4; //Jumlah baris keypad
const byte COLS = 4; //Jumlah kolom keypad
char Keys[ROWS][COLS] = { //Membuat array keypad
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = { 14, 12, 19, 18 };
byte colPins[COLS] = { 5, 4, 2, 15 };
Keypad customKeypad = Keypad( makeKeymap(Keys), rowPins, colPins, ROWS, COLS); //Masukkan info keypad pada library
char customKey; //Variabel penampung input keypad
int number = 0; //Variabel penampung nilai angka
int password = 1379; //Password
void setup() {
lcd.init (); //Mulai LCD
lcd.setBacklight(HIGH); //Nyalakan backlight
pinMode(26, OUTPUT);
pinMode(25, OUTPUT);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Input Password"); //Tampilan pada layar LCD
customKey = customKeypad.getKey(); //Baca input keypad
//------------Prosedur jika input berupa angka------------//
switch(customKey){
case '0' ... '9':
lcd.setCursor(0,1);
number = number * 10 + (customKey - '0');
lcd.print(number);
break;
//------------Jika input '#' maka cek password------------//
case '#':
if(number == password){ //Jika password benar, maka
lcd.setCursor(0,1);
lcd.print("Access Accepted "); //Tampilan LCD
delay(2000);
number = 0;
digitalWrite(26, HIGH);
digitalWrite(25, LOW);
lcd.clear();
}
else{ //Jika salah, maka
lcd.setCursor(0,1);
lcd.print("Invalid Password"); //Tampilan LCD
delay(2000);
number = 0;
digitalWrite(26, LOW);
digitalWrite(25, HIGH);
lcd.clear();
}
break;
//------------Jika input '*' maka hapus tampilan------------//
case '*':
number = 0;
lcd.clear();
break;
}
}/* Program Kunci Pintu dengan password input Keypad 4x4 dibuat oleh Indobot */