florianscholz icon

Untitled

florianscholz | PRO | 08/16/17 07:03:28 PM UTC | 0 ⭐ | 174 👁️ | Never ⏰ | []
C++ |

1.42 KB

|

None

|

0 👍

/

0 👎

#include <Joystick.h>
 
int reedPin = 2;
int reversePin = 3;
boolean reedKontakt = false;
boolean reverseKontakt = false;
boolean reedState = false;
 
long int timeStamp = 0;
long int recentTimeStamp = 0;
long int otherTimeStamp = 0;
int duration = 0;
 
boolean gateopen = false;
 
int count = 0;
 
void setup()
{
  Joystick.begin();
  Serial.begin(9600);
  Serial.println("Trimm dich Rad"); 
  
  pinMode(reedPin, INPUT);
  pinMode(reversePin, INPUT);
}
 
void loop()
{
  reedKontakt = digitalRead(reedPin);
 
  otherTimeStamp = millis();
  if((otherTimeStamp - recentTimeStamp) > 600) {
    reedKontakt = !reedState;
    //Serial.println("WORKAROUND");
  }
  else {
  }
  if (reedKontakt != reedState)
  {   
    Serial.println("FEHLER"); 
    if (reedKontakt == HIGH && gateopen)
    {
      timeStamp = millis();
      reverseKontakt = digitalRead(reversePin);
      duration = timeStamp - recentTimeStamp;
      int speed = 0;
      if(duration > 500) {
        speed = 0;
        Joystick.setYAxis(speed);
      }
      else {
        speed = -127 + (duration / 4);
        if(reverseKontakt)
        {
          speed *= -1;
        }
        Joystick.setYAxis(speed);
      }
      
      gateopen = false;
    } else if (reedKontakt == HIGH)
    {
      gateopen = true;
    }
      
    recentTimeStamp = timeStamp;
    reedState = reedKontakt;
    //Serial.println();
    
  }
}

Comments