COMPARTILHANDO ESQUEMA. LIGAR 4 CÉLULAS DE CARGA (4 FIOS) NO HX 711

OLÁ PESSOAL ABRI UMA BALANÇA E FIZ UM ESQUEMA DE LIGAÇÃO PARA CÉLULAS DE CARGA (4 CÉLULAS DE 4 FIOS), COM CALIBRAÇÃO INDIVIDUAL ( TRIMPOT).

DESCULPEM SE NÃO FICOU MUITO BOM. 

MAS DA PRA ENTENDER!!!

Exibições: 10459

Anexos

Responder esta

Respostas a este tópico

FIZ ALGO VE SE TE SERVE

Anexos

VAleu,  Muito interessante,

 Na parte da ligação, sinceramente eu nunca havia visto algo do tipo para celular de 3 fios,  foi criação/descoberta sua ou você viu em algum lugar?

    Na parte do codigo eu achei incrivel,  você fez tudo na unha, não utilizou bibliotecas, muito interessante.

    Cara, eu vi que você utilizou algumas funções básicas no seu codigo que apesar de eu já ter uns 3 anos de arduino eu ainda não sei pra que serve, humildemente se você puder me informar eu agradeceria:

no texto:

CAPTURA = CAPTURA1;       pra que serve esse      ?

CAPTURA ^= 0x00800000;      pra que serve esse    ^=    ?

   

olá bom dia. NA VERDADE USEI BIBLIOTECA SIM. MAS A LIGAÇÃO DE DUAS CELULAS FOI SOZINHO MESMO.

CAPTURA=CAPTURA1;

     

//INDICA QUE OS BITS DA VARIAVÉL CAPTURA SERAO DESLOCADO 1 VEZ PARA A ESQUERDA.

EX.;

int x = 1; // 0000 0001

int x0 = (x  0); // 0000 0001 Não deslocado

int x1 = (x  1); // 0000 0010

int x2 = (x  2); // 0000 0100

int x3 = (x  3); // 0000 1000


E CAPTURA^=0x00800000;
//xor_eq(^=)

  é um operador de atribuição que executa 

bit a bit "exclusivo ou"

 . É equivalente a 

lógica-ou-expr = lógico-ou-expr ^ atribuição-expr

 , exceto que 

lógico-ou-expr

 é avaliada apenas uma vez.

     OU SEJA ESSE É EXCLUSIVO DO HX 711, ESTA NO DATA SHEET DO HX 711.

VEJA NESSE SITE FOI ONDE TIREI TUDO.>>>>    http://absolem.com.br/blog/hx711/hx711/#.V7L0JFsrLcs

DAQUI PUDE ENTENDER MELHOR COMO FUNCIONAVA O HX 711.

ABRAÇOS


 

Coloquei la no blog também como ligar vários HX711 lendo em paralelo.. ainda não terminei só esta com o canal A por enquanto mas...

http://absolem.com.br/blog/hx711/hx711-varios-modulos-hx711-em-para...

E como deixar ele mais rápido!

http://absolem.com.br/blog/hx711/hx711-alterando-o-tempo-de-captura...

Valeu. Vou dar uma olhada também. Tenho uma projetos em mente para pesagens.
Obrigado.

Boa tarde galera tenho esse código com a biblioteca hx711 que funciona para 1 sensor desses de 3 fios, porém quero utilizar mais 3 sensores com o arduino lendo cada sensor separado.

