Página 1 de 1
Ajuda na conversão do A/D

Enviado:
21 Fev 2008 14:06
por Leomatias
Olá pessoal, boa tarde. Meu nome é Leonardo, este é o meu primeiro acesso. Naveguei por alguns tópicos, inclusive este que vou comentar.
Estou trabalhando com o MikroBasic e usando um pic18f1320. Quero ler o canal do A/D, converter em volts e escrever no LCD. Estou com dificuldades apenas nesta conversão. Alguém, poderia me auxiliar nesta dúvida por favor? Como faco para converter, se não me engano, o A/D deste modelo de pic é de 10 bits... como faco para converter em volts???
Desde já, agradeco a todos pela atencão e fantástico esse blog com tanta informacão, e tanta gente capacitada e horas em bancadas.
Conversão

Enviado:
21 Fev 2008 14:37
por avenito
Olá Leo,
bem, o que vc tem que fazer é uma "regra de três".
1. Se vc tem um A/D de 10 bits, o resultado máximo obtido na conversão será 2 ^ 10 = 1024.
2. Se a tensão máxima que estará presente no pino de entrada do A/D é 5V, 1024 = 5V.
3. Dividindo 5V (tensão máxima medida) por 1024 (valor máximo convertido) você terá aproximadamente 4,9mV (quatro vírgula nove milivolts).
4. Conclusão, basta multiplicar o valor convertido por 4,9mV que vc terá o correspondente em volts que está presente no pino do conversor. Exemplo, se a sua conversão teve como resultado 512, o valor em volts é 512 x 0,0049 = 2,5V.
Obs.: Se você tiver um divisor de tensão, o resultado deve ser multiplicado pelo fator de redução. Por exemplo, se vc quer medir 15V, o seu divisor deverá proporcionar 5V na saída quando a entrada for 15V (15V/5V = 3), aí você multiplica o resultado por 3 também.
Espero ter ajudado!

Enviado:
21 Fev 2008 15:03
por Sergio38br
um exemplo para vc baseado na versão 5.002
na versão 6 tem que colocar um include para as funções de string
dim v_ad_lcd as string[5]
dim v_ad as word
v_ad = Adc_Read(num_do_canal_AD)
v_ad = ((v_ad * 5000)/1024)
WordToStr(v_ad,v_adc_lcd) 'converte word para string com espaços iniciais
Lcd8_Out(1, 1,v_adc_lcd) ' para o caso do lcd em 8 bits
sergio

Enviado:
21 Fev 2008 15:36
por avenito
Re: Ajuda na conversão do A/D

Enviado:
22 Fev 2008 14:02
por Leomatias
Olá pessoal, boa tarde para vcs. Desde já obrigado pelas mensagens e tira-dúvidas.
Implementei vários exemplos do AD ontem. A variacão em bits ocorre perfeitamente. Quando converto para volts não fica legal, mostra números estranhos. Consegui um resultado bom convertendo e mostrando o valor da tensão no LCd com variacão de 1 em 1 volt, de 0 a 5 volts.
Mas, após um tempo ligado, o LCD comeca a oscilar números e caracteres estranhos no visor, piscando sem parar.
O que pode ser? Meu pic 18f1320 que está com problemas? Ligacão de pornt-o-board que geralmente são problemáticas para microcontroladores? Fios, mal contatos? Fonte, aquecimento?
Por favor,se alguém já se deparou com tais problemas me mostrem "uma luz no fim do túnel", desde já obrigado e irei continuar tentando.
Re: Ajuda na conversão do A/D

Enviado:
25 Fev 2008 11:32
por leocsbh007
Leomatias escreveu:Olá pessoal, boa tarde para vcs. Desde já obrigado pelas mensagens e tira-dúvidas.
Implementei vários exemplos do AD ontem. A variacão em bits ocorre perfeitamente. Quando converto para volts não fica legal, mostra números estranhos. Consegui um resultado bom convertendo e mostrando o valor da tensão no LCd com variacão de 1 em 1 volt, de 0 a 5 volts.
Mas, após um tempo ligado, o LCD comeca a oscilar números e caracteres estranhos no visor, piscando sem parar.
O que pode ser? Meu pic 18f1320 que está com problemas? Ligacão de pornt-o-board que geralmente são problemáticas para microcontroladores? Fios, mal contatos? Fonte, aquecimento?
Por favor,se alguém já se deparou com tais problemas me mostrem "uma luz no fim do túnel", desde já obrigado e irei continuar tentando.
Fala Chara, que tipo de sinal analogico vc esta usando? Ele varia muito? Tenta utilizar um filtro digital para as leituras do AD (Medias), ou então mostrar no display com intervalos de tempo tipo de 500ms em 500ms e dependendo do tipo de sinal lido esta leitura será bem real. Acho que isto resolve seu problema.
att
LeoCS