Estou testando uma celula de carga com arduino para um projeto futuro, por enquanto testei apenas a tensão lida no pino analogico, mas ele não está variando. A carga que estou testando varia até 10 kg. O que pode ser?

Estou usando o seguinte codigo: 

void setup() {

Serial.begin(9600);
}

void loop() {

int sensorValue = analogRead(A0);

float voltage = sensorValue * (5.0 / 1023.0);

Serial.println(voltage);
}

E  a seguinte montagem:

Exibições: 185

Responder esta

Respostas a este tópico

boa noite Paulo.

     Faça a alteração como mostro na figura a seguir:

     O valor do Resistor R2, juntamente com o R3, determinam o ganho do seu amplificador.

    Este ganho deverá estar de acordo com sua célula de carga. Se vc sabe qual será o "delta" de tensão resultante da deflexão na célula de carga, basta então determinar o ganho baseado na faixa de tensão que quer medir com o Arduino.  A faixa total default do Arduino é de 5V, mas enquanto vc faz experimentações, aconselho ficar dentro de uma faixa de cerca de 2,5V.

    Vou mostrar um exemplo de cálculo:   se sua célula produz um delta de 10mV (10 mili Volts), e vc quer passar isso pra faixa de 2V, então calcule o ganho necessário:

    Ganho = 2V / 0.01V = 200

   Sabendo agora o ganho, calcule os resistores de ganho R3 e R2. No caso, você já escolheu o valor de R3, neste caso de 1M.  O Ganho = 1+(R3/R2), mas como o ganho é um pouco alto, podemos desprezar o "1" e simplificar esta equação, e usar Ganho = R3/R2, e então teremos R2 = R3/Ganho

   Ou seja, para R3 = 1M, R2 será:

    R2 = 1M/200 = 5k

    Assim tem-se para este exemplo que citei, R2 = 5k (5 kilo ohms) e R3 = 1M (1 Mega ohm). O valor comercial para R2 é de 5.1k.

    Notas importantes:

         - o ideal é colocar um capacitor de uns 100kpF em paralelo com o resistor R5 do seu circuito.

         - ao montar o circuito na prática, não deixe "largado" o outro Operacional do LM358. Se vc não estiver usando este outro Operacional, ligue-o como como mostro na figura anterior.

         - não conheço direito o Fritizing, e por isso não tenho certeza. Mas talvez vc tenha que ligar a alimentação negativa do Operacional (neste caso o pino 4 do LM358) ao GND do circuito, conforme também mostro na figura.

         - se possível use um circuito melhor, como este que mostro na figura a seguir, pois permite perfeito casamento de impedâncias:

        Para este último circuito, o cálculo é idêntico ao anterior. Veja que apenas estou usando o Operacional "sobrante", para casar melhor a impedância com a "Ponte resistiva".

    Abrçs,

    Elcids

Huuum, entendi. Eu não estava adicionando R2 mesmo. Mas uma coisa, não consegui descobri esse delta com base nas especificações. Seria 1,0 +/- 0,1 ?

Estou usando essa celula: http://www.huinfinito.com.br/sensores/1370-sensor-de-peso-com-celul...

