I think this corresponds to your description.
#include <EEPROM.h>
// constants won't change.
// INPUT PINS
const int buttonPin1 = 3;
const int buttonPin2 = 4;
const int buttonPin3 = 5;
// OUTPUT PINS
const int ledPin1 = 8;
const int ledPin2 = 9;
const int ledPin3 = 10;
const int pumppin = 13;
//EEPROM MEEMORY POSITIONS
#define memposL1 1
// variables will change:
int pumppinstatus = LOW;
int buttonState1 = LOW;
int buttonState2 = LOW;
int buttonState3 = LOW;
void setup() {
// initialize the output pins:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(pumppin, OUTPUT);
// pinMode(ledPin5, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
// Restore pumppin staus from EEPROM
// check pumppin status
pumppinstatus=EEPROM.read(memposL1);
digitalWrite(pumppin,pumppinstatus);
}
void loop(){
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
digitalWrite(ledPin1, buttonState1);
digitalWrite(ledPin2, buttonState2);
digitalWrite(ledPin3, buttonState3);
// If all three buttons are HIGH and pump is running
if (buttonState1 && buttonState2 && buttonState3 && pumppinstatus) {
// Turn the pump off
pumppinstatus = LOW;
digitalWrite(pumppin, LOW);
EEPROM.write(memposL1, LOW);
}
// If all three buttons are LOW and pump is not running
if (buttonState1 && buttonState2 && buttonState3 && !pumppinstatus) {
// Turn the pump on
pumppinstatus = HIGH;
digitalWrite(pumppin, HIGH);
EEPROM.write(memposL1, HIGH);
}
delay(100);
}