/
Pump.h
53 lines (43 loc) · 874 Bytes
/
Pump.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#ifndef PUMP_H_
#define PUMP_H_
#define PUMP_ON_INTERVAL_MILLIS 750;
class Pump {
public:
Pump(int pinPump) {
pumpActive = false;
this->pinPump = pinPump;
pinMode(pinPump, OUTPUT);
pumpDeactivateMillis = 0;
}
~Pump() {
}
void init() {
deactivatePumpPin();
}
void process() {
processPump();
}
void pump() {
activatePumpPin();
}
private:
int pinPump;
bool pumpActive;
long pumpDeactivateMillis;
void deactivatePumpPin() {
pumpActive = false;
digitalWrite(pinPump, LOW);
}
void activatePumpPin() {
pumpActive = true;
digitalWrite(pinPump, HIGH);
pumpDeactivateMillis = millis() + PUMP_ON_INTERVAL_MILLIS;
}
void processPump() {
unsigned long currentMillis = millis();
if (pumpActive && pumpDeactivateMillis < currentMillis) {
deactivatePumpPin();
}
}
};
#endif