Advertisement
Guest User

bi-modal-pwm

a guest
Oct 25th, 2018
740
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.16 KB | None | 0 0
  1. #include <PWM.h>  // pwm-frequency-library    https://code.google.com/archive/p/arduino-pwm-frequency-library/downloads
  2. #include <EEPROM.h>
  3.  
  4. const int pwmPin = 9;      //pin9 onboard for pwm signal
  5. const int SwitchPin = 7;   // pin7 on board - GND activated switch
  6. bool IsRunning = true;
  7.  
  8. bool valveState()
  9. {
  10.   int sVal = EEPROM.read(0);
  11.   if (sVal == 1)
  12.   {
  13.     return true;
  14.   }
  15.   else
  16.   {
  17.     return false;
  18.   }
  19. }
  20.  
  21. void openValves()
  22. {
  23.   pwmWrite(pwmPin, 203);
  24. }
  25.  
  26. void closeValves()
  27. {
  28.   pwmWrite(pwmPin, 51);
  29. }
  30.  
  31. void setup() {
  32.   InitTimersSafe();
  33.   SetPinFrequencySafe(pwmPin, 200);
  34.   pinMode(pwmPin, OUTPUT);
  35.   pinMode(SwitchPin, INPUT_PULLUP);
  36.  
  37.   if (valveState() == true)
  38.   {
  39.     closeValves();
  40.   }
  41.   else
  42.   {
  43.     openValves();
  44.   }
  45.   IsRunning = false;
  46. }
  47.  
  48. void loop()
  49. {
  50.   if (IsRunning == false)
  51.   {
  52.     if (digitalRead(SwitchPin) == LOW)
  53.     {
  54.       IsRunning == true;  
  55.       if (valveState() == true)
  56.       {
  57.         EEPROM.write(0, 0);
  58.         openValves();
  59.       }
  60.       else
  61.       {
  62.         EEPROM.write(0, 1);
  63.         closeValves();
  64.       }
  65.       delay(1000);
  66.       IsRunning == false;
  67.     }
  68.    }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement