Celdas de carga 50kg / Lectura aleatoria (SOLUCIONADO)

Hola:
Tenia montada una bascula con una celda de 20 kg, una celta del formato tal cual la foto aqui mostrada:

Ya que se me quedaba limitada de peso, monte la misma bascula pero usando 4 celdas de 50kg, y las conecte tal cual muestro aqui en la foto:

Utilizo es mismo sckech que el que usaba antes ... que si bien para la celda de 20kg va perfecto, para estas 4 celdas de 50kg falla.
Y es que las lecturas que me da son aleatoreas, para nada estables.
Ya no puedo ni calibrar la bascula con los valores que me da.

Dejo aqui el codigo (el de calibracion):

#include "HX711.h"

#define DOUT  A1
#define CLK  A0

HX711 balanza;

void setup() {
  Serial.begin(9600);
  balanza.begin(DOUT, CLK);
  Serial.print("Lectura del valor del ADC:  ");
  Serial.println(balanza.read());
  Serial.println("No ponga ningun  objeto sobre la balanza");
  Serial.println("Destarando...");
  balanza.set_scale(); //La escala por defecto es 1
  balanza.tare(20);	//El peso actual es considerado Tara.
  Serial.println("Coloque un peso conocido:");
  
}


void loop() {

  Serial.print("Valor de lectura:  ");
  Serial.println(balanza.get_value(10),0);
  delay(100);
}

Alguna idea

Pare empezar lo que veo es que utilizas un montaje que aunque en su día yo intente utilizar no me funcionó.
Estas utilizando dos canales del HX711 sin seleccionar sobre que canal quieres actuar.
Intenta lo siguiente:

  1. utiliza una sola celda de carga a ver que tal.
  2. utiliza dos celdas de carga conectadas de la siguiente manera:

Pin E+ los dos cables rojos
Pin E- los dos cables negros.
Pin A+ cable blanco de la celda 1
Pin A- cable verde de la celda 1
Pin B+ cable blanco de la celda 2
Pin B+ calbe verde dela celda 2

Cuando quieras leer o calibrar las celdas lo tienes que hacer seleccionando previamente el canal sobre el que quieres actuar.

Un ejemplo de como leer los dos canales:

balanza.set_gain(128);
balanza.set_scale(104146.82); // Establecemos la escala en canal 1

peso1 =(balanza.get_units(1));
total1 = peso1-tara1;


balanza.set_gain(32);
balanza.set_scale(14377); // Establecemos la escala en canal 2

peso2 =(balanza.get_units(1));
total2 = peso2-tara2;

PesoTotal = total1+total2;

como verás para acceder al canal 1 se utiliza previamente

balanza.set_gain(128);

Y para acceder al canal 2 balanza.set_gain(32);

Revisando tu mensaje me he dado cuenta de que utilizas celdas de carga diferentes a las mias.
Intenta lo que te he puesto para seleccionar los canales.

Hola:
Siento aver tardado tanto en contestar.
Muchas gracias por tu respuesta... no habia visto eso de los dos canales, lo tendre en cuenta.
Pero al final trateando por internert encontre otros sckech me me funcionaron, pego aqui el codigo por si sirve de algo

Recalco que uso un lcd con letras grandes. Saludos y gracias

const int lcdD7Pin = 2; // LCD D7 pin
const int lcdD6Pin = 3; // LCD D6 pin
const int lcdD5Pin = 4; // LCD D5 pin
const int lcdD4Pin = 5; // LCD D4 pin
const int lcdEPin = 11; // LCD E Pin
const int lcdRSPin = 12; // LCD RS pin
int DOUT = A1;
int CLK = A0;
int peso_entero;
double peso_decimal, peso;
int peso_decimalentero;

HX711 balanza;
LiquidCrystal lcd(lcdRSPin, lcdEPin, lcdD4Pin, lcdD5Pin, lcdD6Pin, lcdD7Pin); // construct LCD object
BigNumbers bigNum(&lcd); // construct BigNumbers object, passing to it the name of our LCD object

void setup()
{
  /*
  The following 2 lines change the PWM frequency of digital pins 9 and 10.
  On Arduino Uno, these pins are controlled by Timer1.
  On Arduino MEGA2560, these pins are controlled by Timer2.
  Use the line that you need and comment out the other.
  See <http://playground.arduino.cc/Main/TimerPWMCheatsheet> for more details.
  */
  TCCR1B = TCCR1B & 0b11111000 | 0x01; // use for Arduino Uno
  // TCCR2B = TCCR1B & 0b11111000 | 0x01; // use for Arduino Mega2560
  Serial.begin(9600);
  lcd.begin(16,2); // setup LCD rows and columns
  bigNum.begin(); // set up BigNumbers
  lcd.clear(); // clear display
  balanza.begin(DOUT, CLK);
  Serial.print("Lectura del valor del ADC:  ");
  Serial.println(balanza.read());
  Serial.println("No ponga ningun  objeto sobre la balanza");
  Serial.println("Destarando..."); 
  lcd.setCursor (3, 0);
  lcd.print("PESO MAXIMO");
  lcd.setCursor (5, 1);
  lcd.print("20 kG");
  delay(2000);
  balanza.set_scale(); //La escala por defecto es 1 
  balanza.tare();  //El peso actual es considerado Tara.
  Serial.println("Coloque un peso conocido:");
  lcd.clear();
}




void loop()
{
  balanza.set_scale(-18800); //peso en Kg
  Serial.println(balanza.get_units(), 2);
  
  peso= (balanza.get_units(2));
  peso_entero = peso/1;              //separar valor entero de decimal
  peso_decimal = peso-peso_entero;
  peso_decimal = peso_decimal*100;
  peso_decimalentero =peso_decimal; 
  
  if (peso_decimalentero<10){
    lcd.setCursor (12, 1);
    lcd.print(".");
    lcd.setCursor (13, 1);
    lcd.print("0"); 
    lcd.print(peso_decimalentero);
    
  }
  if (peso_decimalentero<0){
    lcd.setCursor (12, 1);
    lcd.print(".");
    lcd.setCursor (13, 1);
    lcd.print("00"); 
    
    
  }
  if (peso_decimalentero>10){   
  lcd.setCursor (12, 1);
  lcd.print(".");
  lcd.print("   ");//borrar restos
  lcd.setCursor (13, 1);
  lcd.print(peso_decimalentero);
  }
    bigNum.displayLargeInt(peso_entero, 0, 4, false);
  // print out the decimal point and the digit after it
  lcd.setCursor (0, 0);
  lcd.print("KG");
}

Hola estoy teniendo el mismo inconveniente al conectar 4 celdas de carga de 50kg en hx711 tal como te sucedió, vi el código que resolvió tu problema pero no comprendo cual fue la solucion. Podrias explicarme por favor? saludos.

La solución es que si miras el HX711 sugiere un conexionado de este tipo.

El problema que veo es que el código no esta completo. No veo un llamado a la rutina de BigNum ni el include correspondiente.
No esta claro para que sirve el TIMER2 que es inicializado pero no se ve la rutina asi que debo suponer que se usa en BigNum o sea que se muestra en caracteres grandes (obvio no?)