Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment