Advertisement
Guest User

bi_modal.ino

a guest
Sep 4th, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.87 KB | None | 0 0
  1. #include <EEPROM.h>
  2.  
  3. bool IsRunning = true;
  4. const int PulseLength = 800; // time to power controller motors
  5. const int SwitchPin = 8;     // pin8 on board - GND activated switch
  6. const int Relay_IN1 = 5;     // pin5 on board > in1 on relay board
  7. const int Relay_IN2 = 4;     // pin4 on board > in2 on relay board
  8. const int Relay_IN3 = 3;     // pin3 on board > in3 on relay board
  9. const int Relay_IN4 = 2;     // pin2 on board > in4 on relay board
  10.  
  11. bool valveState()
  12. {
  13.   int sVal = EEPROM.read(0);
  14.   if (sVal == 1)
  15.   {
  16.     return true;
  17.   }
  18.   else
  19.   {
  20.     return false;
  21.   }
  22. }
  23.  
  24. void openValves()
  25. {
  26.   digitalWrite(Relay_IN1, HIGH);
  27.   digitalWrite(Relay_IN2, LOW);
  28.   digitalWrite(Relay_IN3, HIGH);
  29.   digitalWrite(Relay_IN4, LOW);
  30.   delay(PulseLength);
  31.   digitalWrite(Relay_IN1, LOW);
  32.   digitalWrite(Relay_IN2, LOW);
  33.   digitalWrite(Relay_IN3, LOW);
  34.   digitalWrite(Relay_IN4, LOW);
  35. }
  36.  
  37. void closeValves()
  38. {
  39.   digitalWrite(Relay_IN1, LOW);
  40.   digitalWrite(Relay_IN2, HIGH);
  41.   digitalWrite(Relay_IN3, LOW);
  42.   digitalWrite(Relay_IN4, HIGH);
  43.   delay(PulseLength);
  44.   digitalWrite(Relay_IN1, LOW);
  45.   digitalWrite(Relay_IN2, LOW);
  46.   digitalWrite(Relay_IN3, LOW);
  47.   digitalWrite(Relay_IN4, LOW);
  48. }
  49.  
  50.  
  51. void setup()
  52. {
  53.   pinMode(SwitchPin, INPUT_PULLUP);
  54.   pinMode(Relay_IN1, OUTPUT);
  55.   pinMode(Relay_IN2, OUTPUT);
  56.   pinMode(Relay_IN3, OUTPUT);
  57.   pinMode(Relay_IN4, OUTPUT);
  58.   if (valveState() == true)
  59.   {
  60.    // closeValves();
  61.   }
  62.   else
  63.   {
  64.     //openValves();
  65.   }
  66.   IsRunning = false;
  67. }
  68.  
  69.  
  70. void loop()
  71. {
  72.   if (IsRunning == false)
  73.   {
  74.     if (digitalRead(SwitchPin) == LOW)
  75.     {
  76.       IsRunning == true;  
  77.       if (valveState() == true)
  78.       {
  79.         EEPROM.write(0, 0);
  80.         openValves();
  81.       }
  82.       else
  83.       {
  84.         EEPROM.write(0, 1);
  85.         closeValves();
  86.       }
  87.       delay(500);
  88.       IsRunning == false;
  89.     }
  90.    }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement