Como posso utilizar o HX711 com pic para medir torque positivo e negativo

Boa noite pessoal, estou com um grande problema aqui e não consigo resolver ou melhor estou totalmente perdido.

É o seguinte:

Tenho aqui um hx 711 e um pic 16f887 e preciso fazer com que eles se comuniquem e mostre o valor em um display de 7 segmentos, neste display eu devo medir o torque pra direita e pra esquerda  com o amplificador de instrumentação eu consegui, mais para isso o circuito ficou grande pois eu preciso utilizar uma fonte negativa, se alguem souber como fazer ou conhece algum site que tenha esta informação fico agradecido.

Exibições: 2342

Responder esta

Respostas a este tópico

Bom dia.

Bom dia , nunca vi tanto Strain Gauge ligado junto. Essa configuração funciona ?

Sim, funciona. 

Essa montagem estava em um aparelho ? Tem o diagrama eletrônico dessa montagem ? 

Sim, sendo que este apresentou defeito em um sensor.Nesta configuração nós temos 1 resistor, 1 Térmico e 4 straing gauge duplo ( cada sensor tem dois strain gauge), o diagrama foi o que passei nas figuras anteriores.

Você poderia informar o nome do manual que copiou o circuito do ZMO31050 ?  

Infelizmente não tem como eu só tenho esta informação.

Tem o arquivo ou link do  PDF ?

Não.

 Você já tem esse chip em mãos ?

Sim.

Acho que nesse caso você tem duas alternativas:

- usar o módulo HX711 - melhor alternativa pois já tem o módulo montado com todos os circuitos

- montar um modulo com o ZMO31050 . Chip desconhecido e me pareceu ser mais complexo. 

Por onde vai começar ? 

Eu já estava inclinado em trabalhar com o hx711, agora vou pesquisar como fazer com que ele funcione com o pic via ccs compiler, eu tenho um código aqui que vou postar para análise. Não se asuste pois neste esxemplo estou usando o pic 18f4553, repito peguei este código no site da ccs e adaptei ao meu caso.

#include "Load_Cell.h"
#include <stdio.h>
#ZERO_RAM

#define HX711_DO PIN_B0
#define HX711_CLK PIN_B1

int32 measurement(void);

void main()
{
int1 test=0;
unsigned int32 Count,BUFFER[30],offseeet=0,mied=0;
unsigned int8 i=0;

setup_adc_ports(AN0_TO_AN9|VSS_VREF);
setup_adc(ADC_CLOCK_DIV_32);
setup_psp(PSP_DISABLED);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);

while(TRUE)
{

while(i<10)
{
Count=measurement();
BUFFER[i]=Count;
mied+=BUFFER[i];
i++;
}
i=0;
mied/=11;

if(test==0)
{
offseeet=mied;
test=1;
}
//Count=measurement();
mied-=offseeet;
//printf("data=%lu \n\r",Count);
printf("mied=%lu \n\r",mied);
//delay_ms(1);
//printf("\f");
}
}
//********************************************
int32 measurement(void)
{
unsigned int32 Count;
unsigned int8 i,A_1,A_2,A_3;

output_bit( HX711_DO, 1);
output_bit( HX711_CLK, 0);
Count=0;

while(input(HX711_DO));

for (i=0;i<24;i++)
{// gain 128
output_bit( HX711_CLK, 1);
Count=Count1;
output_bit( HX711_CLK, 0);
if(input(HX711_DO)) Count++;
}
output_bit( HX711_CLK, 1);
Count=Count^0x800000;
output_bit( HX711_CLK, 0);
//************************
A_1=MAKE8(Count, 0);
A_2=MAKE8(Count, 1);
A_3=MAKE8(Count, 2);
A_2=(A_2 & 0b11111000);
Count= MAKE16(A_3, A_2);
return(Count);

}

#include <18F4553.h>
#device adc=12

#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES HSPLL //High Speed Crystal/Resonator with PLL enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES BORV20 //Brownout reset at 2.0V
#FUSES PUT //Power Up Timer
#FUSES NOCPD //No EE protection
#FUSES STVREN //Stack full/underflow will cause reset
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES NOWRTD //Data EEPROM not write protected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES PBADEN //PORTB pins are configured as analog input channels on RESET
#FUSES NOWRTC //configuration not registers write protected
#FUSES NOWRTB //Boot block not write protected
#FUSES NOEBTR //Memory not protected from table reads
#FUSES NOEBTRB //Boot block not protected from table reads
#FUSES NOCPB //No Boot Block code protection
#FUSES MCLR //Master Clear pin enabled
#FUSES LPT1OSC //Timer1 configured for low-power operation
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#FUSES PLL5 //Divide By 5(20MHz oscillator input)
#FUSES CPUDIV4 //System Clock by 4
#FUSES USBDIV //USB clock source comes from PLL divide by 2
#FUSES VREGEN //USB voltage regulator enabled
#FUSES ICPRT //ICPRT enabled

#use delay(clock=48000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#use i2c(Master,Fast,sda=PIN_B0,scl=PIN_B1)

Você já viu isso ?

https://www.ccsinfo.com/forum/viewtopic.php?p=195622

Não tenho experiência com Compilador para PIC. 

Mas dá para entender.

Vi, e foi exatamente este código que estou usando, agora a tarde vou realizar alguns testes e postar os resultados aqui.

Já estudou o HX711, para entender como ele funciona ? Qual ganho do amplificador estará selecionando ? 

1) Faça um diagrama eletronico com as ligações entre os sensores, modulo e o Arduino.

2) Faça a montagem seguindo o diagrama e confira todas as ligações antes de ligar. Muita atenção nas conexões com a fonte de alimentação.

3) Certifique-se que a pinagem no Programa esta conferindo com a pinagem da montagem. 

4) para cada linha de programa, escreva um comentário do lado, explicando o que esta fazendo.

Assim terá grandes chances de dar certo, 

Me informe depois. 

Ok, vou fazer isso. 

Mais lembro que estou usando pic e não arduino.

Grande Gustavo bom dia, segue o catálogo de strain gaug.

http://pdf.directindustry.com/pdf/hbm-test-measurement/hbm-estrain-...

http://www.directindustry.com/prod/bcm-sensor-technologies-bvba-561...

Neste link o sensor utilizado é o terceiro.

Realizei alguns testes com o código acima e obtive algumas informações, o circuito com o hx711 funciona a minha célula de carga está funcionando sendo que mudei o processador por 18f4553 pois eu já tenho ele montado e funcionando para o meu propósito e hoje vou testar com o circuito que utiliza um amplificador mais é claro sem o hx 711 e como ele se comporta.

Rosiley boa tarde, 

Você sabe qual é código, part  number do seu sensor ?

Você enviou um catálogo com vários sensores.

http://www.volltel-meas.com/a/Products/Strain_Gauges/Metal_Foil_Str...

Segue um exemplo de como pedir o sensor através do PN.

BF350-2HA-C(11)T1-D

Rosiley Vianna2017-09-08 14:23

V. vai utilizar sensor torque rotativo?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço