Arduino.ino 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #include <Wire.h>//https://www.arduino.cc/en/reference/wire
  2. #include <DS3231.h>//https://github.com/NorthernWidget/DS3231
  3. int inter1 = ; // inter croissance mere
  4. int inter2 = ; // inter croissance reste
  5. int inter3 = ; // inter flo
  6. int interuptRTC = ; //Entrer interrupte RTC
  7. int InterruptHydro = ; //Entrer Interrupt Hydro
  8. int Led1 = ; //Relai croissance mere
  9. int Led2 = ; //Relai croissance reste
  10. int Led3 = ; //Relai flo
  11. int Extract = ;//relai Extract
  12. int Pompe = ; //Relai pompe
  13. bool ExtractOn = True;
  14. int tmpArrosage = ; //temps d'arrosage
  15. int ON = ;
  16. int OFF = ;
  17. int IN = ;
  18. int OUT = ;
  19. enum Prochain {
  20. AlumFlo,
  21. AlumCroi,
  22. ExtFlo,
  23. ExtCroi
  24. };
  25. enum Prochain pro = AlumFlo;
  26. void fc_InterHydro(){
  27. //Voir si rearmer l'interuption
  28. SI alarm1 :
  29. LED();
  30. Si alarm2 :
  31. extracteur();
  32. }
  33. void fc_InterHydro(){
  34. writepin(Pompe,ON);
  35. sleep(tmpArrosage);
  36. writepin(Pompe,OFF);
  37. }
  38. void extracteur(){
  39. //remiseAlarm2 +15min
  40. if(ExtractOn)
  41. writepin(Extract,OFF);
  42. else
  43. writepin(Extract,ON);
  44. ExtractOn= ~ExtractOn;
  45. }
  46. void LED(){
  47. Switch (pro){
  48. case(AlumCroi):
  49. pro = AlumFlo;
  50. //rearmer l'alarm +2H
  51. if(readpin(inter1))
  52. writepin(Led1,ON);
  53. if(readpin(inter1))
  54. writepin(Led2,ON);
  55. break;
  56. case(AlumFlo):
  57. pro = ExtFlo;
  58. //rearmer l'alarm +12H
  59. if (readpin(inter3))
  60. writepin(Led3,ON);
  61. break;
  62. case(ExtFlo):
  63. pro = ExtCroi;
  64. //rearmer l'alarm +2H
  65. writepin(Led3,OFF);
  66. break;
  67. case(ExtCroi):
  68. pro = AlumCroi;
  69. //rearmer l'alarm +8H
  70. writepin(Led1,OFF);
  71. writepin(Led2,OFF);
  72. break;
  73. }
  74. }
  75. void setup() {
  76. DS3231();
  77. //init I/O
  78. inter1 ;
  79. inter2 ;
  80. inter3 ;
  81. interuptRTC ;
  82. InterruptHydro ;
  83. Led1 ;
  84. Led2 ;
  85. Led3 ;
  86. Extract ;
  87. Pompe ;
  88. /*
  89. * Interruption
  90. */
  91. PCintPort::attachInterrupt(InteruptRTC, fc_InterRTC, FALLING);
  92. PCintPort::attachInterrupt(InterruptHydro, fc_InterHydro, FALLING);}
  93. void loop() {
  94. }