# define waterLevelSensor A0
# define pumpRelay 9
# define emptyLED A1
# define fullLED A2
void setup() {
Serial.begin(115200);
Serial.println("Pump Whirled!\n");
pinMode(waterLevelSensor, INPUT);
pinMode(pumpRelay, OUTPUT);
pinMode(emptyLED, OUTPUT);
pinMode(fullLED, OUTPUT);
setupPump();
}
# define FULL 924
# define EMPTY 100
bool okToPump = false;
bool tankOK = true; // pin 5 might say tank not OK to pump from
// initial state of 2nd pump
void setupPump()
{
int waterLevel = analogRead(waterLevelSensor);
if ((waterLevel < FULL) && (waterLevel > EMPTY)) okToPump = true;
}
void loop() {
int waterLevel = analogRead(waterLevelSensor);
// proxies for the two float switches
bool ohTankFull = waterLevel > FULL;
bool ohTankEmpty = waterLevel < EMPTY;
// what the float switches would say
digitalWrite(fullLED, ohTankFull);
digitalWrite(emptyLED, !ohTankEmpty);
if (ohTankFull)
okToPump = false;
if (ohTankEmpty)
okToPump = true;
digitalWrite(pumpRelay, okToPump && tankOK);
delay(100);
}