olá Paulo.

      Para o valor da sensibilidade, que é especificado em  mV/V (portanto adimensional), você deve interpretar assim: se por exemplo sua célula tem sensibilidade de 1mV/V, e ela é especificada para 5V,  então o delta será 5V x 1mV/V = 5mV. Porém isto é especificado para a carga máxima da célula, que no caso é de 50kg. Conclusão: um peso de 50kg irá provocar um delta de 5mV na variação da tensão de saída da célula (tensão DC).

      Como você vê, é bem pouco. Por esse motivo precisa amplificar. No seu circuito vc já está alimentando a célula de carga com 5V (da alimentação do Arduino) então o seu delta resultante serão os 5mV que acabamos de constatar (só não esqueça que esse é o máximo, para uma carga total de 50kg).

      Para que essa pequena variação de 5mV seja medida pelo Arduino, você precisa amplificar para uma faixa de tensão realmente "palpável", por exemplo para 1V. Assim você vai converter o delta de 5mV para uma faixa de 1V, e assim medir essa variação de 1V com o Arduino. Logo, quando a carga na célula for 50kg, você estará medindo uma variação de 1V no Arduino.

     Para esses valores do exemplo, o ganho seria:   Ganho = 1V/5mV = 200. O restante do cálculo vc já conhece, pois mostrei no post anterior.

     Mas observe que a variação absoluta de tensão será outra. Vou explicar porquê. Ocorre que quando não há peso na célula de carga, a variação na saída da mesma seria 0mV, ok? Porém a célula de carga é um divisor resistivo (feito com "strain gauges"), e a tensão absoluta resultante desse divisor resistivo será próximo a metade da tensão total aplicada (pois os resistores são praticamente iguais). Logo nesta situação, se vc está aplicando 5V à célula de carga, a tensão de saída quando a célula está em "repouso", será de 2.5 Volts (metade de 5V) sendo chamada de "tensão de zero" do seu circuito. Quando vc aplica carga à célula, ela produz um delta de tensão, e se a carga for a máxima, no seu exemplo teremos um delta de 5mV, o que significa que a tensão de saída na célula passará de 2.5V para 2.505V (um aumento de 5mV). Essas tensões absolutas não interessam a vc e não devem ser amplificadas, por isso é que usamos aquela configuração do Amplificador Operacional no seu circuito (aquele com LM358), pois esta configuração amplifica o delta (5mV), mas não amplifica os valores absolutos. Mas aquele circuito faz mais que isto:  ele mantém a saída do Operacional no valor da tensão de zero somado com o delta amplificado. Ou seja, a equação de saída do LM358 e que é aplicada ao Arduino, será:

     Vout = 2.5V + ( Ganho*5mV*peso/50kg )

      Veja que os 2.5V não são amplificados, pois o ganho está multiplicando apenas o delta multiplicado pela relação entre o peso na célula de carga e a carga máxima (ou seja, um valor proporcional ou "regra de três").

      Qual o resultado disso?  que sem peso, a tensão medida pelo Arduino será 2.5V. Quando vc aplica algum peso, a tensão medida será a variação proporcional ao delta amplificada (multiplicada pelo ganho do circuito), e acrescida de 2.5V. No exemplo de uma variação máxima de 1V (ou seja ganho de 200), a tensão medida para a carga máxima será 2.5V+1V = 3.5V.

      Por esta razão existe a "calibração", que consiste em descontar o valor medido quando não há carga. Então antes de fazer medições pra valer, você faz uma conversão no Arduino pra obter o resultado quando não há peso.  Depois este valor deve ser sempre descontado, quando de fato vc estiver medindo "pra valer". Claro que pra quem não está acostumado a programar, pode parecer um desafio fazer em um programa, uma etapa de "calibração", e depois disso o mesmo programa já começa a medir descontando o "zero". Mas é uma tarefa trivial que qualquer um que mexe com isso tem que aprender a fazer. Um truque pra fazer isso, é sempre subtrair dos valores medidos, uma variável que seria o "zero" inicial, e que seria inicializada com o próprio valor "0", de forma que quando vc vai fazer a calibração não ocorrerá desconto (já que estará subtraindo "0" da medição). Então em seguida, basta atribuir à variável o novo valor "zero" (que foi medido), e assim automaticamente será feito o desconto adequado nas próximas medições.

      Muito importanteAmplificadores Operacionais, tem um erro na tensão de saída chamado de "offset". Este "erro" é próprio do Operacional (e inclusive varia com a temperatura).  Esta tensão de "offset" pode ser positiva ou negativa, e ela se soma ao sinal na entrada do Operacional. EAmplificadores Operacionais convencionais (ou seja, comuns), esse erro pode ser por exemplo de 2mV (é um valor típico). Então aí vem o problema: uma vez que o erro de offset se soma à entrada, é o resultado dessa soma é que é amplificado, ou seja, multiplicado pelo ganho.

     Veja o erro de offset para o LM358 (marquei na figura):

      Veja que o valor típico do offset do LM358, é de 2mV. Assim se seu delta resultante da célula de carga é de 5mV (no máximo), o resultado somado ao offset poderá ser 7mV (ou seja 5+2), ou 3mV (ou seja 5-2). É impossível saber qual será o resultado pois ele é considerado aleatório na fabricação do LM358. E o mais importante: o resultado da soma será amplificado também, resultando em uma faixa um pouco diferente daquela que vc espera.

      Claro que o processo de Calibração que descrevi, vai automaticamente descontar o offset, já que quando a célula de carga estiver em repouso e sua saída for "0", o offset estará ainda somado, e portanto será incluído no valor de "zero" a ser descontado nas medições. Mas cuidado com a faixa resultante final absoluta a ser medida no Arduino, pois um Operacional com offset alto e um ganho que vc escolha muito alto, podem fazer a tensão de zero resultar muito acima dos 2.5V (ou muito abaixo, já que a tensão de offset pode ser negativa), "melando" sua faixa de conversão esperada.

     Há Operacionais com offset muito baixos (por exemplo 50uV), mas costumam ter preço bem mais salgado, custando de 5 a 10 vezes mais caros que os "comuns".

     Espero ter ajudado.

     Abrçs

     Elcids

Fala Elcids, muito obrigado pelas dicas. Vou levar em consideração esses novos parâmetros, obrigado mesmo. Quanto ao final do que você falou, fiquei curioso sobre e encontrei um modelo, INA125, que parece me atender melhor nessa tarefa. Acha que seria uma boa?

Abraço.

