¿Como puedo hacer un contador de tiempo de de un pulso? (Cuanto tiempo duro )

Deseo hacer un contador de un pulso por ejemplo

en el pin 2 digital le pongo un alto y luego un bajo y quiero que serial mente me diga cuanto duro no importa si esta en mili segundos pero quiero que me arroje un numero

gracias

una idea:
cada vez que haya un cambio de estado en ese pin compara millis() con el milis almacenado del anterior cambio y almacena de nuevo el millis() actual.