Ajuda com célula de carga 50kg e módulo HX711

Estou com dificuldade para medição de um sensor de carga de capacidade 50kg usando o módulo HX711 e um Arduino UNO. Eu gostaria de saber se alguém tem ideia do que pode estar acontecendo, visto que já segui todos os tutoriais possíveis. O erro estaria nas conexões, no módulo ou no sensor? Segue em foto o circuito montado, com exceção de eu ter tirado o display (LCD). Além disso, também coloquei o print do monitor serial, onde o valor supostamente medido sofre alterações aleatórias mesmo sem ela estar sendo pressionada.



Por favor, gente, preciso muito concluir isso.

Olá,

Sim, é boa ideia isolar o circuito que está a dar problemas, deixa apenas ligado o módulo HX711 e a célula.

No programa, coloca o código com apenas o essencial para testar o HX711 com a célula.

Coloca aqui o código que está a dar problemas. Ao responderes pressiona no botão </> para formatar o código.

Obrigada por ter respondido! Eu fiz isso hoje pela manhã e tudo funcionou por alguns minutos, porém do nada a célula volta a realizar medições aleatórias mesmo que nenhum peso esteja sobre ela. Estou pensando se seriam os jumpers (fios) que podem estar fazendo conexões "frouxas". Eu não tenho outra ideia, porque hora dá certo e hora não dá. Segue meu código abaixo (modelo que achei em um site americano):

/*
Setup your scale and start the sketch WITHOUT a weight on the scale
Once readings are displayed place the weight on the scale
Press +/- or a/z to adjust the calibration_factor until the output readings match the known weight
Arduino pin 6 -> HX711 CLK
Arduino pin 5 -> HX711 DOUT
Arduino pin 5V -> HX711 VCC
Arduino pin GND -> HX711 GND
*/

#include "HX711.h"

HX711 scale(5, 6);

float calibration_factor = 32000; // this calibration factor is adjusted according to my load cell
float units;

void setup() {
Serial.begin(9600);
Serial.println("HX711 calibration sketch");
Serial.println("Remove all weight from scale");
Serial.println("After readings begin, place known weight on scale");
Serial.println("Press + or a to increase calibration factor");
Serial.println("Press - or z to decrease calibration factor");

scale.set_scale();
scale.tare(); //Reset the scale to 0

long zero_factor = scale.read_average(); //Get a baseline reading
Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
Serial.println(zero_factor);
}

void loop() {

scale.set_scale(calibration_factor); //Adjust to this calibration factor

Serial.print("Reading: ");
units = scale.get_units(), 10;
if (units < 0)
{
units = 0.0;
}
Serial.print(units);
Serial.print(" kg");
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println();
delay(500);

if(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
calibration_factor += 1;
else if(temp == '-' || temp == 'z')
calibration_factor -= 1;
}
}

Ao responderes, antes de colocares o código, pressiona no botão </> para que fique formatado :slight_smile:

Qual a biblioteca estás a usar? Estás a usar a "HX711 Arduino Library" por (bogde) Bogdan Necula, Andreas Motl?

Instalaste a partir do Library Manager do Arduino? Qual a versão? Ou instalaste manualmente a partir do github?

Esses pinos que estás a definir no código:

HX711 scale(5, 6);

O pino 5 é o LOADCELL_DOUT_PIN e o pino 6 é o LOADCELL_SCK_PIN?

No diagrama que mostras parece que estás a ligar o SCK ao pino 2 e o DT ao pino 3. Então é 2 e 3 ou 6 e 5?

Em vez de passares os pinos quando declaras um objecto da classe HX711 experimenta usar a função begin dessa classe. Isto é:

#define LOADCELL_DOUT_PIN  5
#define LOADCELL_SCK_PIN  6

HX711 scale;

void setup() {

  ...

  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

  ...
}

Se continuares com o mesmo problema experimenta outros exemplos dessa biblioteca, por exemplo, o HX711_basic_example.

Para verificar a célula, remove-a do circuito e mede a resistência com um multímetro entre os fios:

vermelho e preto = ? Ω
vermelho e branco = ? Ω
branco e preto = ? Ω

Qual a resistência entre cada um deles?