boa noite Paulo.

      Legal que tenha se interessado. Procure sempre ter conceitos técnicos bem fundamentados, pois isto vai ajudar a ter o melhor resultado em seus projetos.

      Sobre o INA125 que vc mencionou, ele é um "Amplificador de Instrumentação". Eu conheço bem a série "INA" da Texas, pois já a utilizo em Projetos há quase 25 anos. Apenas para curiosidade: o fabricante original era a "Burr-Brown", que era uma empresa "nobre" de Circuitos Integrados de altíssima qualidade, mas depois a gigante Texas comprou a Burr-Brown, justamente para ter em seu portfólio componentes de altíssima precisão (e claro, uma enorme e valiosa quantidade de patentes).

    Observe: "Amplificadores de Instrumentação" são componentes de alta-precisão, e por isso são mais caros. Então tem que valer a pena o uso deles pra que vc possa "justificar" sua escolha. Eles tem uma configuração interna composta de pelo menos 2 Amplificadores Operacionais, mas a maioria usa uma configuração com 3 Operacionais. Por exemplo, veja a configuração na figura a seguir, referente ao INA118:

     Veja as características especificadas do INA118. São realmente muito melhores que qualquer Operacional convencional. Por exemplo, note que a tensão de offseté menor que 50uV. Mas isto tem um preço: US$11, e este preço é no mercado americano (no Brasil custaria mais de R$60, com impostos). Mesmo que vc compre em massa, por exemplo um lote de 2500 peças, o preço ainda assim é salgado: quase US$7 cada unidade.

      Mas é importante conhecer os "Amplificadores de Instrumentação". Veja na figura anterior que tudo que está dentro do retângulo azul, faz parte do INA118, ou seja, são 3 Operacionais (de precisão), pelo menos 6 resistores de altíssima precisão (ajustados individualmente a LASER), e ainda circuitos de proteção. Não é pouca coisa.

     O importante é vc conhecer a configuração interna dos "Amplificadores de Instrumentação", a equação de Ganho básica do mesmo (está na figura anterior a do INA118), e claro ainda mais importante: conhecer as características elétricas destes componentes, pra que possa tirar o melhor proveito deles (é preciso, né, afinal o preço deles exige isso).

     Mas você falou do INA125. Veja a série INA da Texas, é muito extensa, e tem "Amplificadores de Instrumentação"  que são "mais padronizados", e alguns mais "esquisitos" também.

     Não vou dizer que o INA125 é esquisito. Mas ele não está no grupo de "Amplificadores de Instrumentação" mais padronizados. Por isso, em um projeto semelhante ao seu, eu não usaria o INA125. Ele é um componente "deslocado" dos padrões usados para "Amplificadores de Instrumentação". Você pode conferir a pinagem do mesmo e verificar que não é nada convencional. Amplificadores de Instrumentação costumam ter uma pinagem padrão (a mesma do INA118), então o ideal é tentar ficar dentro desse padrão.

     Assim se vc quiser usar um desses "bichinhos refinados", eu sugiro o INA126. Custa entre US$3 e US$4. Não é tão barato, mas é a metade do preço do INA125. Além disso está dentro do grupo "padronizado", o que significa que se vc precisar, será mais fácil substituir o mesmo por outro semelhante.

    O link do datasheet do INA126 é este:   INA126 - datasheet

    A página oficial deste componente é esta:  INA126 - Texas

    Você pode usar também o INA332, que é a metade do preço do INA126. Mas a tensão de offset do INA126 é bem menor (há também outras diferenças).

     E claro, há diversos outros "INAs" que vc pode escolher, e não somente da Texas. Na Microchip não há muitos, mas são mais baratos que os da Texas. Há também os da Linear Techlogies (são excelentes, mas caros), da Analogue Devices (são bons, mas prefiro evitar), e muitos outros fabricantes.  (Nota: a Analogue Devices comprou a Linear Techlogies no ano passado).

    Caso vc resolva "brincar" um pouco com "Amplificadores de Instrumentação" junto com suas células de carga, e usando o Arduino, então eu sugiro que comece com a configuração que mostro na figura a seguir (para "zoom" clique na figura ou abra em uma nova guia do seu navegador):

    Este circuito eu adaptei, baseado na aplicação mostrada na figura 25 do datasheet do INA126. Neste circuito você vai encontrar todos os conceitos que mencionei nos post anteriores, e alguns conceitos a mais (se vc não souber o que é cada coisa, basta perguntar). Observe que o que está dentro do retângulo azul, faz parte do INA126 (ou seja aqueles resistores e Operacionais já estão dentro do INA). O Ganho é controlado unicamente pelo Resistor "RG". Note pela equação, que o menor ganho é 5 (este ganho ocorre quando vc não tem o RG no circuito). No datasheet é explicado com usar o ganho e diversas outras características (algumas muito importantes).

    Fico à disposição para quaisquer dúvidas,

   Abrçs,

   Elcids

Nossa, ótimas dicas Elcids, obrigado de verdade. Vou me aprofundar e fazer os testes. 

Boa tarde , 

Essa balança funciona com o módulo HX711. 

Leia com a tenção como usar a célula de carga - muitos erram em como usá-la. 

A parte central tem que flexionar. 

http://blog.eletrogate.com/balanca-digital-com-arduino-aprenda-a-us...

Esse modulo não poderei usar, por isso recorri a outro metodo. Obrigado pela dica de flexionar, José.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço