Advertisement
sandervspl

Les 6 Opdracht 1

Oct 11th, 2015
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.57 KB | None | 0 0
  1. const int ledPin = 13;
  2. const int buttonPin = 12;
  3.  
  4. int counter = 0;
  5. int totalTime = 0;
  6. int prevButtonState = -1;
  7. unsigned long prevTime = 0;
  8.  
  9. void setup() {
  10.   Serial.begin(9600);
  11.   pinMode(ledPin, OUTPUT);
  12.   pinMode(buttonPin, INPUT);
  13. }
  14.  
  15. void loop() {
  16.   int buttonState = digitalRead(buttonPin);
  17.   unsigned long curTime = millis();
  18.  
  19.   if (buttonState == HIGH) {
  20.     // reset
  21.     if (prevButtonState == LOW) {
  22.       counter = 0;
  23.       totalTime = 0;
  24.     }
  25.    
  26.     // zet led aan
  27.     if (digitalRead(ledPin) == LOW) {
  28.       digitalWrite(ledPin, HIGH);
  29.     }
  30.    
  31.     // elke seconde
  32.     if (prevTime - curTime >= 1) {
  33.       prevTime = curTime;
  34.       counter++;
  35.     }
  36.   } else {
  37.     // alleen als we de knop langer dan 2sec hebben ingedrukt kijken we
  38.     if (counter > 2000) {
  39.       // on-release
  40.       if (prevButtonState == HIGH) {
  41.         Serial.println(counter);
  42.        
  43.         // zet halve seconde uit
  44.         if (digitalRead(ledPin) == HIGH) {
  45.           digitalWrite(ledPin, LOW);
  46.           delay(500);
  47.         }
  48.        
  49.         totalTime = counter;
  50.         prevTime = curTime;
  51.       }
  52.     }
  53.    
  54.     // laat led aan voor zolang we dat zelf deden
  55.     if (curTime - totalTime < prevTime) {
  56.       if (digitalRead(ledPin) == LOW) {
  57.         digitalWrite(ledPin, HIGH);
  58.       }
  59.     } else {
  60.       // zet uit
  61.       if (digitalRead(ledPin) == HIGH) {
  62.         digitalWrite(ledPin, LOW);
  63.       }
  64.      
  65.       // nog een keer na een halve seconde
  66.       delay(500);
  67.  
  68.       prevTime = curTime;
  69.     }
  70.   }
  71.  
  72.   prevButtonState = buttonState;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement