florianscholz

Untitled

Aug 16th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. #include <Joystick.h>
  2.  
  3. int reedPin = 2;
  4. int reversePin = 3;
  5. boolean reedKontakt = false;
  6. boolean reverseKontakt = false;
  7. boolean reedState = false;
  8.  
  9. long int timeStamp = 0;
  10. long int recentTimeStamp = 0;
  11. long int otherTimeStamp = 0;
  12. int duration = 0;
  13.  
  14. boolean gateopen = false;
  15.  
  16. int count = 0;
  17.  
  18. void setup()
  19. {
  20.   Joystick.begin();
  21.   Serial.begin(9600);
  22.   Serial.println("Trimm dich Rad");
  23.  
  24.   pinMode(reedPin, INPUT);
  25.   pinMode(reversePin, INPUT);
  26. }
  27.  
  28. void loop()
  29. {
  30.   reedKontakt = digitalRead(reedPin);
  31.  
  32.   otherTimeStamp = millis();
  33.   if((otherTimeStamp - recentTimeStamp) > 600) {
  34.     reedKontakt = !reedState;
  35.     //Serial.println("WORKAROUND");
  36.   }
  37.   else {
  38.   }
  39.   if (reedKontakt != reedState)
  40.   {  
  41.     Serial.println("FEHLER");
  42.     if (reedKontakt == HIGH && gateopen)
  43.     {
  44.       timeStamp = millis();
  45.       reverseKontakt = digitalRead(reversePin);
  46.       duration = timeStamp - recentTimeStamp;
  47.       int speed = 0;
  48.       if(duration > 500) {
  49.         speed = 0;
  50.         Joystick.setYAxis(speed);
  51.       }
  52.       else {
  53.         speed = -127 + (duration / 4);
  54.         if(reverseKontakt)
  55.         {
  56.           speed *= -1;
  57.         }
  58.         Joystick.setYAxis(speed);
  59.       }
  60.      
  61.       gateopen = false;
  62.     } else if (reedKontakt == HIGH)
  63.     {
  64.       gateopen = true;
  65.     }
  66.      
  67.     recentTimeStamp = timeStamp;
  68.     reedState = reedKontakt;
  69.     //Serial.println();
  70.    
  71.   }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment