How to measure power factor cos phi with an Arduino?
See the comments below the post after reading this. My solution here would only be accurate for R-L-C circuits and not if there were pulsed currents due to rectifiers, etc.

Don't worry about Nyquist. Instead:


Detect the zero-cross of the voltage signal. Note whether it's positive-going or negative-going.
Start two timers - one to measure time to the next voltage zero-cross (Vzc) and the next to detect measure time to the current zero-cross (Izc).
When the Izc occurs stop the Izc timer.
Figure out whether it's positive or negative going.
On the next Vzc stop the Vzc timer. (This gives you the half-cycle time.)


From all the above information you can figure out the angle between the zero-crosses and whether the phase angle is leading or lagging.

Your main problem will be accuracy of the ZC measurements, particularly on the current waveform (which may be zero, don't forget). I would suggest that this might be better done by external discrete circuitry triggering digital inputs. The wideband Zero-Cross Detector by Dave Johnson may be of help.