Cambiar delay por micros()

guezro:
Y el paso por cero lo tengo con un attachinterrupt.

¿Qué arduino usas?. ¿Cómo tienes cableado el asunto para detectar el paso por cero?
Saludos