#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define START_BTN 3
#define RELAY1 6
#define RELAY2 7
LiquidCrystal_I2C lcd(0x27, 16, 2); // Adjust address if needed
void setup() {
pinMode(START_BTN, INPUT_PULLUP);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
digitalWrite(RELAY1, LOW);
digitalWrite(RELAY2, LOW);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Press Start");
}
void loop() {
if (digitalRead(START_BTN) == LOW) { // Button pressed
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Relay: 1");
// Wait 5 seconds before Relay 1
for (int i = 5; i > 0; i--) {
lcd.setCursor(0, 1);
lcd.print("Start in: ");
lcd.print(i);
lcd.print(" sec ");
delay(1000);
}
// Relay 1 ON for 0.5 sec
digitalWrite(RELAY1, HIGH);
delay(500);
digitalWrite(RELAY1, LOW);
// Countdown to Relay 2 (25 seconds)
for (int i = 25; i > 0; i--) {
lcd.setCursor(0, 0);
lcd.print("Relay: 2 ");
lcd.setCursor(0, 1);
lcd.print("Next in: ");
lcd.print(i);
lcd.print(" sec ");
delay(1000);
}
// Relay 2 ON for 5 seconds
digitalWrite(RELAY2, HIGH);
delay(5000);
digitalWrite(RELAY2, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sequence Done");
delay(3000);
lcd.clear();
lcd.print("Press Start");
}
}