#include <arduino-timer.h>

#define OUVERT LOW
#define FERME HIGH

int RAZ = 1;
int NiveauBas   = 3;
int NiveauHaut  = 2;

int pistolet = 4;

int POMPE = 7;
int VanneRestricteur = 6;
int VanneEau  = 8;
int POMPEREMONTER  = 5;

int R   = 9;
int G   = 10;
int B   = 11;


auto t_timer = timer_create_default(); // create a timer with default settings


void setup() {
  Serial.begin(9600);
  Serial.println("Lance");
  
  pinMode(NiveauBas, INPUT);
  pinMode(NiveauHaut, INPUT);
  pinMode(pistolet, INPUT);
  
  pinMode(POMPE, OUTPUT);
  pinMode(VanneRestricteur, OUTPUT);
  pinMode(VanneEau, OUTPUT);
  pinMode(POMPEREMONTER, OUTPUT);
  
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT);
  
  digitalWrite(POMPE, HIGH);
  digitalWrite(VanneRestricteur, HIGH);
  digitalWrite(VanneEau, HIGH);
  digitalWrite(POMPEREMONTER, HIGH);
}

void loop() {
  if(digitalRead(pistolet)==0 & digitalRead(NiveauBas)){
  digitalWrite(POMPEREMONTER,OUVERT);
  }
  else{
  digitalWrite(POMPEREMONTER,FERME);  
  }


  if(digitalRead(NiveauBas)==0 & RAZ==1){
    RAZ=0;
    Start();
  }

  if(digitalRead(NiveauHaut)==1){
    Serial.println("Glitch");
    t_timer.in(1000, Test );
  }

  t_timer.tick();
}

void Test(void){
  if(digitalRead(NiveauHaut)==1)
    Stop();
}
void Start(void){
  Serial.println("start");
  t_timer.in(60000, closeVanne );
  digitalWrite(VanneEau,OUVERT);
  digitalWrite(VanneRestricteur,OUVERT);
  digitalWrite(POMPE,OUVERT);
}

void Stop(void){
  RAZ=1;
  Serial.println("stop");
  digitalWrite(VanneEau,FERME);
  digitalWrite(POMPE,FERME);
}

void closeVanne (void){
  Serial.println("coupe");
  digitalWrite(VanneRestricteur,FERME);
}
