#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
// BUTTONS
const int button1Pin = 2;
const int button2Pin = 3;
const int button3Pin = 4;
const int button4Pin = 5;
const int button5Pin = 6;
const int button6Pin = 7;
// BUZZER
const int buzzerPin = 8;
// BUTTON STATES
bool button1State = false;
bool button2State = false;
bool button3State = false;
bool button4State = false;
bool button5State = false;
bool button6State = false;
// LAST BUTTON STATES PARA MADETECT PRESS AND RELEASE
bool lastButton1State = false;
bool lastButton2State = false;
bool lastButton3State = false;
bool lastButton4State = false;
bool lastButton5State = false;
bool lastButton6State = false;
// TONES PER BUTTON (IN HERTZ TO)
const int toneButton1 = 1000;
const int toneButton2 = 1200;
const int toneButton3 = 1400;
const int toneButton4 = 1600;
const int toneButton5 = 1800;
const int toneButton6 = 2000;
void setup() {
// Initialize
lcd.init();
lcd.backlight();
// INPUT-BUTTON PINS
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(button3Pin, INPUT_PULLUP);
pinMode(button4Pin, INPUT_PULLUP);
pinMode(button5Pin, INPUT_PULLUP);
pinMode(button6Pin, INPUT_PULLUP);
// OUTPUT-BUZZER
pinMode(buzzerPin, OUTPUT);
// SHOW STANDBY MESSAGE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202");
}
void loop() {
// READ BUTTON STATES
button1State = digitalRead(button1Pin) == LOW; // Assuming buttons are connected to ground (ACTIVE LOW)
button2State = digitalRead(button2Pin) == LOW;
button3State = digitalRead(button3Pin) == LOW;
button4State = digitalRead(button4Pin) == LOW;
button5State = digitalRead(button5Pin) == LOW;
button6State = digitalRead(button6Pin) == LOW;
//IF BUTTON1 PRESSED
if (button1State && !lastButton1State) {
lcd.clear();
lcd.setCursor(2, 1);
lcd.print("I need to poop.");
lcd.setCursor(2, 2);
lcd.print("Please assist me!");
lcd.setCursor(9, 3);
lcd.print("B1");
tone(buzzerPin, toneButton1); // PLAY TONE
} else if (!button1State && lastButton1State) {
//IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP -ALWAYS ON TOP EMZ
noTone(buzzerPin);
}
// IF BUTTON2 PRESSED
if (button2State && !lastButton2State) {
lcd.clear();
lcd.setCursor(2, 1);
lcd.print("I need to pee.");
lcd.setCursor(2, 2);
lcd.print("Please come here!");
lcd.setCursor (9, 3);
lcd.print("B2");
tone(buzzerPin, toneButton2); // PLAY TONE
} else if (!button2State && lastButton2State) {
// IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP
noTone(buzzerPin);
}
//IF BUTTON3 PRESSED
if (button3State && !lastButton3State) {
lcd.clear();
lcd.setCursor(2, 1);
lcd.print("I feel thirsty!");
lcd.setCursor(2, 2);
lcd.print("Bring me a drink.");
lcd.setCursor(9, 3);
lcd.print("B3");
tone(buzzerPin, toneButton1); // PLAY TONE
} else if (!button3State && lastButton3State) {
//IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP -ALWAYS ON TOP EMZ
noTone(buzzerPin);
}
//IF BUTTON4 PRESSED
if (button4State && !lastButton4State) {
lcd.clear();
lcd.setCursor(4, 1);
lcd.print("I am hungry.");
lcd.setCursor(0, 2);
lcd.print("Please give me food.");
lcd.setCursor(9, 3);
lcd.print("B4");
tone(buzzerPin, toneButton1); // PLAY TONE
} else if (!button4State && lastButton4State) {
//IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP -ALWAYS ON TOP EMZ
noTone(buzzerPin);
}
//IF BUTTON5 PRESSED
if (button5State && !lastButton5State) {
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("I'm feeling itchy!");
lcd.setCursor(1, 2);
lcd.print("Help me with this.");
lcd.setCursor(9, 3);
lcd.print("B5");
tone(buzzerPin, toneButton1); // PLAY TONE
} else if (!button5State && lastButton5State) {
//IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP -ALWAYS ON TOP EMZ
noTone(buzzerPin);
}
//IF BUTTON6 PRESSED
if (button6State && !lastButton6State) {
lcd.clear();
lcd.setCursor(1, 1);
lcd.print("EMERGENCY! URGENT!");
lcd.setCursor(2, 2);
lcd.print("Come right away!");
lcd.setCursor(9, 3);
lcd.print("B6");
tone(buzzerPin, toneButton1); // PLAY TONE
} else if (!button6State && lastButton6State) {
//IF RELEASED, REVERT SA STANDBY MODE
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("HELLO!");
lcd.setCursor(5, 1);
lcd.print("C.A.R.E.S.");
lcd.setCursor(1, 2);
lcd.print("ON STANDBY MODE...");
lcd.setCursor(3, 3);
lcd.print("FROM STEM 1202"); // BUZZER STOP -ALWAYS ON TOP EMZ
noTone(buzzerPin);
}
//uulitin lang naman yung void setup pag dadagdagan na ng button, palitan na lang ng variable
// UPDATE LAST BUTTON STATES
lastButton1State = button1State;
lastButton2State = button2State;
lastButton3State = button3State;
lastButton4State = button4State;
lastButton5State = button5State;
lastButton6State = button6State;
// Small delay to avoid flickering
delay(50);
}