Ciao! Ho acquistato una schedina hx711 per poter (cercare di poter) leggere un peso posto su una cella di carico, che possiedo. Ho collegato tutto secondo lo schema in allegato e dovrebbe essere tutto corretto. Il software che ho scritto per ora mi servirebbe per poter calibrare la cella soltanto che non mi restituisce alcun valore dall'hx711. Ho provato quindi con i codici presenti all'interno della libreria fornita per l'hx e noto che leggendo i dati dell'adc dalla schedina ottengo qualcosa, ma è sempre lo stesso numero, sia che vi sia l'hx collegato, sia che sia scollegato...il che mi fa pensare che le due schede non comunichino a dovere, ma non riesco a capire dove sia il problema. Vi allego anche i due codici. Hope that someone can help me! ![]()
#include "HX711.h"
// HX711.DOUT - pin #A1
// HX711.PD_SCK - pin #A0
HX711 scale(A1, A0); // parameter "gain" is ommited; the default value 128 is used by the library
void setup() {
Serial.begin(9600);
Serial.println("HX711 Demo");
scale.set_scale(); // this value is obtained by dividing the calibration value with the known weight;
scale.tare(); // reset the scale to 0
Serial.println("You Have 20s to Place a Known weight on the Sensor:"); // Time delay to place weight
delay(10000);
}
void loop() {
Serial.print("Divide this by value by the weight used in desired output units e.g. Grams/Kilograms:\t");
Serial.print(scale.get_units(10));
scale.power_down(); // put the ADC in sleep mode
delay(1000);
scale.power_up();
}
Codice della libreria
#include "HX711.h"
// HX711.DOUT - pin #A1
// HX711.PD_SCK - pin #A0
HX711 scale(A1, A0); // parameter "gain" is ommited; the default value 128 is used by the library
void setup() {
Serial.begin(38400);
Serial.println("HX711 Demo");
Serial.println("Before setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet)
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided
// by the SCALE parameter (not set yet)
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
Serial.println("After setting up the scale:");
Serial.print("read: \t\t");
Serial.println(scale.read()); // print a raw reading from the ADC
Serial.print("read average: \t\t");
Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC
Serial.print("get value: \t\t");
Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare()
Serial.print("get units: \t\t");
Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided
// by the SCALE parameter set with set_scale
Serial.println("Readings:");
}
void loop() {
Serial.print("one reading:\t");
Serial.print(scale.get_units(), 1);
Serial.print("\t| average:\t");
Serial.println(scale.get_units(10), 1);
scale.power_down(); // put the ADC in sleep mode
delay(5000);
scale.power_up();
}
Scusate per il tanto codice!
