71 lines
1.2 KiB
C++
71 lines
1.2 KiB
C++
#define pressure_Aport 0
|
|
#define relay_Dport 5
|
|
|
|
#define CLK 2
|
|
#define DT 3
|
|
#define SW 4
|
|
|
|
#define const_pressure_min 0
|
|
#define const_pressure_max 100
|
|
|
|
#include <GyverEncoder.h>
|
|
|
|
|
|
|
|
int pressure, pressure_min, pressure_max;
|
|
bool flag;
|
|
|
|
Encoder enc(CLK, DT, SW);
|
|
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
enc.setType(TYPE2);
|
|
pinMode(relay_Dport, OUTPUT);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
|
|
enc.tick();
|
|
if (enc.isTurn()) {
|
|
if (enc.isRight()) {
|
|
pressure_min = constrain(pressure_min+10, pressure_min, const_pressure_max);
|
|
}
|
|
if (enc.isLeft()) {
|
|
pressure_min = constrain(pressure_min-10, pressure_min, const_pressure_max);
|
|
}
|
|
if (enc.isRightH()) {
|
|
pressure_min = constrain(pressure_max+10, pressure_min, const_pressure_max);
|
|
}
|
|
if (enc.isLeftH()) {
|
|
pressure_min = constrain(pressure_max-10, pressure_min, const_pressure_max);
|
|
}
|
|
}
|
|
|
|
pressure = analogRead(pressure_Aport);
|
|
|
|
if (pressure < pressure_min) {
|
|
if (!flag) {
|
|
digitalWrite(relay_Dport, HIGH);
|
|
flag = true;
|
|
}
|
|
|
|
|
|
} else {
|
|
if (pressure > pressure_max) {
|
|
if (flag) {
|
|
digitalWrite(relay_Dport, LOW);
|
|
flag = false;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|