Eines de l'usuari

Eines del lloc


tutorials:processing:16_timer

Timer, objecte

// Example 10-5: Object-oriented timer
Timer timer;

void setup() {
  size(200, 200);
  background(0);
  timer = new Timer(5000);
  timer.start();
}

void draw() {
  if (timer.isFinished()) {
    background(random(255));
    timer.start();
  }
}

Com podem comprovar es un temporitzador, si vull fer automatitzacions amb el arduino/processing el timer es un objecte. De fet als autòmats i el lleguatge STL ja es un objecte, un tipus de dada(time).

I aquí la classe:


// Example 10-5: Object-oriented timer

class Timer {

  int savedTime; // When Timer started
  int totalTime; // How long Timer should last

  Timer(int tempTotalTime) {
    totalTime = tempTotalTime;
  }

  // Starting the timer
  void start() {
    // When the timer starts it stores the current time in milliseconds.
    savedTime = millis();
  }

  // The function isFinished() returns true if 5,000 ms have passed. 
  // The work of the timer is farmed out to this method.
  boolean isFinished() { 
    // Check how much time has passed
    int passedTime = millis()- savedTime;
    if (passedTime > totalTime) {
      return true;
    } else {
      return false;
    }
  }
}

El codi fa un intermitent perquè quan acaba torna a començar.

El cas d'un automatisme una entrada digital activaria el timer1.start(), i di la entrada segueix activada quan acabi el temps es que seguix activada. Podria millorar-se amb un mètode timer1.stop.

La he trobada a http://learningprocessing.com/examples/ i que també podem descarregat tots a https://github.com/shiffman/LearningProcessing. learningprocessing2.zip es le mateix autor que del llibre https://natureofcode.com/ que es més per estudiants de física. Es més interessant per ampendre processing/arduino el llibre http://learningprocessing.com/ http://learningprocessing.com/

tutorials/processing/16_timer.txt · Darrera modificació: 2021/01/21 20:17 per crevert