... bravo ... vedi che stando attento ti accorgi da solo di cose errate ![]()
Due cose fondamentalmente ...
... non puoi usare millis() perché devi misurare tempi che sono di µsec ... quindi ... micros()
... metti il pin in INPUT, leggi i micros() e li salvi, fai il WHILE (il pin è HIGH) e quando esci dal WHILE (ovvero quando il pin diventa LOW) rileggi micros() e fai la differenza con il valore che avevi salvato e sai ... i µsec che sono passati.
Ricorda che 1000 µsec = 1 millisec
Guglielmo