#include //https://www.arduino.cc/en/reference/wire #include //https://github.com/NorthernWidget/DS3231 #include #include #define ONE_WIRE_BUS 3 /* int Inter1 = ; // inter croissance mere int Inter2 = ; // inter croissance reste int Inter3 = ; // inter flo int InterruptHydro = ; //Entrer Interrupt Hydro int Inter */ int Led1 = ; //Relai croissance mere int Led2 = ; //Relai croissance reste int Led3 = ; //Relai flo int Extract = ;//relai Extract int Dehum = ; int Pompe = ; //Relai pompe bool ExtractOn = True; int tmpArrosage = ; //temps d'arrosage DS3231 Clock; enum Prochain { AlumFlo, AlumCroi, ExtFlo, ExtCroi }; enum Prochain pro = AlumFlo; void fc_InterHydro(){ //Voir si rearmer l'interuption SI alarm1 : LED(); Si alarm2 : extracteur(); } void fc_InterHydro(){ writepin(Pompe,ON); sleep(tmpArrosage); writepin(Pompe,OFF); } void extracteur(){ //remiseAlarm2 +15min if(ExtractOn) writepin(Extract,OFF); else writepin(Extract,ON); ExtractOn= ~ExtractOn; } void LED(){ Switch (pro){ case(AlumCroi): pro = AlumFlo; //rearmer l'alarm +2H if(readpin(inter1)) writepin(Led1,ON); if(readpin(inter1)) writepin(Led2,ON); break; case(AlumFlo): pro = ExtFlo; //rearmer l'alarm +12H if (readpin(inter3)) writepin(Led3,ON); break; case(ExtFlo): pro = ExtCroi; //rearmer l'alarm +2H writepin(Led3,OFF); break; case(ExtCroi): pro = AlumCroi; //rearmer l'alarm +8H writepin(Led1,OFF); writepin(Led2,OFF); break; } } void setup() { DS3231(); //init I/O inter1 ; inter2 ; inter3 ; interuptRTC ; InterruptHydro ; Led1 ; Led2 ; Led3 ; Extract ; Pompe ; /* * Interruption */ PCintPort::attachInterrupt(InteruptRTC, fc_InterRTC, FALLING); PCintPort::attachInterrupt(InterruptHydro, fc_InterHydro, FALLING);} void loop() { }