Ciao a tutti sto utilizzando un arduino uno R3 ho comprato poco fa due celle di carico con i relativi amplificatori, le ho collegate nel seguente modo E+rosso, E- nero, A+ bianco, A- nero, ho alimentato l'HX711 a 5V tramite arduino e i due segnali li ho portati sui pin 2 e 3.
Ho provato diverse librerie e programmi ma il mio problema è che mi vengono restituiti valori casuali che variano anche se non varia il peso, per essere sicuro di non aver sbagliato nel programma ho provato gli esempi delle librerie hx711 ma il risultato è stato lo stesso, ho escluso che il problema possano essere le celle di carico siccome ne ho tre di cui una è da 25kg ed è funzionante e le altre due sono da 1kg ma seppur invertendole mi trovo con lo stesso problema, ho provato a utilizzare tutti e due gli hx711 ma niente, anzi non sicuro ne ho comprato un altro di marca diversa, stesso risultato.
Ho cercato sui vari forum ho provato di tutto alimentare diversamente, invertire i fili della cella, addirittura alcuni consigliavano di aggiornare il firmware dell usb, l'ho fatto, ma il problema resta.
Non so più dove sbattere la testa potreste aiutarmi?
Ecco il programma e ciò che ne rilevo.
#include "HX711.h"
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;
void setup() {
Serial.begin(57600);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}
void loop() {
if (scale.is_ready()) {
long reading = scale.read();
Serial.print("HX711 reading: ");
Serial.println(reading);
} else {
Serial.println("HX711 not found.");
}
delay(1000);
}
Andiamo per gradi.
Una lettura CI DEVE ESSERE (non ti aspetterai mica che ti legga ZERO solo perchè non c'è sopra un peso, vero?) e a quella lettura va sottratto il medesimo valore per avere ZERO e cominciare così la pesatura. Le letture che scrivi mi sembrano anche "normali", nel senso che, se non tocchi la cella, c'è una variazione minima di valore (penso che potrebbe essere 423 grammi e tre decimali, per cui cambia di + o - un grammo).
Il discorso è: se leggi questi valori e poi provi a forzare la cella come se stesse pesando qualcosa, ottieni altri valori? Se la risposta è SI, allora la cella funziona benissimo.
La media di tutto ciò messa in tutti i programmi presi su github mi da valori che variano di 600 grammi quando la cella è da un chilo, quando applico una forza sulla cella rilevo sempre gli stessi valori e quei valori li rilevo anche se scollego la cella
Secondo me fai un errore di base: la cella NON ti da un peso in grammi o kg: ti da un valore che è direttamente proporzionale al peso che applichi. E Se spingi dalla parte opposta il valore diminuisce (quindi è inversamente proporzionale).
E' il programma o la libreria, poi, che converte questo valore in peso.
Si lo so infatti per semplicità di tutti non ho postato qui il programma che converte tutto in grammi, perché prima c’è la procedura di calibrazione ecc... ho preso quello che la libreria mi offre come esempio base in modo da farvi vedere come variano i valori seppur non applichi niente, e anche facendo la media di questi valori è mettendoli nel mio programma preso su github rilevo valori che variano di centinaia di grammi in più e in meno quando la cella è ferma, non ho effettuato la verifica con il multimetro, ma prima di fare il post avevo smontato il dinamometro per bagagli da viaggio che funziona gli ho preso la cella è l’ho collegata al posto di quella acquistata il risultato era lo stesso, a quel punto l’ho rimontata ho ancora verificato per sicurezza che il dinamometro funzionasse e funziona... mi è venuto in mente di provare ad alimentare la cella esternamente non con arduino anche se ho verificato e con il multimetro la tensione resta costante
Ringrazio tutti quelli che mi hanno aiutato perchè finalmente sono riuscito a risolvere! Avevo un cavetto più precisamente quello che va sul pin due che faceva resistenza (addiritura ogni tanto non conduceva) e quindi sballava il segnale probabilmente! Colgo l'occasione per farvi un altra domanda, io sono intenzionato ad utilizzare arduino per fare una confezionatrice lui dovrebbe leggere i valori delle celle di carico confrontare il valore con un valore soglia e quando lo raggiunge inviare un segnale tramite l'attivazione di un pin, poi dovrebbe inviarmi il tutto su un piccolo display per poter verificare ogni tanto se il peso è veritiero poi dovrebbe avere due pulsanti che incrementano e decrementano il valore di soglia che anche esso deve essere visibile a display. calcolando che intento riempire un cestino da 500g in circa 5 secondi arduino reggerebbe tutte queste operazioni su due postazioni di peso differenti quindi due celle di carico che misurano un peso differente, due display che comunicano valori differenti impulsi che arrivano da due pulsanti differenti ecc... secondo voi è fattibile o sarebbe meglio utilizzare un arduino per ogni cella?
500 grammi i cinque secondi non la vedo una gran velocità per Arduino. Oddio, per quello che costa un NANO puoi fare due circuiti esattamente "fotocopia" ma anche con un solo NANO non vedo problemi.