Fórum sobre desenvolvimento de sistemas embarcados: Hardware e Software, Tecnologias: Eletrônica digital e analógica, Microcontroladoras, Microprocessadores, Sistemas *NIX (Linux, BSD), Software embarcado Baremetal. Sem fins lucrativos. http://asm51.com.br/phpbb/
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*/
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
Enviado: 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.
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
Enviado: 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
Enviado: 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
Enviado: 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
Enviado: 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.
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.
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
Enviado: 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
Enviado: 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
Enviado: 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
Enviado: 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
Enviado: 09 Mai 2016 15:27
por rosiley
Segue uma imagem de parte do circuito onde estou me baseando, pois ele funciona muito bem.