variação do AD

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

variação do AD

Mensagempor dyemerson » 24 Nov 2009 10:08

Boa tarde a todos !!!!

fiz um circuito com um ad 0804 para medir a corrente via shunt e mostrar no LCD, o problema é que o valor esta variando muito , gostaria de fazer um filtro digital na linguagem c, que é a que eu programo o 8051.


Aguardo resposta!!!
dyemerson
Bit
 
Mensagens: 38
Registrado em: 13 Nov 2006 22:25

Mensagempor Jozias del Rios » 24 Nov 2009 20:13

que tal simplesmente um filtro suavizador IIR:

Código: Selecionar todos

(...)

int f = get_sample(4);

// aqui vc usa o seu valor já filtrado

(...)

int get_sample(unsigned char SmoothLevel)
{
    static int previous = 0;
   
    previous = ( (previous << SmoothLevel) - previous + read_value_from_AD() ) >> SmoothLevel;

    return previous;
}



perceba que cada valor que vc obtem é passado por uma media ponderada com os anteriores.

brinque com o valor SmoothLevel para dar o "amortecimento" que desejar.

Cuidado com a possível perda de bits na operação shift left. Certifique-se que sizeof(int) == 4
Os vencedores são aqueles que sabem o que fazer se perderem.
Os perdedores são aqueles que não sabem o que fazer se ganharem.
Avatar do usuário
Jozias del Rios
Byte
 
Mensagens: 279
Registrado em: 31 Out 2009 03:36
Localização: SJCampos-SP

Mensagempor dyemerson » 03 Dez 2009 19:47

legal deu certo
muito obrigado!!!!!
dyemerson
Bit
 
Mensagens: 38
Registrado em: 13 Nov 2006 22:25


Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x