Citazione:
Originalmente inviato da faustog_2 results_1 = pulseIn(pin1,HIGH,25000);
results_2 = pulseIn(pin2,HIGH,25000);
results_3 = pulseIn(pin3,HIGH,25000);
results_4 = pulseIn(pin4,HIGH,25000); |
Guarda che il problema sta proprio in queste 4 righe...
supponi l'ordine in cui cambiano i pin sia 4 3 2 1 o che cambino tutti assieme (caso comune in molte nuove riceventi)
il primo pulseIn aspetta fino a 25000us per pin1
ma quando arriva a leggere un segnale valido passa al secondo pulseIn che dovrà aspettare tutto il frame ppm lo stesso per il terzo e il 8 in totale si arriva a 4 frame = 88ms
Per fare una prova: memorizza millis() prima del primo pulseIn e sottrailo dal valore dopo l'ultimo, stampa i risultati e poi prova a cambiare l'ordine degli ingressi...