Pagina 1 di 1

cella di carico con HX711

MessaggioInviato: 14 mar 2021, 16:17
da ClaBor
Salve, è la prima volta che entro nel forum. Da poco ho cominciato ad affaciarmi al mondo di Arduio e ho cominciato a fare i primi passi con i progetti di esempio della IDE. Da qualche giorno stò litigando con Arduino UNO, una scheda HX711 e una cella di carico (a 4 fili) da 1 kg. Il mio intendimento è costruire un banco prova per motori vintage da aeromodellismo ( erano motori inglesi denominati JETEX in uso fino agli anni '60). Ho scaricato i due sketc ( uno è per la calibratura e il secondo è per fare i pesi ) e pur riuscendo a caricarli regolarmente senza errori nella IDE, non riesco a fare la calibratura e senza questo il secondo sketch ovviamente non funziona. C'è qualche anima buona che conosce l'argomento e può darmi indicazioni di come operare per andare in porto? Ringrazio in anticipo

Re: cella di carico con HX711

MessaggioInviato: 14 mar 2021, 16:25
da alessandrovo
io ho fatto una cosa simile con esp32, hx711 e una cella da 200kg
il fattore di calibrazione lo puoi ricavare in vari modi io ho fatto come spiegato nella reference ma c'è chi usaun approccio pratico (micro incrementi e confronto con un peso noto)

dopodiche nel setup avrai

scale.begin(D1, D2);
scale.set_scale(il fattore);
scale.tare();

mentre nel loop:
peso = scale.get_units(nr_campionamenti);


per le cella da 1kg il fattore potrebbe essere 1490 ma cambia da cella a cella per cui ti tocchera' sperimentare
nella mia, con 21 ho una precisione impressionante

Re: cella di carico con HX711

MessaggioInviato: 14 mar 2021, 22:53
da ClaBor
OK, grazie Alessandro, provo appena possibile e poi posto i risultati. Che sketch hai utilizzato?

Re: cella di carico con HX711

MessaggioInviato: 16 mar 2021, 21:24
da ClaBor
Ho provato a inserire nello sketch tutto quello che era possibile ma non si muove nulla. Quando faccio la verifica e il carico dello sketch, questo viene caricato, ma prima l'IDE mi manda questo messaggio di errore:

In file included from sketch\HX711-multi.cpp:2:0:
sketch\HX711-multi.h:49:10: warning: extra qualification 'HX711MULTI::' on member 'readRaw' [-fpermissive]
void HX711MULTI::readRaw(long *result = NULL);
^~~~~~~~~~
In file included from C:\Users\Edoardo\Desktop\Sketck_test_bench\Arduino_code\HX711_jetex_filter_float\HX711_jetex_filter_float.ino:1:0:
sketch\HX711-multi.h:49:10: warning: extra qualification 'HX711MULTI::' on member 'readRaw' [-fpermissive]
void HX711MULTI::readRaw(long *result = NULL);
^~~~~~~~~~
Non riesco a capire se è questo errore che mi blocca l'esecuzione o se il motivo è diverso da questo.

Re: cella di carico con HX711

MessaggioInviato: 17 mar 2021, 13:00
da alessandrovo
tu nel codice hai qualche warning ma quello "puo' capitare'

se puo servire io ho usato la libreria hx711 da

https://github.com/aguegu/ardulibs/tree/master/hx711

poi nell'ide

Codice: Seleziona tutto
#include "HX711.h"
float peso = 0;

setup()
{
  scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711
  scale.set_scale(21f);
  scale.tare();
}

loop()
{
   peso = scale.get_units(5);
}

Re: cella di carico con HX711

MessaggioInviato: 18 mar 2021, 0:15
da ClaBor
Se ho capito bene carico come sketch quello che tu mi indichi che hai messo nell'ide e installo la libreria che si scarica dal link che mi hai dato. OK, ho fatto tutto e lanciando la verifica dello sketch mi dà questo errore e non chiude la verifica;

Codice: Seleziona tutto
Arduino:1.8.13 (Windows Store 1.8.42.0) (Windows 10), Scheda:"Arduino Uno

HX711_simple2:4:9: error: expected constructor, destructor, or type conversion before ';' token

     setup()

         ^

HX711_simple2:11:8: error: expected constructor, destructor, or type conversion before ';' token

     loop()

        ^

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:4:11: warning: ISO C++ forbids declaration of 'setup' with no type [-fpermissive]

     setup()

           ^

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino: In function 'int setup()':

HX711_simple2:4:5: error: ambiguating new declaration of 'int setup()'

     setup()

     ^~~~~

In file included from sketch\HX711_simple2.ino.cpp:1:0:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:154:6: note: old declaration 'void setup()'

void setup(void);

      ^~~~~

HX711_simple2:6:7: error: 'scale' was not declared in this scope

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

       ^~~~~

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:6:7: note: suggested alternative: 'scanf'

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

       ^~~~~

       scanf

HX711_simple2:6:19: error: 'D1' was not declared in this scope

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

                   ^~

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:6:19: note: suggested alternative: 'A1'

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

                   ^~

                   A1

HX711_simple2:6:23: error: 'D2' was not declared in this scope

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

                       ^~

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:6:23: note: suggested alternative: 'A2'

       scale.begin(D1, D2); // d1 e d2 sono i pin a cui ho collegato hx711

                       ^~

                       A2

HX711_simple2:7:23: error: unable to find numeric literal operator 'operator""f'

       scale.set_scale(21f);

                       ^~~

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino: At global scope:

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:11:10: warning: ISO C++ forbids declaration of 'loop' with no type [-fpermissive]

     loop()

          ^

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino: In function 'int loop()':

HX711_simple2:11:5: error: ambiguating new declaration of 'int loop()'

     loop()

     ^~~~

In file included from sketch\HX711_simple2.ino.cpp:1:0:

C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\hardware\arduino\avr\cores\arduino/Arduino.h:155:6: note: old declaration 'void loop()'

void loop(void);

      ^~~~

HX711_simple2:13:15: error: 'scale' was not declared in this scope

        peso = scale.get_units(5);

               ^~~~~

C:\Users\Edoardo\Desktop\HX711_simple2\HX711_simple2.ino:13:15: note: suggested alternative: 'scanf'

        peso = scale.get_units(5);

               ^~~~~

               scanf

Più di una libreria trovata per "HX711.h"

Usata: C:\Users\Edoardo\Documents\Arduino\libraries\HX711

Non usata: C:\Users\Edoardo\Documents\Arduino\libraries\HX711_Arduino_Library-0.7.4

Non usata: C:\Users\Edoardo\Documents\Arduino\libraries\HX711-master

Non usata: C:\Users\Edoardo\Documents\Arduino\libraries\HX711_Arduino_Library

exit status 1

expected constructor, destructor, or type conversion before ';' token



Inoltre non riesco a capire nella scheda ARDUINO UNO quali siano i PIN D1 e D2 a cui colleghi DT e SCK.

Spero di non abusare troppo della tua pazienza

Re: cella di carico con HX711

MessaggioInviato: 18 mar 2021, 10:43
da alessandrovo
se hai ancora pure la vecchia è normale che facciano conflitto devi tenere una sola delle due
io l'ho messa semplicemente in Documenti\Arduino\libraries
per i pin devi indicare quelli che hai usato tu la mia board non era molto generosa di gpio ho dovuto usare per forza quelli e con gli altri ci ho connesso DFPlayer(per farle dire a voce il peso) e display 7seg i2c

Re: cella di carico con HX711

MessaggioInviato: 18 mar 2021, 14:12
da claudiocedrone
Foto UtenteClaBor, il codice postalo scrivendolo tra i tag che appaiono cliccando sul pulsante virtuale "Code" sulla finestra di risposta come ha fatto Alessandro, altrimenti leggerlo è una impresa oltre al fatto che se serve è più facile copiarlo.

Re: cella di carico con HX711

MessaggioInviato: 19 mar 2021, 22:39
da ClaBor
Ok, grazie a tutti per l'aiuto. Ho risolto ripulendo la libreria di tutte le librerie HX711 e caricandone solo quella standard (HX711.h e HX711.ccp) poi ho usato lo sketch degli esempi (HX711plotter.ino) e tutto ha funzionato alla perfezione immediatamente e senza alcuna correzione. Inoltre la calibrazione è stata semplicissima e la risoluzione mi sembra eccellente. Pertanto ho completato il primo step. Il secondo step che vorrei affrontare è la memorizzazione dei risultati che appaiano sul "Monitor seriale" in un file EXCELL per ricavarne un grafico di buona precisione. Se qualcuno ha dei suggerimenti da darmi, questi sono ben accetti.