Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class timer{ // Timer class die de tijd bijhoudt
- private:
- unsigned long startTime;
- unsigned long endTime;
- unsigned long timeTook = -1;
- int slingerAmount = 10;
- public:
- bool running = false;
- bool needReset = true;
- void start(){
- startTime = millis();
- running = true;
- }
- void end(){
- endTime = millis();
- running = false;
- needReset = true;
- timeTook = endTime-startTime;
- }
- void printTime(){
- 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.");
- }
- };
- timer myTimer; //Globaal object van mijn timer class
- //Specificeren van Aangesloten pins en van de status van de knop
- int buttonPin = A1;
- int oldState = LOW;
- int newState = LOW;
- int ledPin = 2;
- //Functies die uitgevoerd worden bij het loslaten en het indrukken van de knop
- void buttonRelease(){
- if (myTimer.running){
- myTimer.end();
- myTimer.printTime();
- }
- }
- void buttonPress(){
- if (!myTimer.running && !myTimer.needReset){
- myTimer.start();
- Serial.println("Starting timer");
- }
- myTimer.needReset = false;
- }
- //Begin van communicatie met de computer en het defineren van INPUT en OUTPUT voor led en knop
- void setup(){
- Serial.begin(9600);
- pinMode(buttonPin, INPUT);
- pinMode(ledPin, OUTPUT);
- }
- //Loop die de led aanzet als de timer runt en die luistert naar de staat van de knop.
- void loop(){
- if (myTimer.running){
- digitalWrite(ledPin, HIGH);
- } else {
- digitalWrite(ledPin, LOW);
- }
- newState = digitalRead(buttonPin);
- if (oldState == LOW && newState == HIGH){
- buttonPress();
- } else if (oldState == HIGH && newState == LOW){
- buttonRelease();
- }
- oldState = newState;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement