#include <mechButton.h>
#include <timeObj.h>
#define LED_PIN 4
#define MAX_SEC 10
mechButton addBtn(2);
mechButton stopBtn(3);
timeObj oneSec(1000,false);
int numSeconds;
bool pumping;
void setup() {
Serial.begin(115200);
numSeconds = 0;
pumping = 0;
addBtn.setCallback(addClicked);
stopBtn.setCallback(stopClicked);
pinMode(LED_PIN, OUTPUT);
}
// These two actually start and stop the pump.
void startPump(void) {
if (numSeconds>0) {
digitalWrite(LED_PIN, HIGH);
oneSec.start();
pumping = true;
Serial.println("PUMP ON!!");
}
}
void stopPump(void) {
digitalWrite(LED_PIN, LOW);
oneSec.reset();
numSeconds = 0;
pumping = false;
Serial.println("PUMP OFF!!");
Serial.println("----------");
}
// If you click the add button
void addClicked(void) {
if (!addBtn.getState()) {
if (numSeconds<MAX_SEC) {
numSeconds++;
if (!pumping) {
startPump();
}
}
}
}
// IF you click the stop button.
void stopClicked(void) {
if (!stopBtn.getState()) {
stopPump();
}
}
void loop() {
idle();
if (pumping) {
if (oneSec.ding()) {
numSeconds--;
if (numSeconds) {
oneSec.stepTime();
Serial.println(numSeconds);
} else {
stopPump();
}
}
}
}