Pessoal eu gostaria de fazer apenas a leitura dessa celula de carga.
Estou usando um amplificador HX711.
Busco o programa na internet mas nenhum da certo.
Vcs poderiam me ajudar?

Exibições: 1364

Responder esta

Respostas a este tópico

Oi LR, boa tarde.

por favor leia: http://labdegaragem.com/forum/topics/sugest-o-de-como-postar

Coloque mais detalhe, esquemas, sketchs  I(ANEXADOS)  e erros pra que possamos ajuda-lo.

Ruo

Este é a parte de um programa que eu usei e funciona, desconsidere a parte que não te interessa e bom uso...

const int pino_A3 = A3;
const int pino_6 = 6;
const int pino_7 = 7;
const int pino_8 = 8;
const int saida = 13;
int tempo = 300;
int tempo_gravado;
int rpm_gravado;
int cel_gravado;
float valor_rpm;
int valor_tensao_rpm;
int cel_carga = 0;
float entrada_rpm = A0;
//int valor_real_rpm = 0;
float result_forca = 0;
int cel_corte = 100;
int rpm_corte = 500;
int modo = 0;
long zero_factor;
boolean bt_aum = false;
boolean bt_dim = false;
boolean chave_selec = false;
boolean selec = false;
boolean flag = false;
long tempo_decorrido = 0;
long intervalo = 20000;
long t_pisca = 0;
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <HX711.h>
#define DOUT 9
#define CLK 11
HX711 scale(DOUT, CLK);
float calibration_factor = 0; //-7050 worked for my 440lb max scale setup

//Define os pinos que serão utilizados para ligação ao display
// RS E D4 D5 D6 D7
LiquidCrystal lcd(12, 10, 5, 4, 3, 2);

void setup()
{
pinMode(saida, OUTPUT);
pinMode(pino_A3, INPUT_PULLUP);
pinMode(pino_6, INPUT_PULLUP);
pinMode(pino_7, INPUT_PULLUP);
pinMode(pino_8, INPUT_PULLUP);
lcd.begin(16,2);
scale.set_scale();
scale.tare(); //Reset the scale to 0
zero_factor = scale.read_average();

tempo = (EEPROM.read (0)*10);
rpm_corte = (EEPROM.read (1)*10);
cel_corte = (EEPROM.read (2)*10);
//Serial.begin(9600);

}


void loop()
{
SEM_DISPLAY:

if (tempo < 5 )
{
tempo = 10;
}
//-------------------------------------------------------
bt_aum = digitalRead(pino_6);
bt_dim = digitalRead(pino_7);
chave_selec = digitalRead(pino_8);
selec = digitalRead(pino_A3);

//------------------------------------------------------------
// LEITURA DO CANAL ANALOGICO 0 -- ROTAÇÃO

valor_tensao_rpm = analogRead (entrada_rpm);
valor_rpm = ((valor_tensao_rpm / 204.6) * 4.5);

//-----------------------------------------------------------------------
// CALCULO RESULTANTE NA CELULA DE CARGA

result_forca = scale.get_units();
result_forca = result_forca / 1000;
if (result_forca < 0)
{
result_forca = result_forca * -1;
}

//------------------------------------------------------------------------
if (flag == true)
{
goto flag;
}
//-------------------------------------------
if ((valor_rpm > (rpm_corte / 10))&&(result_forca > cel_corte))
{
digitalWrite(saida, HIGH);
delay(tempo);
digitalWrite(saida, LOW);
flag = true;

}
//-----------------------------------------------------
flag:
if (result_forca < cel_corte)
{
flag = false;
}

if (selec == true){goto SEM_DISPLAY;}

//ESCREVE NO DISPLAY
//------------------------------------------------------------------------

if (modo == 0 )
{
lcd.clear(); //Limpa a tela
lcd.setCursor(0, 0);//Posiciona o cursor na coluna , linha
lcd.print("TEMPO RPM CELULA");//Envia o texto entre aspas para o LCD ou dados sem aspas
lcd.setCursor(1, 1);
lcd.print(tempo);

lcd.setCursor(6, 1);
lcd.print(valor_rpm,1);

lcd.setCursor(11, 1);
lcd.print(result_forca,1);
delay(200);
//Serial.println(scale.get_units());
}

Então o problema é q a celula de carga ela é de 3 fios, vou postar aqui a celula o HX711 como eu liguei e a programação q eu peguei tudo isso em um site.

link do código.
http://pastebin.com/CiHFdh4L

Anexos

Eu usei uma célula com dois fios apenas, fiz uma ponte de winston e liguei como você fez.

Funcionou perfeitamente.

Verifique a resistência da sua ponte, ela tem que funcionar como a ponte de winston...

E como você fez? Vc fez com os 4 resistor de 1k ae você ligou a onde? eu não conheço nada da. Gostaria de saber se eu consigo fazer com esta celula de 3 fios onde eu ligaria a ponte!?

Fico extremamente grato pela ajuda!!!!!

Primeiro vc precisa do esquema interno desta celula, e depois fazer a ponte.

Com a minha celula eu precisei de apenas 3 resistores de 1k

Vc precisa saber a resistencia da sua celula para montar a ponte 

E ligar como no esquema que vc mandou

No esquema da ponte, uma das resistencias tem que ser a celula, as outras são fixas

Oi LR, boa tarde.

Usei o code que vem junto com a biblioteca : HX711Serial.ino.

O modulo HX711 liguei assim  +, Gnd, DT (DOUT) em A1, SCK (Clock) em A0.

A célula de carga liguei assim:

Centro em E+;

Um lado em A+;

Outro lado em A-;

Resistor de 1k de A+ para E-;

Resistor de 1k de A- para E-;

Acho que no seu projeto estáligada diferente.

Obtive os seguintes printouts:

HX711 Demo
Before setting up the scale:
read: 2758344
read average: 2757001
get value: 2756097.00
get units: 2757035.0
After setting up the scale:
read: 2757705
read average: 2756621
get value: -1136.00
get units: -0.2


Readings:
one reading: -0.1 | average: -0.7            ------------> Solto


one reading: 2469.4 | average: 2469.4    ---------------> força em um sentido
one reading: 2446.3 | average: 2425.1
one reading: 2359.1 | average: 2363.8


one reading: -2690.9 | average: -2678.5  ------------> Força em outro sentido
one reading: -2925.1 | average: -1944.9


one reading: -5.1 | average

: -5.8             ------------> Solto
one reading: -4.6 | average: -5.3

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço