Ir ao conteúdo

Posts recomendados

Postado

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;}

 

  • Membro VIP
Postado

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
Postado
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 

  • Membro VIP
Postado

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
Postado
Em 14/10/2018 às 09:00, Isadora Ferraz disse:

faça uma ou + leitura nula

 

Em 14/10/2018 às 09:00, Isadora Ferraz disse:

Pra estabilizar o hw do mc

Não sabia dessa, vou tentar e ver no que dar. Mas muito obrigado por esta me ajudando 

  • Curtir 1
Postado

@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

  • Membro VIP
Postado
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

Postado

@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

Postado

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
Postado

@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

Postado
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 

Postado

@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
Postado
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

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!