timer cronometro

salve ce una funzione per calcolare il tempo trascorso tra un impulso e l'altro (magari su 2 pin differenti) dovrei misurare il tempo trascorso tra l'interruzione di un collegamento e l'altro, molto veloci. o pesato di far partire l'arduino ad l'interruzione del collegamento ed a ogni ciclo aumentare un valore di 1 ma non mi sembra preciso. grazie per qualunque idea, sono nuovo e conosco solo le funzioni base.

se spieghi bene ti rispondono bene

e sopratutto l'ordine di tempo che devi misurare pochi secondi frazioni di secondi che collegamento e come viene interrotto

se qualche parte del programma usa gia millis()

Hai la possibilità di usare sia la pulseIn(), che permette di leggere la durata di un segnale su un pin, sia attaccare un interrupt ad un pin e monitorare con una tua funzione la lettura di un singolo impulso http://arduino.cc/en/Reference/PulseIn http://arduino.cc/en/Reference/AttachInterrupt

ecco qualche immagine il primo contatto a sinistra va al pin7 di arduino, il secondo a 5v il com e collegato anche lui al pin7 che quando tocca il filo di fianco a 5v lo rimanda alto finche non si rompe il proiettile interrompe il contatto facendo scattare il timer, dopo un metro fa toccare i due fili rimandandolo alto. i tempi in gioco sono molto brevi 0,10 secondi

int pin = 7; unsigned long duration;

void setup() { pinMode(pin, INPUT); Serial.begin(9600); }

void loop() { duration = pulseIn(pin, LOW); Serial.print(duration); delay(5000); }