#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include <Keypad.h>
Servo myServoObject;
int angle =0;
int potPin = A1;
int ledPin = 9;
int val = 0;
int Sensor = 7;
int sensorpir;
int led = 8;
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 (0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(6, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(3, OUTPUT);
lcd.backlight();
lcd.init();
pinMode(Sensor, INPUT);
pinMode(led, OUTPUT);
myServoObject.attach(10);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(2, HIGH);
delay(100);
digitalWrite(6, HIGH);
delay(100);
digitalWrite(4, HIGH);
delay(100);
digitalWrite(5, HIGH);
delay(100);
digitalWrite(3, HIGH);
delay(100);
digitalWrite(2, LOW);
delay(100);
digitalWrite(6, LOW);
delay(100);
digitalWrite(4, LOW);
delay(100);
digitalWrite(5, LOW);
delay(00);
digitalWrite(3, LOW);
delay(100);
char customKey = customKeypad.getKey();
if (customKey){
lcd.clear();
lcd.setCursor(0,0);
lcd.print(customKey);
}
val = analogRead(potPin);
digitalWrite(ledPin, HIGH);
delay(val);
digitalWrite(ledPin, LOW);
delay(val);
sensorpir = digitalRead(Sensor);
if(sensorpir ==HIGH){
digitalWrite(led, HIGH);
delay(100);
}
else{
digitalWrite(led, LOW);
delay(100);
}
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Nuratifah");
lcd.setCursor(2,1);
lcd.print("122.56202.035");
delay((1111));
lcd.clear();
lcd.noBacklight();
lcd.setCursor(0,0);
lcd.print("semangat selalu");
lcd.setCursor(0,1);
lcd.print("fighting");
delay(1111);
lcd.clear();
lcd.noBacklight();
lcd.setCursor(0,0);
lcd.print("have a nice day");
lcd.setCursor(0,1);
lcd.print(":)");
delay(1111);
lcd.backlight();
sensorpir = digitalRead(Sensor);
if (sensorpir == HIGH){
digitalWrite(led, HIGH);
lcd.setCursor(0,1);
lcd.print("Tekkom A");
delay(1111);
}
else {
lcd.clear();
digitalWrite(led, LOW);
lcd.setCursor(0,0);
lcd.print("Tekkom A");
delay(1111);
}
for(angle=0; angle<=180; angle++){
myServoObject.write(angle);
delay(5);
}
for(angle=180; angle<=0; angle--){
myServoObject.write(angle);
delay(5);
}
}