Pessoal, bom dia.

Estou aprendendo a usar PIC, principalmente usar o conversor A/D dele.

Já entendi o processo e estou brincando um pouco com isso. Porém estou com uma dúvida. Eu queria ligar uma célula de carga no PIC, para fazer a leitura de pesos. Só que ai que surge minha dúvida. Em todos os exemplos que eu vi sobre o uso do A/D, sempre os sensores são ligados no terra do circuito.

Porém, a tensão da célula de carga é feita por dois fios de saída, que não são ligados no terra do circuito.

Então como ligar essa célula para o circuito ler as informções?

Grato

Exibições: 5265

Responder esta

Respostas a este tópico

que tipo de variação vc terá com seu sensor? Variacao de resistencia?
Poste o circuito para entendermos melhor

Depende bastante do modelo de célula que você tem, mas em geral elas são um arranjo em ponte de whetstone, por isso nenhum dos dois fios vai no terra. Pra fazer a leitura é necessário converter o sinal diferêncial em um sinal absoluto com referência no terra. O modo mais simples é usar um AmpOp pra isso

http://en.wikipedia.org/wiki/Operational_amplifier_applications#Dif...

 

O valor das resistências dependem da sensibilidade da sua célula.

Obrigado a todos por responder.

Eu não tive tempo de desenhar o esquema para colocar aqui. Acho que o Rodrigo deu uma luz aqui. Vou tentar e depois falo pra vocês.

Depois, reoslvendo ou não, eu coloco o esquema.

Abraços a todos.

como eu calculo o valor das resistências????

Tudo vai depender do datasheet da célula de carga,pois no circuito postado pelo Rodrigo, Rf e Rg determinam o ganho do Operacional. Então se por exemplo no datasheet da célula de carga, sua tensão mínima de saída for 0,01V e sua tensão máxima de saída for 0,05V pode-se calcular para o operacional um ganho de 100 vezes, e neste caso teremos na saída do operacional: 1V, para a tensão de saída mínima da célula (0,01v) e 5V para a tensão de saída máxima da célula (0,05V).

O cálculo de ganho é: -Rf / Rg  Assim se usarmos Rf de 1M e Rg de 10K, teremos ganho 100.

R1 e R2 servem para limitar a corrente de entrada no operacional, pode-se experimentar valores entre 1K a 10K, ou até menos (acredito eu).

O ideal seria usar amplificador de instrumentação, ajuda bastante na rejeição de ruídos de modo comum  Também use ampop da familia tl ou superior, esqueça a família lm nessa aplicação.

http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Op-Amp_Ins...

A solução é um "amplificador de instrumentação", que é uma montagem com 3 amp.ops.

Existem integrados dedicados como o AD620.

http://www.google.com.br/search?q=amplificador+de+instrumentação&tbm=isch

Os resistores são em função do ganho. Vc precisa primeiro saber quanto de ganho precisa... Pra isso, caso não tenha o datasheet da celula, o jeito é medir com um multimetro a tensão dela sem nada e depois com o maximo de peso (ou 1/2, 1/4, basta um outro ponto qualquer da curva). Aih vc faz um conta em que ela quando estiver no máximo de peso dá quase o limite de tensão do seu AD (referencia).

Com esse ganho vc calcula os resistores com as formulas do databook do ampop. Normalmente sai tudo um em função do outro pq não importa tanto o valor do resistor e sim a relação entre eles. Se cair nessa chute 10K pra um deles que sai o outro.

encontrei uma alternativa muito interessante....

Irei testar e assim que tiver algum resultado posto aqui....

Essa alternativa funcionou muito bem...

Meu unico problema é a oscilação dos valores...

 

Estou usando o seguinte codigo:

#include <LiquidCrystal.h>

LiquidCrystal lcd(8,9,4,5,6,7);

void setup() {
 
 lcd.begin(16,2);
 
 lcd.setCursor(0,0);
 lcd.print(" iniciando");
  Serial.begin(9600);
  delay(1000);
}

void loop() {
 
  //float samplek = analogRead(1);
  int samplek =  map(analogRead(1), 259, 505, 0, 500);                     //Esta funcao pega nos valores aramzenados
                                                                             //na var diferença e faz uma adaptaçao de
                                                                             //escala ou seja casa o valor 100.94 com 0ºC e o
                                                                             //seu máximo 175.84com 200ºC,
   
   
lcd.setCursor(0,1);
     lcd.print(mediamovelk(samplek),0);
     lcd.setCursor(4,1);
     lcd.print(" g");
    Serial.print(mediamovelk(samplek));
         Serial.print(" g");
     Serial.println("..................");
    
     delay (500);
     
}

float mediamovelk(float xis){
 
 static float media = 0.0;
static int indice = 1;

if(indice ==0 || indice == 50){
 
  indice = 1;
  media = 0 ;
}

media = media + (xis - media) / indice++;
 
}


Se alguem pudece me dar uma ajuda para estabilizar esses valores, eu ficaria muito grato

fabiano, resolveu ?  cheguei a uma aproximação boa usando um codigo pra calibrar

Mas é pra PIC ou pra Arduino?

Estamos medindo ºC (graus) ou Gramas????!!!

Cãofundiu aqui...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço