#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <avr/sleep.h>
const int analogPin = A0; // Ganti dengan pin analog yang ingin Anda gunakan
const int sleepPin = 2; // Ganti dengan pin keypad atau pin yang ingin Anda gunakan
const int ROW_NUM = 4;
const int COLUMN_NUM = 4;
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6};
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2};
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);
LiquidCrystal_I2C lcd(0x27, 20, 4); // Alamat I2C dapat berbeda, sesuaikan dengan alamat LCD Anda
void wakeUp() {
Serial.println("Terbangun dari Deep Sleep");
}
void setup() {
Serial.begin(9600);
lcd.begin(20, 4);
lcd.print("Selamat datang!");
pinMode(analogPin, INPUT);
pinMode(sleepPin, INPUT_PULLUP);
}
void loop() {
int analogValue = analogRead(analogPin);
char key = keypad.getKey();
Serial.println(analogValue);
if (key == 'A' || analogValue > 800) { // Ganti 'A' dengan tombol keypad yang ingin Anda gunakan
Serial.println("Aktifkan Deep Sleep");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Aktifkan Deep Sleep");
delay(1000);
goToSleep();
}
// Tambahan kode lainnya
delay(1000);
}
void goToSleep() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Memasuki Deep Sleep");
Serial.println("Memasuki Deep Sleep Mode");
delay(100);
attachInterrupt(digitalPinToInterrupt(sleepPin), wakeUp, LOW);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_cpu(); // Sleep until external interrupt wakes up
sleep_disable();
detachInterrupt(digitalPinToInterrupt(sleepPin));
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Terbangun dari Sleep");
Serial.println("Terbangun dari Deep Sleep");
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
ldr2:VCC
ldr2:GND
ldr2:DO
ldr2:AO
ldr3:VCC
ldr3:GND
ldr3:DO
ldr3:AO
ldr4:VCC
ldr4:GND
ldr4:DO
ldr4:AO
keypad1:R1
keypad1:R2
keypad1:R3
keypad1:R4
keypad1:C1
keypad1:C2
keypad1:C3
keypad1:C4
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL