Página 1 de 1
duvida ADC 12F675 "8 BITS".

Enviado:
09 Mar 2007 12:31
por fabim
para eu trabalhar com 8 bits de resolução.
devo justificar
ADCON0 bit 7 (ADFM) como 1.
E pegar o valor de ADRESL.
ou o contrario ?
Abraços fabim.
Eu estou achando muito estranho..
Fiz um controlador AC por passagem de zero...
calculei uma rotininha basica cujo o potenciomentro a 100%=5V
igual a 255 daria um tempo de 4,2mS.
Mais aí esta um problema fod´s.
Percebi que a cada em 4 pontos diferentes do potenciometro ele zera e começa a aumentar novamente... como se fosse por exemplo.
de 0 a 1,25V = a 0 a 4,2mS
de 1,25V a 2,5V = a 0 a 4,2mS
de 2,5V a 3,75v = a 0 a 4,2mS
de 3,75V a 5V = a 0 a 4,2mS..
Alguem teria uma sujestão pra me passar ?
Fabim

Enviado:
09 Mar 2007 14:07
por renatokodaira
Voce tem que justificar para a esquerda e pegar o valor de ADRESH. Assim ficam os 8 bits mais significativos (que voce vai usar) no ADRESH e os 2 menos significativos no ADRESL. Nunca vai poder usar os bits do ADRESL se quiser conversao em 8 bits (pois justificado pela esquerda voce só tem os dois bits menos significativos e justificado pela direita tem só os 8 bits menos significativos - perdendo os 2 mais significativos).
Pela esquerda:
ADRESH__ADRESL
11111111_11xxxxxx
Pela direita:
ADRESH__ADRESL
xxxxxx11_11111111

Enviado:
09 Mar 2007 15:50
por fabim
nossa que coisa estranha.. "programo pascal"..
I : word.
Begin.
I := ADC_READ(3); ( i = resultado de 10 bits do ADC)
While ( i >= 1) do
begin
DEC(i);
End;
Ta acontecendo a mesma coisa doida
de 0 a 1,25V = a 0 a 8,2mS
de 1,25V a 2,5V = a 0 a 8,2mS
de 2,5V a 3,75v = a 0 a 8,2mS
de 3,75V a 5V = a 0 a 8,2mS..

Enviado:
09 Mar 2007 16:04
por Julio Cezar
bom n entendi o que esse loop faz e se I é uma word não é necessário converter para 8 bits certo?

Enviado:
09 Mar 2007 16:27
por fabim
ESSE LOOP
pega o valor passado em I que vai de 0 a 1023 e vai decrementando até 0, quando chega a zero ela sai do loop..
Mais o mais louco de tudo é isso..
A cada 1,25V ele retorna de zero novamente..
tipo, vou variando a tensão de 0 a 1,24V ta dando 7,66mS. Quando eu chego a 1,25V ele retorna zero, conforme vou aumentando 1,28 1,29 1,30 ele vai aumentando o tempo tambem até chegar em 2,5V.. passou de 2,5V ele zera novamente...
Pelo conhecimento de todos..
0V = 0.
5V = 1023.
So que esta acontecendo conforme indicado acima.
Abraços
Fabim

Enviado:
09 Mar 2007 16:38
por Julio Cezar
vc tentou colocar o ADCON0 bit 7 (ADFM) como 0? para justificar pela esquerda?

Enviado:
09 Mar 2007 18:24
por eletroinf
fabim
segundo o que entendi -e o sintoma do problema parece estar deixando claro-, a função ADC_READ(3) está retornando somente os 8 bits LSBs da conversão AD.

Enviado:
12 Mar 2007 10:59
por fabim
nossa ta uma caca isso viu..
Sai do 12F675 e peguei o 16F873, a função funcionou corretamente.
E a leitura do LSB 8 bits. Vc esta correto.
Pois o MSB vai de zero a 4.. pra cada estouro de LSB ele incrementa o MSB.
Putz que anarquia.. bom vou ter que brigar feio..
Abraços fabim.

Enviado:
12 Mar 2007 14:25
por fabim
pessoal dando uma espiculada na net eu fiquei meio confuso.
O dimmer que eu estou fazendo.
Passou de zero eu disparo entre 0 e 8mS..
Mais observando alguns esquemas.
Eu vi que os caras disparam o triac depois do máximo nível que seria o VP, com aproximadamente 4,150mS.
alguem sabe me dizer se isto confere.??
Abraços
Fabim

Enviado:
12 Mar 2007 20:19
por microeletronica
eh mesmo?

Enviado:
13 Mar 2007 08:21
por fabim
pode ser que seja.. rss.
Resumindo.
Os projetos que eu vi.. os camaradas não disparam na borda de subida da senoide.
Eles disparam na borda de descida, no caso 4,150mS=220Vp.
Eles contam como 4,150mS=100% 6mS=50% .......
Queria saber se isso confere.
Abraços
Fabim

Enviado:
24 Mar 2007 21:10
por Mersin
Fabim,
Uma vez aconteceu de minha "regra de 3" resultar em trechos como você descreveu acima, pu seja, parecia que recomeçava a contagem umas 4 vezes até o fim de curso do Potenciômetro.
Resolvi o problema colocando uma mudança de tipo forçada antes do cálculo, ou seja, (int32) antes do x/y. Veja o exemplo do conversor AD no fim do livro do Fábio. "Programação C - PIC".
Valeu!

Enviado:
26 Mar 2007 09:21
por fabim
tics tics tics.
procedure disp(var imput : byte);
eu estava entrando com word, a procedure so ira pegar o menos significativo..rsrs
agora
Procedure disp(var imput : word).
Prontim funcionou..rsrs
Brigado a todos
Fabim