Ir ao conteúdo
  • Cadastre-se

PIC Estou com Problemas na conversão ADC do Pic


Posts recomendados

Boa a tarde a todos. Estou com problemas nas minhas portas ADC's,  um leitura esta influenciando nas outras, estou usando 3 saídas ADC (PIC18F4550). Uma pra medir tensão, e as outras duas temperatura de diferentes coisas. Mas toda vez que uma delas é modificada, as outras também são influenciadas. Queria saber como corrigir esse erro. Alguém sabe me dizer?

 

Estou usando o pino de referencia GND do Pic

 

 //========  tensão  ===========//
       Media = 0;
       for(y=0;y<=38;y++){
       delay_us(100);
       Media = Media + adc_get_sample(0);}
       q1 = (media/38);
       p1 =(q1*5)/1023.0;
       q2 = p1*4.0;
       FloatToStr_FixLen(q2,txtV,5);

       if(q2<10&&Lim){lm = 0x01; Lim = 0x00;}
       if(q2>10)Lim = 0x01;
       //===============================


        //   Leitura do Ferro de Solda
        leds = adc_get_sample(3);
        leds = leds/1.33;
        leds = leds+27;
        ferr0_ = leds ;
        IntToStr (leds,leds_string);


        //TEMPERATURA DO DISSIPADOR
        tmp1 = adc_get_sample(1);
        tmp1 = tmp1*500;
        tmp1 = tmp1/1023;
        tempC= tmp1;
        IntToStr(tmp1,txtTe);
        //PWM cooler
        if(tempC >30 && tempC <35)cooler = 50;
        else if(tempC >35 && tempC <40)cooler = 150;
        else if(tempC >40){cooler = 200; Per = 0x01; LED = 0x01;}
        else if(tempC <30){cooler = 0;  
                                    if(Per)lm  = 0x01;
                                           Per = 0x00;
                                           LED = 0x00;}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Amigo eis  a causa: o layout ou distribuição correta dos gnd's. Percebo que mencionaste...

3 horas atrás, Luan Borges disse:

Estou usando o pino de referencia GND do Pic

e isso é totalmente bom pois é teu caminho ... ou parafraseando: o caminho que as correntes de gnd forçam uma pequena soma de tensão na referência. Difícil de explicar mas nem tanto de entender: que esta corrente não "passe" pelo pino gnd do mc mas sim se encontrem num ponto neutro. Algo como as pernas da aranha sendo o corpo o [-] de um capacitor e...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

5 horas atrás, Isadora Ferraz disse:

Amigo eis  a causa: o layout ou distribuição correta dos gnd's. Percebo que mencionaste...

e isso é totalmente bom pois é teu caminho ... ou parafraseando: o caminho que as correntes de gnd forçam uma pequena soma de tensão na referência. Difícil de explicar mas nem tanto de entender: que esta corrente não "passe" pelo pino gnd do mc mas sim se encontrem num ponto neutro. Algo como as pernas da aranha sendo o corpo o [-] de um capacitor e...

Presto bem atenção na hora de fazer as placas, e pra cada coisa sai uma trilha de GND e VDD, vindo de um capacitor "central" de onde sai todas, e antes do capacitor, está a alimentação principal. Não sei se pode ser isso 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

que bom. Então la vai mais:

- você deve usar outro vcc pro circuito analógico. Algo como AVcc Agnd . Que seja bem estável e bem filtrado

-dê um tempo maior entre uma leitura e outra

-faça uma ou + leitura nula
 

leds = adc_get_sample(3);
leds = adc_get_sample(3);
leds = adc_get_sample(3);

Pra estabilizar o hw do mc

 

E desculpa, quase ia esquencendo... de nada...

boa sorte.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Luan Borges ,

 

Em uma das entradas, você calcula a média de 38 leituras. Nas outras duas, não...

 

Sugiro que faça também uma média, de pelo menos 8 leituras nessas outras entradas, deve ajudar a estabilizar.

 

Eu faria um pouco diferente, usaria uma interrupção e a cada vez faria a leitura de uma das entradas a cada vez, e na saida já mudaria o seletor de entradas do Adc para a próxima entrada ( ajuda bastante a estabilizar a leitura ) , e iria totalizando, até ter 8 leituras de cada uma das entradas, e nesse momento calcularia a média.

 

Para melhorar ainda mais, usaria a interrupção a uma frequência de 3 * 8 * 60 hertz (1440 hertz), para ajudar a cancelar erros de leitura devidos à indução da frequência da rede de 60 Hz. Quando todas as leituras forem efetuadas, calcularia a média com 3 simples shifts, e um flag sinalizaria ao programa principal que existem dados válidos para serem feitos todos os calculos e medidas necessárias.

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
5 horas atrás, aphawk disse:

média de 38 leituras

Paulão que tal 32? É que pro mc trabalhar com base 2 é o mesmo que pra nós é trabalhar com base 10. Multiplicar e dividir por dez pra nós é moleza né?

E p.ex. prum mc multiplicar por 8: ele só faz um ROL 3x

 

...

5 horas atrás, aphawk disse:

8 leituras

aí sim hein!

 

Existem 10 tipos de pessoa: a que entende binário e a que não. kk

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz ,

 

O programa apresentado que mostrou 38 leituras, eu também queria saber de onde que saiu esse numero cabalístico heheh

 

Claro que prá quem usou Assembler sempre usamos multiplos de 2 para facilitar as contas ! E mesmo em outras linguagens, tentamoa otimizar a velocidade do código.

 

