ragazzi vi presento la mia idea commentate se ci sono dubbi domande lamentele o insulti ![]()
int xm=0; //segnale_memoria
long tt; //tempo_trascorso
long tm; //tempo_memoria
void setup() {
pinMode(13, OUTPUT);
pinMode(12, INPUT);
Serial.begin(9600);
}
void loop() {
if(digitalRead(12)==HIGH){
if(xm==0){
xm=1;
//---------
tt=millis()-tm;
Serial.print(tt);
Serial.print(" ");
tm=millis();
//---------
}
}
if(digitalRead(12)==LOW){
if(xm==1){
xm=0;
}
}
//...... continua il tuo codice
}
direi che è ottimo mi è venuto in mente stà notte e ora l'ho realizzato ![]()
PRO
-non blocca il codice al massimo lo rallenta per poco
-spostando quello che c'è tra le 2 //--- sotto il xm=0; puoi calcolare il tempo fra la fine dei 2 impulsi
-è in grado di contare impulsi più brevi di 20 ms credo e più grandi di 3 minuti
-restituisce una variabile che ha una precisione al ms
CONTRO
-rallenta di poco il codice e se mettete de delay nel vostro codice che viene dopo rallentate il ciclo
meglio di così si muore