Timer con interfaccia grafica su Processing

Salve a tutti,
vorrei presentarvi il mio progetto, dato le mie conoscenze di programmazione direi ambizioso:
allora, dovrei far partire un timer quando passa un oggetto che chiamerò OBJ sotto un sensore infrarosso che chiamerò SENS, dopodichè ignorare i successivi 2 passaggi di OBJ e riprendere il tempo al 3° passaggio sempre su SENS, e diciamo che fin qui potrebbe anche essere fattibile, il problema è che dovrei gestire 3 timer differenti quindi tre SENS differenti e possibilmente su interfaccia grafica.
Secondo voi è fattibile? Cosa dovrei iniziare a studiare?
Grazie

penso che studiandoci un po sia fattibile,
contare passaggi con variabile di stato,
usare millis come timer e il fatto che i sensori siano 3 non credo sia un problema.
cosa dovresti visualizzare sull’interfaccia grafica?

Ciao camperos, guarda per l'interfaccia grafica mi basterebbe un pulsante di start e stop che inizializzi l'apparecchio, dopodichè al passaggio di OBJ1,OBJ2,OBJ3 per ognuno dei 3 sensori avvii tre timer differenti, poi come già detto ogni sensore deve ignorare i successivi 2 passaggi degli OBJ sotto i sensori e riprendere i tempi al terzo passaggio degli OBJ sotto i sensori.
In pratica sarebbe una pista per macchinette. Su cosa mi consigliate di orientarmi per lo studio della programmazione (quale libreria)? è possibile gestire tre timer differenti su una scheda arduino uno?

come detto sopra nessuna libreria,ci saranno comunque sicuramente vie migliori :wink:
se colleghi un pulsante al pin digitale 2, puoi simulare questo sketch.
apri il monitor seriale

int state = 0;
unsigned long time1;
unsigned long time2;
void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT);
  delay(2000);
}
void loop() {
  if (digitalRead(2) == HIGH && state == 0) {
    time1 = millis();
    Serial.println("start");
    state = 1;
    delay(50);
  }
  if (digitalRead(2) == LOW && state == 1) {
    state = 2;
    delay(50);
  }
  //////////////////////////////
  if (digitalRead(2) == HIGH && state == 2) {
    Serial.println("secondo");
    state = 3;
    delay(50);
  }
  if (digitalRead(2) == LOW && state == 3) {
    state = 4;
    delay(50);
  }
  //////////////////////////////
  if (digitalRead(2) == HIGH && state == 4) {
    Serial.println("terzo");
    state = 5;
    delay(50);
  }
  if (digitalRead(2) == LOW && state == 5) {
    state = 6;
    delay(50);
  }
  ///////////////////////////////
  if (digitalRead(2) == HIGH && state == 6) {
    time2 = millis();
    Serial.print("time:  ");
    Serial.println((time2 - time1) / 1000);
    Serial.println("==================");
    state = 7;
    delay(50);
  }
  if (digitalRead(2) == LOW && state == 7) {
    state = 0;
    delay(50);
  }
}

se va bene così per una macchinina prova ad inserire 3 pulsanti e modifica lo sketch per 3, ovviamente state e time avranno numeri diversi da quelli nello sketch sopra
poi vediamo processing