// NAMA: MUHAMMAD FA'IZ DWI ADHISKI
// KELAS: XI TEK 1
// === PENGGUNAAN SENSOR PIR & LCD_I2C ===
#include <LiquidCrystal_I2C.h>
const char* intro[] = {"M.Fa'Iz Dwi A.", "XI TEK 1"};
const char* msg[] = {"Sensor menyala!", "Sensor mati!"};
const int lcdAddr = 0x27;
const int lcdCol = 16;
const int lcdRow = 2;
const int center = lcdCol + (strlen(intro[0]) - strlen(intro[1])) / 2;
const int sensor = 0x22; // pin 34
int rs;
LiquidCrystal_I2C lcd(lcdAddr, lcdCol, lcdRow);
namespace Detector {
int getSen() {
rs = digitalRead(sensor);
return rs;
}
void lcdIntro() {
lcd.clear();
lcd.setCursor(lcdCol, 0);
lcd.printstr(intro[0]);
lcd.setCursor(center, 1);
lcd.printstr(intro[1]);
for(int i = 0;i <= (lcdCol*2);i++) {
lcd.scrollDisplayLeft();
delay(150);
}
}
void senOn() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.printstr(msg[0]);
}
void senOff() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.printstr(msg[1]);
}
void main() {
if(Detector::getSen()) {
Detector::senOn();
} else {
Detector::senOff();
}
delay(1000);
}
}
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
pinMode(sensor, INPUT);
Detector::lcdIntro();
}
void loop() {
Detector::main();
}