Encender led con "HX711.h"

Hola, soy muy nuevo y novato, estoy tratando de hacer un proyecto, en el cual según el peso de un objeto se active un motor "PinMotor" La bascula es una "HX711.h" y esta conectada según esta Web. La bascula funciona, el único problema que tengo es el código, y como configurarlo.
Un saludo y espero respuesta.

#include "HX711.h"

const int DOUT = A1;
const int CLK = A0;
int pinMotor = 9;
int peso;
int lectura;

HX711 balanza;

void setup()
{
  pinMode(pinMotor, OUTPUT);
  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...");
  Serial.println("...");
  balanza.set_scale(-392572.21); // Establecemos la escala
  balanza.tare(20);  //El peso actual es considerado Tara.
  Serial.println("Listo para pesar");
}

void loop() {
  lectura = analogRead(DOUT);
  peso = lectura ;
  if (peso >= 100 && peso < 1200) {
    digitalWrite(pinMotor, HIGH);
  } else if (peso > 100) {
    digitalWrite(pinMotor, LOW);
  } else if (peso < 1200) {
    digitalWrite(pinMotor, LOW);
  }
  { Serial.print("Peso: ");
    Serial.print(balanza.get_units(20), 3);
    Serial.println(" kg");
    delay(100);
  }
}```

¿No te parece extraño que te salga una escala negativa?, Haz una impresión en pantalla a ver que valores te esta pesando.
Saludos

No me parece muy raro, bueno no se.
Lo he puesto así para cambiar el símbolo de positivo o negativo en el peso que me dice.

¿Y que pesos te salen en pantalla?, ¿Estan en el rango que comparan los if que encienden el led?. Humm... ahora que lo veo los else estan mal definidos. deberian estar asi:

if (peso >= 100 && peso <= 1200) {
  digitalWrite(pinMotor, HIGH);
}
else if (peso < 100) {
  digitalWrite(pinMotor, LOW);
}
else if (peso > 1200) {
  digitalWrite(pinMotor, LOW);
}

Pero como ya has comprobado cuando encender ¿porque combprobar si los has de apagar?. Yo lo dejaria asi:

if (peso >= 100 && peso <= 1200) {
  digitalWrite(pinMotor, HIGH);
}
else {digitalWrite(pinMotor, LOW);
}

Saludos.

Pueden salir valores negativos si nunca hizo la calibración o el tarado.

¡Epa! Guarda con los insultos @Surbyte . :joy: :rofl: :joy:

Por tarado me refiero a la "tara" de la balanza. Que es cuando la tienes sin peso y la balanza indica algo y debe descontarse.

Si, claro, obviamente fue una broma.

Saludos

si, hice un tarado, sino ese espacio estaría blanco, y la bascula en si funciona, si yo le pongo 400g me dice que son 400g.

No entiendo el problema
Cuál es puntualmente.
El código lo has mostrado, dices que mide bien, entonces?

Mi problemas es que el código no le indica al "PinMotor" encenderse o apagarse según los valores recibidos(Es un motor DC normal).

Y cómo lo que @gonpezzi te ha sugerido correctamente no te ha funcionado si dices que mide bien el peso?
Si 400 gr los muestra adecuadamente esto

Tu error es este

  lectura = analogRead(DOUT);
  peso = lectura ;

Que tiene que ver esto con la balanza? Pues nada.
Tu balanza mide con esto

balanza.get_units(20)

Asi que usa esto

peso =  balanza.get_units(20);

Siento la tardía, per he estado de exámenes.
Lo acabo de probar y no ha funcionado.
Si tenéis alguna idea mas , no dudéis en decírmela, Un saludo.