-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathValueBetweenRange
59 lines (47 loc) · 2.61 KB
/
ValueBetweenRange
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
54
55
56
57
58
59
/* =============== ИНИЦИАЛИЗИРУЕМ НАСТРОЙКИ =============== */
#define SWITCH_LEVEL 0 // реле: 1 - высокого уровня (или мосфет), 0 - низкого
#define TIMER_START 1 // Отсчёт периода с момента ВЫКЛЮЧЕНИЯ помпы
#define PIN_NASOS 5 // Пин с подключенным насосом
// =============== Настройки для насоса =============== //
boolean nasos_state; // Состояние насоса (включен\выключен)
uint32_t pump_sensor_up; // Верхний порог значения с датчика влажности, при котором будет выключаться насос
uint32_t pump_sensor_down; // Нижний порог значения с датчика влажности, при котором будет выключаться насос
int sensorPin = A0; // пин для датчика влажности
// =============== Настройки для насоса =============== //
/* =============== ИНИЦИАЛИЗИРУЕМ НАСТРОЙКИ =============== */
void setup() {
Serial.begin(9600);
// --------------------- КОНФИГУРИРУЕМ ПИН ---------------------//
pump_sensor_up = 800; // Верхний порог для выключения насоса
pump_sensor_down = 300; // Нижний порог для выключения насоса
pinMode(PIN_NASOS, OUTPUT); // Пин насоса на выход
digitalWrite(PIN_NASOS, !SWITCH_LEVEL); // Выключаем пин насоса
// --------------------- КОНФИГУРИРУЕМ ПИНЫ ---------------------//
}
void loop() {
CheckForTurnOff();
CheckForTurnOn();
}
void CheckForTurnOff() // проверка для выключения насоса
{
int sensorValue;
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
delay(1000);
if (((pump_sensor_down > sensorValue) && (nasos_state == SWITCH_LEVEL)) || ((pump_sensor_up < sensorValue) && (nasos_state == SWITCH_LEVEL))) {
nasos_state = !SWITCH_LEVEL;
digitalWrite(PIN_NASOS, !SWITCH_LEVEL); // Выключаем насос
}
}
void CheckForTurnOn() { // включаем насос
int sensorValue;
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
delay(1000);
if ((pump_sensor_up > sensorValue) && (pump_sensor_down < sensorValue)
&& (nasos_state != SWITCH_LEVEL))
{
nasos_state = SWITCH_LEVEL;
digitalWrite(PIN_NASOS, SWITCH_LEVEL); // Включаем насос
}
}