Bom, vamos lá... acho que não precisa de opto pra fazer isso, apesar de, claro, poder-se usar opto também. Tem várias maneiras.
Você pode usar um divisor resistivo para deixar sua tensão próximo a uma valor melhor para se trabalhar, por exemplo, 5V. Feito isso, pode desacoplar com um capacitor grande, de uns 100nF, e você tem uma senoidal de 5V pronta pra trabalhar.
Aí, só joga em um comparador, e você deve ter seu zero cross detection, sicronizado com a borda de subida e de descida.
O circuito ficaria algo assim:
- Código: Selecionar todos
127V
^
|
-
R
-
|
----| |---AmpOp
| C
-
R
-
|
GND
Talvez seja necessário dar uma melhorada no circuito após o capacitor, com diodos para ceifar a tensão. Um filtro passa-baixas também poderia ajudar, além de em divisor resistivo após o capacitor... tem que ser testado.
But to us there is but one God, plus or minus one - Corinthians 8:6±2. (xkcd.com)