Paulo

Link para o comentário
Compartilhar em outros sites

Olá a todos. Tudo bem Paulo? Então, nos códigos que você vem me ajudando no fórum nessas últimas semanas, envolvendo temperatura  e tensão e até o MAX lá, era tudo voltado pra esse projeto, Hoje pela madrugada "finalizei".Tem alguns peguemos bug's, mas nada de tão alarmante para não usá-lo logo, com o tempo vou vendo o que está errado e indo corrigindo. Mas é isso ai, segue o link do vídeo para ver como ficou. E mais uma vez, Obrigado por sua atenção e a de todos. E Isadora, Eu resolvi usar o LM317 mesmo para fazer a regulagem da tensão, tive muitos problema de estabilidade com o PWM do PIC(Não sei se você se lembra, mas em outro tópico nós  havia conversado sobre isso).

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Luan Borges ,

 

Opa, legal que já conseguiu bons resultados no seu projeto !

 

Quanto ao PWM, voce poderia usar o famoso conversor D/A usando um divisor resistivo e um capacitor, e a seguir usar um amplificador operacional de ganho unitário, e essa saida iria controlar o LM317. Não é complicado, e pode ser feito a posteriori.

 

Não é que o PWM é instavel, o que complica é o uso correto do PID para ajustar a tensão de saída. Se forçar muito no Derivativo, a resposta fica muito rápida, e fica bem difícil estabilizar a tensão de saída. Se forçar pouco, a tensão de saída pode subir a ponto de danificar o circuito alimentado por ela, antes que haja a correção e estabilização ds saída.

 

Bem-vindo ao mundo real !

 

Paulo

Link para o comentário
Compartilhar em outros sites

7 horas atrás, aphawk disse:

@Luan Borges ,

 

Opa, legal que já conseguiu bons resultados no seu projeto !

 

Quanto ao PWM, voce poderia usar o famoso conversor D/A usando um divisor resistivo e um capacitor, e a seguir usar um amplificador operacional de ganho unitário, e essa saida iria controlar o LM317. Não é complicado, e pode ser feito a posteriori.

 

Não é que o PWM é instavel, o que complica é o uso correto do PID para ajustar a tensão de saída. Se forçar muito no Derivativo, a resposta fica muito rápida, e fica bem difícil estabilizar a tensão de saída. Se forçar pouco, a tensão de saída pode subir a ponto de danificar o circuito alimentado por ela, antes que haja a correção e estabilização ds saída.

 

Bem-vindo ao mundo real !

 

Paulo

É, eu vi muitos circuitos assim. Mas ja tinha gastado muuuito mesmo comprando varias peças  pra vários projetos, mais de 300 reais, e sem falar  q as lojas que vende isso  fica  muito longe da minha casa, e ter que ir lá  com a gasolina a 5 reais pra compra  um único  componente, ia ser inviável, e já  não  dava mais pra enrolar esse projeto. Só  arruma umas coisas no código  3 pronto. Mas falando nisso, o próximo  é  o som, e ja logo adianto  q vou precisar  de ajudar kkkk. Ah,  e aquele  lá  que te mandei foto da proto board ta ficando  lindo,  coloquei um WTV020  pra ter viz no sistema e até  o final do ano que vem acho q termino ele kkk. Mas é  isso. Muito obrigado pela paciência. Comecei a programa  a 6 meses, sabia de nada mesmo sobre programação, aprendi tudo em  artigos, só  sabia a boa e velha eletrônica  analógica, mas to me apaixonando cada dia mais  por a digital. Mas enfim, não  vem ao caso, você esta me ajudando muito ja q não  tenho como paga  uma faculdade, esses são  os meio q tenho de aprender. Enfim de novo kkk. Muito orbigado 

Link para o comentário
Compartilhar em outros sites

@Luan Borges ,

 

Opa, fico muito contente em ver tudo isso que você está falando !

Hoje em dia tem muita informação na Internet, basta aprender um pouco de inglês técnico, e tem um mundo inteiro de conhecimento a poucos clicks de seu muse !

 

Se você gosta de áudio, vou colocar alguns links do meu tópico destacado, eu costumo explicar bastante os fundamentos e coloco o código, tudo bem que é um código meio "spaguetti" mas funciona kkkkk

 

E sobre hardware de microcontroladores tem muita coisa espalhada ao longo dos mais de 5 anos de postagens.

 

Boa diversão !

 

 

 

Já tem bastante coisa para se divertir kkkk

 

Paulo

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

13 horas atrás, aphawk disse:

@Luan Borges ,

 

Opa, fico muito contente em ver tudo isso que você está falando !

Hoje em dia tem muita informação na Internet, basta aprender um pouco de inglês técnico, e tem um mundo inteiro de conhecimento a poucos clicks de seu muse !

 

Se você gosta de áudio, vou colocar alguns links do meu tópico destacado, eu costumo explicar bastante os fundamentos e coloco o código, tudo bem que é um código meio "spaguetti" mas funciona kkkkk

 

E sobre hardware de microcontroladores tem muita coisa espalhada ao longo dos mais de 5 anos de postagens.

 

Boa diversão !

 

 

 

Já tem bastante coisa para se divertir kkkk

 

Paulo

 

Muito bom, dei uma olhada rápida, mas ja vi que vou  gosta kkkk. Assim  que  termina de montar umas placas aqui e tiver com tempo, vou ler os que mais  se encaixa no meu projeto. E mais uma vez,  obrigadooo

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...