Problema con la libreria HX711

Nella realizzazione di un progetto con le celle di carico usando la libreria HX711 mi sono imbattuto in un problema. Nella stesura del programma le istruzioni iniziale sono queste:

//pesatura cella

#include <LiquidCrystal.h>
// inialiaza libreria LCD
//const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//cella di carico
#include <HX711.h>
HX711 scale(6, 7);
//#define DOUT 6
//#define CLK 7
//HX711 scale;
float calibrazione = -1944;
float units;

void setup()
{
  Serial.begin(9600);
  scale.set_scale();
  scale.tare();
  scale.set_scale(calibrazione);
  // setup  LCD dei numeri e colonne:
  lcd.begin(16, 2);
  //lcd.print("Buon giorno!")

}

void loop()
{
  units = scale.get_units();
  if (units < 0) units = 0.00;
  // Serial.println(units);
  //lcd.print("")
  // mette il cursore alla colonna 0,line seconda riga
  lcd.setCursor(0, 0);
  lcd.print(units);
  lcd.setCursor(0, 1);
  // stampa i secondi:
  lcd.print(units);
  delay (100);
  //lcd.print("")
  lcd.setCursor(0, 0);

  //aggiungere la lettura su display

}

e usando l'istruzione -> HX711 scale(6, 7); mi dà questo errore:
Uso la libreria HX711 alla versione 0.3.3 nella cartella: /home/roberto/Arduino/libraries/HX711
exit status 1
no matching function for call to 'HX711::HX711(int, int)'

se invece uso le seguenti istruzioni tutto va bene:

//pesatura cella

#include <LiquidCrystal.h>
// inialiaza libreria LCD
//const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//cella di carico
#include <HX711.h>
//HX711 scale(6, 7);
#define DOUT 6
#define CLK 7
HX711 scale;
float calibrazione = -1944;
float units;

void setup()
{
  Serial.begin(9600);
  scale.set_scale();
  scale.tare();
  scale.set_scale(calibrazione);
  // setup  LCD dei numeri e colonne:
  lcd.begin(16, 2);
  //lcd.print("Buon giorno!")

}

void loop()
{
  units = scale.get_units();
  if (units < 0) units = 0.00;
  // Serial.println(units);
  //lcd.print("")
  // mette il cursore alla colonna 0,line seconda riga
  lcd.setCursor(0, 0);
  lcd.print(units);
  lcd.setCursor(0, 1);
  // stampa i secondi:
  lcd.print(units);
  delay (100);
  //lcd.print("")
  lcd.setCursor(0, 0);

  //aggiungere la lettura su display

}

l'istruzione HX711 scale(6, 7) non funziona. Istruzione che funziona invece con la libreria per lcd. Per quale motivo?
Premetto che ancora non sono in posesso della cella di carico e dell'elettronica, in quanto arirveranno a meta settembre e così mi volevo portare avanti con il programma. La libreria è quella dei repository di arduino Chiedo scusa era un pò di tempo che non usavo il forum e mi ero perso in alcune funzioni. Il comando "control T" sul mio SO non funziona, uso linux.

Come richiesto al punto 7 del regolamento, fosse anche solo per una riga, il codice va racchiuso negli appositi TAG ... per favore edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte verrebbero temporaneamente nascoste), quindi ti consiglio di farla al più presto. :wink:

Premesso che ogni libreria è una cosa a se stante, scritta da autori diversi con metodologie ed idee diverse, con metodi diversi, la prima cosa che si deve fare prima di usarla è ... studiarsi gli esempi!

Ora, tu hai guardato gli esempi della HX711? Non credo, altrimenti ti saresti accorto che:

  1. la classe si istanzia solo con: HX711 scale;

  2. l'assegnazione dei pin si effettua con il metodo: scale.begin(DOUT_PIN, SCK_PIN); e NON passandoli all'istanza.

Quindi, leggere sempre prima gli esempi, leggersi i sorgenti della libreria per capire cosa implementa e come e poi applicarla alle proprie esigenze.

Guglielmo

P.S.: dato che NON hai messo il link alla libreria che stai usando, io faccio riferimento a quella che indica Arduino QUI ... se ne stai usando un'altra dicci qual' è

Per la libreria che sto usando lo specificato nel post iniziale. Qui ho visto l'esempio, per la costruzione del programma, -> https://arduinoque.it/blog/celle-di-carico-arduino/
vedi il filmato.

Secondo te mi devo sorbire il filmato quando bastava scrivere un pagina su un blog specificando nel dettaglio come e cosa fare.

Ma è assurdo quasi quasi faccio un filmato (visto che va di moda) di 20 minuti dove alla fine dico che la libreria è questa.

Dove trovi anche l'esempio oppure lo vuoi in versione filmato? :grinning:

No, hai detto solo che usi una libreria per HX711 ... e, dato che ne esistono diverse, devi sempre specificare il link da cui l'hai presa così noi sappiamo quale e ...

... comunque, come indica Maurotec, è la stessa a cui faccio riferimento io (e Arduino) e devo ribadire che non ti sei andato a studiare gli esempi (... lascia stare le cose che trovi su youtube ... al 95% bojate :wink: ) perché avresti visto esattamente come usarla :slight_smile:

Guglielmo

Concorquoto

Infatti io ignoro direttamente i "linkoyoutubari"

Mi pare chiaro quando uno scrive " La libreria è quella dei repository di arduino", la cosa era chiara. Per chi non ha capito sono le librerie che sono inserite, di base, nell'IDE di arduino.

" non ti sei andato a studiare gli esemp" e secondo te come avrei fatto a trovare la soluzione in cui non mi dà l'errore?

Sequendo l'indicazione datami in cui in ogni libreria l'autore mette se sue istruzioni ho trovato in rete altre librerie HX711 e le provero, per imparare altre cose.

... studiando gli esempio della libreria e vedendo che in NESSUNO si fa la chiamata che fai tu, ma si fa come ti ho già detto:

E guarda che non c'è nessuna polemica, c'è il fatto che prima venite qui a chiedere aiuto, ma poi NON volete sentire quando vi si dice che dovete studiare e non solo fare dei copia incolla o immaginare metodi che non esistono nella libreria che usate!

Comunque la soluzione ti è stata data ... chiudiamo pure qui ...

Guglielmo