Pessoal, espero que encontre uma ajuda aqui com vocês.
Estou tentando desenvolver um monitoramento online de correntes de um motor trifásico. Já olhei em diversos sites, já olhei diversos fóruns, mas pelo que vi, ninguém nestes sites e fóruns obteve sucesso na leitura trifásica com Arduino.
Vou listar aqui as minhas tentativas:
1°) Declarei 3 instâncias distintas para EnergyMonitor:
EnergyMonitor emon1;
EnergyMonitor emon2;
EnergyMonitor emon3;
Daí declarei 3 correntes a serem medidas
Double Irms1;
Double Irms2;
Double Irms3;
Fiz a calibração para meu circuito com um resistor de carga de 150k, o que faz com que tenha um fator de calibração 2000 enrolamentos/150k = 13.333
No setup então eu calibrei o sensor para cada entrada analógica:
emon1.current(A0, 13.333);
emon2.current(A1, 13.333);
emon3.current(A2, 13.333);
Então entra o cálculo da corrente propriamente dito:
Irms1 = emon1.calcIrms(1996);
Irms2 = emon2.calcIrms(1996);
Irms3 = emon3.calcIrms(1996);
1996 é o valor correto a ser aplicado em medições de redes 60Hz, normalmente vemos o valor 1480, que é para 50Hz.
Pois bem... neste caso somente uma corrente é lida, as demais ficam em ZERO ou valores próximos a ZERO.
2°) Declarei as instâncias como vetor:
EnergyMonitor emon[4];
Daí declarei 3 correntes a serem medidas:
Double Irms1;
Double Irms2;
Double Irms3;
No setup então eu calibrei o sensor para cada entrada analógica:
emon[0].current(A0, 13.333);
emon[1].current(A1, 13.333);
emon[2].current(A2, 13.333);
Então entra o cálculo da corrente propriamente dito:
Irms1 = emon[0].calcIrms(1996);
Irms2 = emon[1].calcIrms(1996);
Irms3 = emon[2].calcIrms(1996);
Não deu certo também, acredito que quando transformei em vetor peguei pedaços do valor da instância, pois gerou medições sem sentido.
3°) Declarei somente uma instância para 3 correntes:
EnergyMonitor emon1;
Daí declarei 3 correntes a serem medidas
Double Irms1;
Double Irms2;
Double Irms3;
No setup então eu calibrei o sensor para cada entrada analógica:
emon1.current(A0, 13.333);
emon1.current(A1, 13.333);
emon1.current(A2, 13.333);
Então entra o cálculo da corrente propriamente dito:
Irms1 = emon1.calcIrms(1996);
Irms2 = emon1.calcIrms(1996);
Irms3 = emon1.calcIrms(1996);
4°) Pensando que possivelmente o tempo pudesse ser um problema na medição de tantas correntes, eu fiz todas as tentativas acima colocando uma variável de contagem que fazia com que somente um sensor fosse lido por vez em cada loop, mais ou menos assim:
Declarei int looping = 0;
looping;
if (looping > 2){
looping = 0;
}
else{
looping;
}
switch (looping){
case 0:
Irms1 = emon[0].calcIrms(1996);
break;
case 1:
Irms2 = emon[1].calcIrms(1996);
break;
case 2:
Irms3 = emon[2].calcIrms(1996);
break;
}
}
Neste caso vai variando o valor de looping e mede somente a corrente ligada ao valor Irms de 0 a 2.
Como podem ver, tentei até coisas que eu sabia que daria errado, mas para saturar tudo que eu podia, eu tentei de tudo para ver se dava a sorte de acertar no que eu achava que era errado rs.
Educadamente, solicito o apoio dos "universitários" neste caso, pois tenho um trabalho importantíssimo para finalizar e não consigo. Estressei tudo que eu pude imaginar antes de vir gerar um questionamento. Olhei também alguns posts aqui no fórum, mas nenhum conseguiu fazer essas 3 correntes serem medidas.
Obrigado!