Olá, boa tarde.
Kamus, que a Deusa Athena nos abençoe. Se você reduzir seu problema de medição de fator de potência ao de medição de defasagem entre formas de onda, seu trabalho fica muito simples. Você vai precisar de:
1. Um circuito para detectar a passagem pelo zero da forma de onda da tensão, como os desse tópico. A diferença pro seu projeto é que você só precisa detectar quando a tensão passa do negativo para o positivo. Não consegui achar nada sobre o sensor que você citou mais acima. O circuito deste link deve servir, ligado a uma porta digital do arduino.
2. Um circuito pra detectar a passagem pelo zero do sinal de corrente. Para o seu sensor, o pessoal do Emmonlib disponibiliza uns circuitos de exemplo, como este aqui. Para o seu sensor, o resistor indicado como Burden já está integrado ao sensor, convertendo a corrente de secundário na tensão (esse 1V que você descreveu). Você pode montar esse circuito e ligar em uma das portas analógicas do arduino.
3. O algoritmo a seguir: depois de realizar o setup, o código fica esperando por uma transição do nível 0 (LOW) para o nível 1 (HIGH) na porta do detector de tensão. Quando isso acontecer, você marca o tempo com a função micros, guardando o valor em uma variável (tempo1). O segundo passo é esperar a corrente transitar do negativo para o positivo. Com o circuito da emmonlib, você espera que a transição ocorra de uma tensão menor que 2.5V para uma tensão maior que 2.5V. Quando isso ocorrer, marque o tempo com a função micros e guarde o valor em uma segunda variável (tempo2). Use a diferença tempo2-tempo1 para calcular o fator de potência.
A função micros do Arduino retorna o tempo decorrido desde quando o microcontrolador foi ligado em microssegundos. A diferença tempo2-tempo1 equivale à quantidade de tempo passada entre os dois eventos que descrevi acima.
Uma senoide em 60Hz possui como período 16666 us. Metade disso são 8333 us. Se você medir 8333 us na diferença tempo2-tempo1, você tem FP = 0. Se a diferença for 0 us, FP = 1. Valores intermediários podem ser obtidos com regra de três. O FP assim medido, para defasagens entre 0 e 8333us, é classificado como indutivo. Se a diferença ficar entre 8333 e 16666us, o FP é capacitivo. Favor verificar a veracidade disto.
Devo alertá-lo que este método não é perfeito, funcionando apenas com cargas lineares, por exemplo. Caso a corrente de carga seja muito pequena, você terá problemas para identificar corretamente as transições. Não me preocupei com circuitos de proteção para o Arduino, um diodo zener de 5V entre a porta analógica e o terra pode ser útil, por exemplo. Caso esteja disposto, recomendo ler este material da Atmel: link aqui. Neste link, eles sugerem uma forma diferente para calcular o fator de potência, mostram um circuito completo e indicam como deve ser o código. O código pronto pode ser encontrado no google, mas não possuo o link.
Espero ter ajudado. Outras questões, como a programação em Arduino, podem ser resolvidas com buscas ao Google.
Esta postagem pode conter erros. caso os encontre, favor alertar através de comentários.