Programa de Conversão A/D

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Programa de Conversão A/D

Mensagempor Leomatias » 22 Fev 2008 08:49

Bom dia a todos!!!
Implementei um programa que converte a leitura do canal AD do pic18f1320, utilizando o Mikro Basic. O Código segue abaixo:

program Conversor_AD

dim v_ad_lcd as string[5]
dim v_ad as word

main:
trisb=0
trisa=%11111111
adcon1=%011111110
lcd_init(portb)
lcd_config(portb,3,2,1,0,portb,6,5,4)
lcd_cmd(lcd_cursor_off)
loop:lcd_out(1,1," Valor do AD")


v_ad = Adc_Read(0)
v_ad = ((v_ad * 49)/10000)
WordToStr(v_ad,v_ad_lcd)
strcat(v_ad_lcd," Volts")
Lcd_Out(2,1, v_ad_lcd)
delay_us(1000)
goto loop
end.


-> Mas, a leitura no LCd é de 1 em 1 volts, de 0 a 5 volts. Gostaria de saber se seria possível implementar um software que mostrasse passo a passo os volts. Consegui fazer vizualizar passo a passo os valores em bits, mas tentei outras fórmulas e não tive êxito quanto a mostrar o valor gradativo em volts, a cada cariacão de 4,9 mV que corresponde a cada bit.
-> Percebi tbm que após um tempo ligado, o display fica instável piscando e mostrando outros caracteres estranhos... será que pode ser minhas conexões ou o trimpot que estou usando. Montei tudo numa board, seria este tbm um alvo de mal contatos.


Pessoal, desde já agradeco a atencão de vcs. Olhem para mim o meu código, vejam se existem erros e corrijam-me se possível. Se alguém tiver alguma suspeita do que pode ser esta instabilidade no LCD, por favor me avisem, pode ser software tbm.
Leomatias
Bit
 
Mensagens: 35
Registrado em: 20 Fev 2008 09:20

Mensagempor fabim » 22 Fev 2008 09:14

bom no pascal fica assim.

A : word;
B : real;
c : string[5];

begin

while true do
begin
A := adc_read(X);
B := A*(5000.00 / 1023);
A := B;
wordToStr(a,c);
lcd_out(1,1,c);
end;
end;
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Sergio38br » 22 Fev 2008 11:46

Na leitura vc pode ter variação de +/- 1 bit então o ultimos numeros podem variar, mesmo não mexendo no trimpot
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Re: Programa de Conversão A/D

Mensagempor Leomatias » 22 Fev 2008 14:00

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 mostreum "uma luz no fim do túnel", desde já obrigado e irei continuar tentanto.
Leomatias
Bit
 
Mensagens: 35
Registrado em: 20 Fev 2008 09:20

Mensagempor fabim » 22 Fev 2008 14:07

testinho
coloque uma var pra old_value.

Só entre na rotina de conversão e escrita, se o novo valor for diferente do old_value..

Comigo resolveu

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Leomatias » 22 Fev 2008 17:41

Desculpe Fabim, não entendi muito o seu raciocínio.
Leomatias
Bit
 
Mensagens: 35
Registrado em: 20 Fev 2008 09:20

Mensagempor fabim » 22 Fev 2008 17:45

old_value := 0;

begin

while true do
begin
new_value := adc_read;

If (new_value <> old value) then
begin
old_value := new_value
...
...
...
...
end;

end;

assim voce não fica mandando dados feito louco para o display, só manda se realmente o valor lido for diferente do que esta escrito nele.

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor lopesjm » 22 Fev 2008 18:51

Olá Leomatias,

Isso está parecendo ruído no seu +5V !.

Coloque um capacitor de uns 10 microfaraday entre o +5 e o GND, perto do pic.

sds
Jorge
lopesjm
Byte
 
Mensagens: 133
Registrado em: 26 Out 2006 12:40


Voltar para PIC

Quem está online

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

x