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);
}
}```
¿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: