reading the frequency of a sine wave
There are several ways. Using an op-amp and a few discrete components, you can get a zero-crossing detector that provides a pulse no larger in amplitude than the positive supply rail to the op-amp, which can be detected with an external interrupt or pin-change interrupt on the Arduino.

Below is one example of a zero-crossing detector.







simulate this circuit &ndash; Schematic created using CircuitLab