Página 1 de 2

Zerar residuo numa célula de carga

MensagemEnviado: 05 Mai 2016 15:15
por rosiley
Boa tarde pessoal.

Estou com uma dúvida que não consigo resolver, estou montando uma célula de carga e nesta célula preciso ter dois botões onde os mesmos farão a seguinte mudança.

Botão zerar, este botão deverá zerar o residuo que aparece na entrada do ´processador e o outro botão mudará a de Nm para LbFt.

Colocarei aqui a imgem parcial do circuito onde tenho circuito de condicionamento de sinal e tambem o circuito que simula o strain gage.

cpp code
#include <16F877a.h>           //Inclui arquivo header do PIC 1gf877
#device ADC = 10 //Define 10 bits para o resultado da conversão AD
#use delay (clock=10000000) /*Definição da frequência do cristal para cálculo dos delays*/
#fuses HS, NOWDT, PUT,BROWNOUT, NOLVP //Configuração dos bits de controle

//Função principal

void main()
{
int8 i;
int32 a; /*a = é o canal adc */
float p,a1,aux,aux1; /* p = valor do ADC e a1 = valor convertido*/

setup_adc(ADC_CLOCK_DIV_32);
setup_adc_ports(AN0_AN1_VSS_VREF);

i=0;
aux1=0;

while (true)
{
set_adc_channel(0);
delay_ms(20);
a=read_adc();
delay_ms(20);
p = 5.0 * (a/1024.0);

if (p>0.9) //Faz a correção para zero, neste caso 0.9 é o residuo do sensor em repouso
{
aux = p-0.9;
a1 = ((aux-aux1)* 1000); //Constante para conversão

delay_ms(200);
}
else
{
aux = p-0.9;
aux1 = p -0.9;
a1=((p - aux) * 0.00);

delay_ms(200);

}
}
}

Re: Zerar residuo numa célula de carga

MensagemEnviado: 05 Mai 2016 18:47
por KrafT
Bom, esse código é muito simplório para lidar com células de carga e outros transdutores com saída analógica.

Você deve filtrar as aquisições com um filtro como Sliding Window ou Olímpico, ou algo mais sofisticado.

A expressão
Código: Selecionar todos
a1=((p - aux) * 0.00);
sempre dá zero, certo?

Re: Zerar residuo numa célula de carga

MensagemEnviado: 05 Mai 2016 19:32
por andre_luis
Código: Selecionar todos
if (p>0.9)                 //Faz a correção para zero, neste caso 0.9 é o residuo do sensor em repouso

Não parece ser uma forma apropriada de fazer a tara da medida. De certo modo voce está amarrando o valor do resíduo na compilação, em hardcode, o que significa que se trocar de célula o offset vai ser outro. Não bastaria ler o valor atual e o subtrair da medida atual ( devidamente filtrado, claro, pra não se tornar negativo ) ?

Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 08:00
por xultz
Essa medição a 10 bits é realmente suficiente prá tua aplicação?

Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 08:53
por brasilma
Imagino que seja algum projeto de escola, para fins didáticos o importante é a questão conceitual, já viabilizar um projeto real é bem mais complexo.

O botão de zero deve ser pressionado quando não houver nada sobre o prato de pesagem, o MC adquire o valor lido e sempre que fizer uma leitura de peso o desconta do valor.

1 Nm = 0.737562149277 Lbft

Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 09:04
por rosiley
Bom dia a todos, como disseram o código é realmente simples, pois preciso entender para depois fazer as devidas mudanças, esse código eu consegui num video do youtube, onde eu vi que é possivel, pensei colocar o código dentro de um botão mais nos testes não e´bem assim que funciona, e na realidade é o que o nosso amigo brazilma falou, a melhor solução é.

Pergunta: como coloco uma imagem aqui no forum para que voces possam ver e entender o que estou fazendo.


Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 10:47
por brasilma
Se a imagem estiver na net você pode colar o link dela na página ou faça upload da imagem para algum servidor de imagens e cole o link na página.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 12:49
por rosiley
Segue o link da imagem.
https://uploaddeimagens.com.br/imagens/ ... png--15550

Nesta imagem eu tenho o ckt amplificador junto com a fonte e um ckt que simula uma célula de carga, onde ele gera 7,4 mv que é amplificado e gerando 3 v para o processador.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 06 Mai 2016 19:52
por andre_luis
O link da imagem acima foi bloqueado pelo Chrome por falta de segurança.
Dá uma olhada aqui: Re: Como inserir uma imagem, figura, nos posts. MIGRADO

Re: Zerar residuo numa célula de carga

MensagemEnviado: 07 Mai 2016 08:31
por rosiley
Estou utilizando no momento o segundo circuito que pega o sinal que gera 7,4 mv e amplifica para 3v.

E a segunda imagem estou pensando em testar para ver o seu comportamento.

Em testes com o protótipo funciona tudo bem, exceto na leitura em tempo real pois preciso mostrar o valor em um display lcd e os valores tem um certo delay.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 08 Mai 2016 21:53
por Djalma Toledo
xultz escreveu:Essa medição a 10 bits é realmente suficiente prá tua aplicação?


Não é suficiente. As Balanças comerciais usam 24 bits.

Dj.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 09 Mai 2016 08:58
por rosiley
Caro Djalma bom dia.

No momento estou usando 10 bits para fins de testes e caso funcione como estou prevendo passarei para 16 bits ou mais como voce falou.
Mais sobre o desenho que postei voce acha tem algo errado ou sou eu que não estou entendendo a lógica da coisa.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 09 Mai 2016 13:51
por xultz
Eu já fiz algumas balanças, e trabalhar com 24 bits é irreal. Se dividir a tensão de fundo de escala de uma célula de carga por 2^24 dá um resultado que é abaixo da tensão de Johnson, ou seja, ruído puro. Dependendo da classe de precisão necessária, 16 bits (ou seja, 65536 divisões) costumam ser suficientes, em casos mais precisos é preciso mais alguns bits.
Eu tive a chance de assistir uma palestra com um vovôzão da Analog Devices, da área de conversores A/D para célula de carga. O cara era uma autoridade no assunto, um conhecimento enorme da área. Ele explicou de forma clara por que 24 bits são irreais em balanças, e eu perguntei por que raios a Analog vende conversores de 24 bits, e ele respondeu sem cerimônia: "puro marketing". Na prática, é impossível conseguir tamanha precisão.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 09 Mai 2016 14:50
por brasilma
Para balanças com célula de carga com certeza AD de 24 bits é desnecessário pois legalmente o número de divisões permitida para estas balança gira em torno de 3.000 (150kg x 50g, 15kg x 5g ou 3kg x 1g).

Porem existem as balanças de precisão, uma Analítica básica (existem modelos avançados com ate 100x mais resolução) possui capacidade de 200g x 0,0001g, ou seja, 2 milhões de divisões visíveis; isto são 21 bits, se pensar no arrendondamento mais 1 = 22.

Mais ai é um outro mundo, no Brasil ainda não existe nenhum fabricante de balança de precisão deste nível. As dificuldades são grandes, todo sistema eletrônico deve apresenta grande estabilidade e imunidade, e estamos falando de sinais da ordem de nanovolts.

Re: Zerar residuo numa célula de carga

MensagemEnviado: 09 Mai 2016 15:27
por rosiley
Segue uma imagem de parte do circuito onde estou me baseando, pois ele funciona muito bem.