Moderadores: andre_luis, 51, guest2003, Renie
leoabubauru escreveu:RAguiar
Segue link interessante sobre FP. Ele abrange, inclusive, a distorção harmônica, muito relevante num estudo como este. Digo isto pois, em alguns casos, banco de capacitores que foram projetados para corrigir o fator de potência explodem por não levarem em conta a distorção harmônica.
Bom divertimento
Laercio Barbosa
fabim escreveu:putz, tai o primeiro erro, PIC, o segundo e pior que o primeiro CCS!!!
O lellis deve estar vomitando agora!!!!
RAguiar escreveu:Bom dia pessoal, aqui estou eu novamente...estou fazendo uns projetos elétricos e raramente me sobra tempo pra brincar com o PIC...desde meu ultimo post, mexi 3 finais de semana com o PIC...
Pois bem, tentei fazer aquele esquema de usar janelas para "pegar" o zero tensão/corrente...só que o que acontece, pego o zero tensão, entra na proxima rotina, pego o zero corrente e por meio de tempo pré definido sei o FP (defasagem) armazeno na variavel b e uso pra alguma coisa futura, porém acontece que o tempo é muito curto entre semiciclos zero, 0,00833 segundos, e aí não consigo chegar à um ajuste...
...estou fazendo assim: (CCS C)
if input (pin_a0) // Quando chegar o zero tensão entra na função seguinte:
{
if input (pin_a1) b = 100 //Se zero corrente for no mesmo instante que zero tensão então FP=100
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b = 99 //Se zero corrente for 8333 microsegundos atraso em relação à zero tensão então FP = 99
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b= 98 // Se zero corrente for 16666 microsegundos atraso em relação à zero tensão então FP = 98
...
}
...e assim sucessivamente...e aí? vcs acham que estou indo pelo caminho certo?To queimando mufla aqui, e não consegui nada ainda.O Display mostra sempre FP=1 pois é a ultima linha do bloco...acho que estou errando no debounce...
Aquino escreveu:RAguiar escreveu:Bom dia pessoal, aqui estou eu novamente...estou fazendo uns projetos elétricos e raramente me sobra tempo pra brincar com o PIC...desde meu ultimo post, mexi 3 finais de semana com o PIC...
Pois bem, tentei fazer aquele esquema de usar janelas para "pegar" o zero tensão/corrente...só que o que acontece, pego o zero tensão, entra na proxima rotina, pego o zero corrente e por meio de tempo pré definido sei o FP (defasagem) armazeno na variavel b e uso pra alguma coisa futura, porém acontece que o tempo é muito curto entre semiciclos zero, 0,00833 segundos, e aí não consigo chegar à um ajuste...
...estou fazendo assim: (CCS C)
if input (pin_a0) // Quando chegar o zero tensão entra na função seguinte:
{
if input (pin_a1) b = 100 //Se zero corrente for no mesmo instante que zero tensão então FP=100
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b = 99 //Se zero corrente for 8333 microsegundos atraso em relação à zero tensão então FP = 99
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b= 98 // Se zero corrente for 16666 microsegundos atraso em relação à zero tensão então FP = 98
...
}
...e assim sucessivamente...e aí? vcs acham que estou indo pelo caminho certo?To queimando mufla aqui, e não consegui nada ainda.O Display mostra sempre FP=1 pois é a ultima linha do bloco...acho que estou errando no debounce...
Com esse tipo de abordagem, na minha opinião, tu não chegará a nenhum resultado que seja aplicável a um produto comercial.
RAguiar escreveu:Aquino escreveu:RAguiar escreveu:Bom dia pessoal, aqui estou eu novamente...estou fazendo uns projetos elétricos e raramente me sobra tempo pra brincar com o PIC...desde meu ultimo post, mexi 3 finais de semana com o PIC...
Pois bem, tentei fazer aquele esquema de usar janelas para "pegar" o zero tensão/corrente...só que o que acontece, pego o zero tensão, entra na proxima rotina, pego o zero corrente e por meio de tempo pré definido sei o FP (defasagem) armazeno na variavel b e uso pra alguma coisa futura, porém acontece que o tempo é muito curto entre semiciclos zero, 0,00833 segundos, e aí não consigo chegar à um ajuste...
...estou fazendo assim: (CCS C)
if input (pin_a0) // Quando chegar o zero tensão entra na função seguinte:
{
if input (pin_a1) b = 100 //Se zero corrente for no mesmo instante que zero tensão então FP=100
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b = 99 //Se zero corrente for 8333 microsegundos atraso em relação à zero tensão então FP = 99
delay_us (8333); //atraso de 8333 microsegundos
if input (pin_a1) b= 98 // Se zero corrente for 16666 microsegundos atraso em relação à zero tensão então FP = 98
...
}
...e assim sucessivamente...e aí? vcs acham que estou indo pelo caminho certo?To queimando mufla aqui, e não consegui nada ainda.O Display mostra sempre FP=1 pois é a ultima linha do bloco...acho que estou errando no debounce...
Com esse tipo de abordagem, na minha opinião, tu não chegará a nenhum resultado que seja aplicável a um produto comercial.
...olha, vou ser sincero contigo, se eu ouvisse pessoas pessimistas como vc eu não seria o que sou hoje, dê sua sugestão (dicas, etc), críticas e pessimismo não são bem vindos...se for questão de concorrência, já existem muitos produtos do estilo no mercado (Tenho Alicate Wattimetro e Analisador de Energia, ou seja nem preciso criar algo que meça FP)...produtos baratos, sendo que investir num projeto do zero é muitas veses investimento de anos e retorno super baixo (garanto à vc que ganho mais dinheiro fazendo um projeto de Pára-Raios do que tentar inventar um produto eletrônico), mais facil comprar um pronto, para pessoas como vc, digo que isso é apenas procurar conhecimento,claro que um dia posso estar vendendo este produto afinal quem é esperto e inteligente vende o seu peixe...enfim, espero idéias e não pessimismo, se vc tiver alguma idéia melhor que a minha, mostre-a aqui, afinal o forum é pra isso (ou não? é para se mostrar?). Não estou pedindo um projeto eletronico pronto, estou apenas querendo trocar idéias, se é que me entende?
Um dia que vc precisar de alguma dica relacionada à Engenharia Elétrica, poderei lhe explicar numa boa, ou então quem sabe dizer à vc que vc não tem capacidade para ligar com isso, ou seja pagamos o troco à mesma altura.
if(input(pin_a0)) {
for(c = 100 ; c > 0 ; c--) {
if(input(pin_a1)) b = c;
delay_us(83);
}
//Escreve no lcd
}
Andre_Cruz escreveu:RAguiar,
Você pode trocar todos os ifs aninhados por um laço, por exemplo um for.
Algo tipo:
- Código: Selecionar todos
if(input(pin_a0)) {
for(c = 100 ; c > 0 ; c--) {
if(input(pin_a1)) b = c;
delay_us(83);
}
//Escreve no lcd
}
Para melhorar mais um pouco você pode colocar um comando "break" no if dentro do for, quando ele se tornar verdadeiro, força a saída do for e já atualiza o lcd ou segue sua lógica, assim você não fica testando a cada 83uS depois que o if dentro do for se tornou verdadeiro.
Abraço
Boa sorte com o projeto
André Cruz
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante