/* управление тремя реле при приеме сигнала на пин */
#include <TimerMs.h>
#define pinSIGNAL A0
#define pinON 6 //
#define pinOFF 7 //
#define pinNASOS A1
bool flagVKL = false;
bool knopka = false;
int count = 0;
////////////////////////////////////// ТАЙМЕРЫ //////////////////////////////////////
TimerMs tmr1(6000, 0, 1); // таймер на открытие // (период, мс), (0 не запущен / 1 запущен), (режим: 0 период / 1 таймер)
TimerMs tmr4(6000, 0, 1); //таймер на закрытие
TimerMs tmr3(1000,1 ,0);
/////////////////////////////////////////////////////////////////////////////////////
void VKL () {
if (knopka == true & flagVKL ==false) {
flagVKL = true; vent_ON (); Serial.print(flagVKL); Serial.println(" Клапан открывается");
}
delay (5);
if (knopka == false & flagVKL == true) {
flagVKL = false; vent_OFF (); Serial.print(flagVKL); Serial.println(" Клапан закрывается");
}
}
void VKL_OFF () {
}
void vent_ON (){
digitalWrite(pinON, LOW); //открываем вентиль 15с+1с
tmr1.start ();
}
void nasosON () {
digitalWrite(pinNASOS, HIGH);
}
void nasosOFF () {
digitalWrite(pinNASOS, LOW);
}
void vent_OFF (){
digitalWrite(pinOFF, LOW) ; tmr4.start (); //закрываем вентиль 15с+1с
}
void setup() {
delay(1000);
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(pinSIGNAL, INPUT); // считываем сигнал
pinMode(pinON, OUTPUT); digitalWrite(pinON, HIGH); //реле низкого уровня открыть клапан
pinMode(pinOFF, OUTPUT); digitalWrite(pinOFF, HIGH); //реле низкого уровня закрыть клапан
pinMode(pinNASOS, OUTPUT); digitalWrite(pinNASOS, LOW);//реле высокого уровня включить/выкл насос
// Serial.begin(9600);
delay (500);
}
void loop() {
knopka = digitalRead(pinSIGNAL);
if (knopka == false) {nasosOFF ();}
VKL ();
if (tmr1.tick()){Serial.println("ОТКРЫТО"); digitalWrite(pinON, HIGH); delay(10); nasosON (); }
if (tmr4.tick()){Serial.println("ЗАКРЫТО");digitalWrite(pinOFF, HIGH) ; }
//if (tmr3.tick()) {Serial.println (analogRead(A0));}
}