Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. class timer{ // Timer class die de tijd bijhoudt
  2. private:
  3.   unsigned long startTime;
  4.   unsigned long endTime;
  5.   unsigned long timeTook = -1;
  6.   int slingerAmount = 10;
  7. public:
  8.   bool running = false;
  9.   bool needReset = true;
  10.   void start(){
  11.     startTime = millis();
  12.     running = true;
  13.   }
  14.   void end(){
  15.     endTime = millis();
  16.     running = false;
  17.     needReset = true;
  18.     timeTook = endTime-startTime;
  19.   }
  20.   void printTime(){
  21.     Serial.print("Duurde "); Serial.print(timeTook/1000.0); Serial.print(" seconden. Met "); Serial.print(slingerAmount); Serial.print(" Slingers duurde elke slinger "); Serial.print(timeTook/(double)(1000.0*slingerAmount)); Serial.println(" seconden.");
  22.   }
  23. };
  24.  
  25. timer myTimer; //Globaal object van mijn timer class
  26.  
  27. //Specificeren van Aangesloten pins en van de status van de knop
  28. int buttonPin = A1;
  29. int oldState = LOW;
  30. int newState = LOW;
  31. int ledPin = 2;
  32.  
  33. //Functies die uitgevoerd worden bij het loslaten en het indrukken van de knop
  34. void buttonRelease(){
  35.   if (myTimer.running){
  36.     myTimer.end();
  37.     myTimer.printTime();
  38.   }
  39. }
  40.  
  41. void buttonPress(){
  42.   if (!myTimer.running && !myTimer.needReset){
  43.     myTimer.start();
  44.     Serial.println("Starting timer");
  45.   }
  46.   myTimer.needReset = false;
  47. }
  48.  
  49. //Begin van communicatie met de computer en het defineren van INPUT en OUTPUT voor led en knop
  50. void setup(){
  51.   Serial.begin(9600);
  52.   pinMode(buttonPin, INPUT);
  53.   pinMode(ledPin, OUTPUT);
  54. }
  55.  
  56. //Loop die de led aanzet als de timer runt en die luistert naar de staat van de knop.
  57. void loop(){
  58.   if (myTimer.running){
  59.     digitalWrite(ledPin, HIGH);
  60.   } else {
  61.     digitalWrite(ledPin, LOW);
  62.   }
  63.  
  64.   newState = digitalRead(buttonPin);
  65.   if (oldState == LOW && newState == HIGH){
  66.     buttonPress();
  67.   } else if (oldState == HIGH && newState == LOW){
  68.     buttonRelease();
  69.   }
  70.  
  71.   oldState = newState;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement