Livello fluidi con sensore di pressione: una prova.

Devo realizzare un sensore di livello di un pozzetto di raccolta di acque scure.
Attualmente sto usando un sensore che ho realizzato con contatti reed, che funziona molto bene a parte il fatto che è sensibile alle incrostazioni dovute ai saponi, quindi periodicamente va pulito.

Ora voglio sostituirlo con un sensore di pressione. In questo modo ho due vantaggi

  1. nel pozzetto ho solo un tubo, senza parti in movimento (galleggianti ecc.)
  2. ho una misura continua del livello (che posso anche rappresentare graficamente su un display)

Ora sto provando con questo setting, ma non mi funziona.
Ho collegato questo sensore : MPS20N0040D
Datasheet: qui

(di cui vi è un’applicazione dettagliata per quello che mi serve ,
ma analogica qui)

Ma io, per vari motivi, ho voluto provare un’altra soluzione. Ho accoppiato questo sensore con un modulo già pronto , questo : HX711
datasheet: qui

Poichè questo modulo è un amplificatore differenziale con convertitore digitale a 24bit, in ingresso gli ho applicato il sensore di cui sopra che consta di un sistema di misurazione a ponte Wheatstone.

i collegamenti sono
[sensore] : [modulo]
Pin 5 : E + (vcc)
Pin 3 : A + (out+)
Pin 1+6 : A - (out-)
Pin 2 : E - (gnd)

Predisposto l’HW ho impostato questo semplice codice.

/* sample for digital pressure scale of hx711
 * library host on
 *https://github.com/aguegu/ardulibs/tree/3cdb78f3727d9682f7fd22156604fc1e4edd75d1/hx711
 */

// Hx711.DOUT - pin #A0
// Hx711.SCK - pin #A1

#include <Hx711.h>
Hx711 scale(A0, A1);

void setup () {

Serial.begin(9600);

}

void loop() {

  Serial.print(scale.getGram(), 1);
  Serial.println(" g");

  delay(200);
}

Ma non funziona. Variando la pressione non succede nulla a parte
qualche scatto sporadico nei numeri stampati.

è un problema HW o SW? è l’accoppiamento tra i due che non funziona, o devo effettuare delle modifiche al sw, libreria o codice?

magari c’è qualcosa di banale che su due piedi mi sfugge…

vagus

Ciao,

premetto che non sono un esperto…

hai provato al posto di:

Serial.print(scale.getGram(), 1);

ad usare altro metodo della libreria:

float valore = (float)scale.getValue();
Serial.print(valore, 1);

giusto per vedere cosa succede…

[RISOLTO]

dopo avere inviato il post, ho fatto alcune prove, e ho scoperto due problemi

  1. la piedinatura indicata nel datasheet è errata, almeno la rappresentazione non sembra corretta infatti se guardiamo dall'alto il sensore con la tacca di riferimento verso l'alto, io numero i piedini nel seguente modo

1 v 6
2 5
3 4

in tal caso i collegamenti corretti sono i seguenti

[sensore] : [modulo]
Pin 5 : E + (vcc)
Pin 4 : A + (out+)
Pin 1+6 : A - (out-)
Pin 2 : E - (gnd)

(in altre parole era sbagliato il pin 3)

  1. Non solo, ma anche la prima libreria non funzionava, cosi ho scaricato quella di
    Scott Russell (scott@queuetue.com)
    GitHub - queuetue/Q2-HX711-Arduino-Library: Simple Arduino driver for the HX711 ADC

e questa funziona.