#include "HX711.h"
// HX711.DOUT  - pin 10
// HX711.PD_SCK - pin 11
HX711 scale(10, 11); // parameter "gain" is ommited; the default value 128 is used by the  library  library*/
void setup() 
{
  Serial.begin(9600);
  Serial.println("HX711 Demo");
  Serial.println("Before setting up the scale:");
  Serial.print("read: \t\t ");
  Serial.println(scale.read());     // print a raw reading from the ADC 
  
  Serial.print("read average:\t\t ");
  Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC
  
  Serial.print("get value: \t\t ");
  Serial.println(scale.get_value(5));   
// print the average of 5 readings from the ADC minus the tare weight (not set yet)
 
  Serial.print("get units: \t\t ");
  Serial.println(scale.get_units(5), 1);  
// print the average of 5 readings from the ADC minus tare weight (not set) divided by the SCALE parameter (not set yet) 
scale.set_scale(2280.f);  
 // this value is obtained by calibrating the scale with known weights; see the README for details
  scale.tare();   // reset the scale to 0
 
 Serial.println("After setting up the scale:");
 
 Serial.print("read: \t\t");
 Serial.println(scale.read());                        // print a raw reading from the ADC
 
 Serial.print("read average:\t\t ");
 Serial.println(scale.read_average(20));       // print the average of 20 readings from the ADC
 
 Serial.print("get value: \t\t ");    
// print the average of 5 readings from the ADC minus the tare weight, set with tare()
Serial.println(scale.get_value(5));
Serial.print("get units: ");
Serial.println(scale.get_units(5), 1);      
// print the average of 5 readings from the ADC minus tare weight, divided by the SCALE parameter set with set_scale
 
Serial.println("Readings:");
}
void loop() 
{
  Serial.print("Weight :");                        
  /* ---------Weight in terms of KG-------------*/
  Serial.print(scale.get_units()*0.1 , 1);
  Serial.print("KG \t\t\t\t");
  scale.power_down();             // put the ADC in sleep mode
  delay(5000);
  scale.power_up();
}

No meu blog tem com leitura em paralelo.. 

http://dangerouselectron.blogspot.com.br/2016/07/hx711-varios-modul...

Mudei o servidor esta sem figuras ... vou tenatr corrigir durante a semana ... se voce ver desde o inicio o bog fica facil de acompanhar o desenvolvimento..

Então Alexandre eu vi seu blog, gostei muito de sua postagem, porém, não funcionou esses códigos no arduino, estão dando erro, porque será?

Desde já agradeço!

Quais erros? Provavelmente foi o Blogspot importando do wordpress... olhei rapido deve estar faltando as {}"chaves" ... em anexo o arquivo que provavelmente fiz os testes para o blog..

Anexos

Bem agora deu certo haha, porém, a leitura não está correta, está assim.

Com esse código abaixo utilizando 1 sensor a precisão fica boa como pode ver.

//The library used for arduino https://github.com/bogde/HX711<br>// LCD can also be used instead of serial
#include "HX711.h"
#include <stdio.h>
// HX711.DOUT - pin 10
// HX711.PD_SCK - pin 11
HX711 scale(10, 11); // parameter "gain" is ommited; the default value 128 is used by the library library*/

void setup()
{

Serial.begin(9600);
Serial.println("HX711 Demo");
Serial.println("Before setting up the scale:");
Serial.print("read: \t\t ");
Serial.println(scale.read()); // print a raw reading from the ADC

Serial.print("read average:\t\t ");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC

Serial.print("get value: \t\t ");
Serial.println(scale.get_value(5));
// print the average of 5 readings from the ADC minus the tare weight (not set yet)

Serial.print("get units: \t\t ");
Serial.println(scale.get_units(5), 1);
// print the average of 5 readings from the ADC minus tare weight (not set) divided by the SCALE parameter (not set yet)
scale.set_scale(2280.f);
// this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0

Serial.println("After setting up the scale:");

Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC

Serial.print("read average:\t\t ");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC

Serial.print("get value: \t\t ");
// print the average of 5 readings from the ADC minus the tare weight, set with tare()
Serial.println(scale.get_value(5));
Serial.print("get units: ");
Serial.println(scale.get_units(5), 1);
// print the average of 5 readings from the ADC minus tare weight, divided by the SCALE parameter set with set_scale

Serial.println("Readings:");
}

void loop()
{




Serial.print("Weight :");
/* ---------Weight in terms of KG-------------*/
Serial.print(scale.get_units()*0.1 , 1);
Serial.print("KG \t\t");
scale.power_down(); // put the ADC in sleep mode
delay(5000);
scale.power_up();
}

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço