Ardu-Aquarium Controller v. 3.3.1

Scusate ma non riesco veramente a capire, per il ponte di wheastone ho misurato la tensione ai capi del ponte (il + ed il – sul disegno) con il multimetro, da quello che ho capito grazie a San Google è così che funziona.

Per come è fatto, ha due uscite una fa riferimento al ramo della Rref ed una che fa riferimento alla Rsens, in ogni caso leggerei con l’ADC o un partitore o un altro, a questo punto immagino mi stiate chiedendo di misurare con l'ADC il partitore con la Rsens giusto?
Oppure posso attaccare contemporaneamente le uscite all’ADC?
Perdonatemi ma veramente non ho capito…

Dopo l’esperienza con il vecchio sensore ed avendo appurato che c’è sempre una certa differenza tra i sensori (anche tra gli ultimi due), il mio obiettivo è un circuito che lavori con il maggior numero possibile di sensori (non solo con il mio), la maggior precisione possibile ed il più preciso controllo del livello massimo dell’acqua.

Ho fatto le prove cambiando la R di retroazione, ma non ho ottenuto nessuna variazione, sono sceso fino a 10K ma niente, sempre fondoscala…

Con i partitori è andata meglio, ma ho dovuto un po’ improvvisare…

Partendo da quello che ho appena scritto e vedendo come si comportano sti benedetti sensori, si può dire che si ottengono letture discretamente lineari tra 5cm e 20cm, in base all’ultimo grafico con partitore in uscita dall’Amp-Op 22k/120k (0,927V a 20cm sull’ADC), ottengo nei 15cm 944 rampe che si traducono in una precisione di 1 rampa ogni 0,158mm che è una precisione che mai avrei pensato di raggiungere, al punto che posso pensare di poter rinunciare a parte di questa precisione e fare in modo di poter stabilire uno standard valido per tutti i sensori.

Quindi il mio ragionamento sarebbe:
Se ho un circuito che non arriva mai a fondo scala, posso dire all’acquariofilo xx di posizionare in qualsivoglia acquario il sensore in modo che il livello massimo dell’acqua corrisponda ai 20cm del sensore, quindi invece di tarare il circuito, faccio campionare all’utente con apposita interfaccia a display, l’Analogread() a 5cm e a 20cm ed il controller potrà fare il ripristino del livello dell’acqua o un cambio schedulato nel tempo ed in quantità avendo dei riferimenti precisi, se poi cambio sensore sarà sufficiente ripetere le prime due letture ed il gioco è fatto, così facendo anche se tra sensore e sensore dovessero esserci differenze, via software so che il controller lavora in modo più o meno ottimale.

Tornando ora al discorso precisione, se per stare al riparo sicuro del fondo scala dovessi per esempio scendere a 700 rampe di lettura, continuerei ad avere una precisione di 0,2mm assolutamente più che sufficiente, l’importante è leggere sempre correttamente il livello massimo.

Spero di essermi spiegato e di non aver scritto fesserie, nel caso vi prego di aiutarmi a capire dove sbaglio.

E ancora sinceramente grazie per l'aiuto che mi date.

Riccardo

Scusami ma stasera mi viene difficile interpretare le tue contorsioni :sweat_smile: tarare l'acqua invece del sensore? da sballo :stuck_out_tongue_closed_eyes: però capisco la tua preoccupazione e ti dico che NON ESISTE UNA SOLUZIONE "FISSA" proprio a motivo della GRANDE TOLLERANZA DEI SENSORI che stai adottando che fanno davvero torto al costo che hanno.
Cioè devi capire che se anche trovi il modo di arrivare a 3,3V o 5V di range di segnale cosa ti cambia? Non avrai sempre il problema che uno arriva a fondo scala, l'altro lo supera e l'altro resta sotto???
Se ti è chiaro il concetto appare ASSOLUTAMENTE ovvio che chiunque adotti questa soluzione dovrà fare una taratura per il proprio personale sensore, e l'operazione alla fine diventa piuttosto semplice:
1 - Sostituisci una delle due R con un trimmer di valore doppio (direi di usare un 47k al posto della 22k fissa), poi magari a tentativi con i TRE sensori troverai una combinazione idonea per tutti.
2 - a vasca piena nella norma fissi il sensore per far combaciare il livello con il punto max del sensore
3 - inizi a ruotare il trimmer finché non leggerai il valore 1023; poi togli un po' di acqua in modo da arrivare alla tacca immediatamente inferiore del sensore e poi correggi la taratura, quindi riempi nuovamente, poco alla volta e verifichi se appena raggiungi il max hai 1023 sull'ADC.

Trovata la combinazione di R/Trimmer che vada bene per tutti, qualsiasi sensore deciderai di adottare dovrai fare questa rapida taratura, senza costringere il tuo utente a vuotare o sovrariempire la vasca che poi gli saltano i pesciolini fuori :grin:

ti chiedo un favore, i dati mettili in un foglio excel on-line come google-docs, così possiamo applicarci qualche formuletta pure noi senza ricopiarci a mano i dati.

ti chiedo gentilemnte 2 prove:

  1. fai uno schetch che invia al pc i dati di analog read, o meglio di 2 analog read, una per sensore. ricordati di buttare una sempre le prime due/tre letture analogiche quando cambi pin di lettura o farai misurazioni "sporche". Puoi abbassareil clock dell'ADC ma è un problema che per ora non ci poniamo, se non serve.
  2. fai un programma lato pc che legge i campionamenti e li salva su un file (anzi due, uno per sensore).
  3. fai partire il tutto e immergi i sensori in un secchio di acqua normale, uno di acqua fredda, e uno di acqua calda, magari facendo una pausa di un secondo ogni centimetro che immergi.

a questo punto avremo 6 file: sensore A caldo, freddo, normale, e 'istess per il sensore B.

Poi visto che hai le possibilità, failo stesso esperimento usando differenti metodi di amplificazione

A quel punto possiamo iniziare a giocare seriamente studiando i grafici.

per esempio ecco la mia IPOTESI:
la R di partenza dei sensori è differente, ma la variazione (quindi Rbase - Rletta) di R in base ai CM di acqua è uguale per tutti i sensori, e varia in modo piccolo (meno di 1/2mm di errore) in base alla temperatura.

se ciò è vero, basta dire all'utente accendi e prima di immergere il sensore attendi. Intanto tu leggi la temperatura (con apposito sensore), e quando vedi che è stabile, calcoli la Rbase in base alla temperatura, ed voilà hai calibrato il sensore. poi magari fai fare un paio di testdi prova, e se i conti non tornano di al povero utente di contattarci qui :slight_smile:

Ciao Michele,

in effetti hai ragione, mi sono riletto questa mattina eeee… :blush:
Ad ogni modo ho capito l’uso del trimmer e mi sembra già una soluzione.
E’ vero questi sensori sono costosi, ma non ho trovato nient’altro di simile in giro, solo sensori switch di ogni tipo: a galleggiante a infrarossi a ultrasuoni…, ma niente che legga in continuo come questi senza elettrodi in acqua, mi pare però che piano piano si stia arrivando a dama e con una precisione non indifferente, anche eccessiva in un acquario se vuoi, quindi grazie davvero per il tuo tempo, :slight_smile: ora è intervenuto anche Lesto, ho voglia di fare ed imparare i metodi di approccio, spero che continui a seguirmi.

Ciao Lesto

lesto:
ti chiedo un favore, i dati mettili in un foglio excel on-line come google-docs, così possiamo applicarci qualche formuletta pure noi senza ricopiarci a mano i dati.

Non sapevo esistesse una cosa del genere, stamane ho cercato e provato, per il momento ti mando il link delle prove fatte fino ad ora.

lesto:

  1. fai uno schetch che invia al pc i dati di analog read, o meglio di 2 analog read, una per sensore. ricordati di buttare una sempre le prime due/tre letture analogiche quando cambi pin di lettura o farai misurazioni "sporche". Puoi abbassareil clock dell'ADC ma è un problema che per ora non ci poniamo, se non serve.

Questo lo so fare, in quanto ai dati che ho campionato e che se continuiamo campionerò, fino ad ora a parte le letture del multimetro, ad ogni lettura ho atteso qualche secondo, poi ho fatto copia incolla di 100 letture in excel ed ho inserito la media di queste nelle tabelle, ti va bene così o devo fare diversamente?

lesto:
2. fai un programma lato pc che legge i campionamenti e li salva su un file (anzi due, uno per sensore).

Questo non lo so fare o meglio dovrei capire da dove si parte e poi provare, ma penso che mi ci vuole un po’ troppo tempo, si può soprassedere?
A meno che tu non abbia qualcosa di già pronto, ma non so di cosa sto parlando, quindi mi sa che ho appena scritto una fesseria… :.

lesto:
3. fai partire il tutto e immergi i sensori in un secchio di acqua normale, uno di acqua fredda, e uno di acqua calda, magari facendo una pausa di un secondo ogni centimetro che immergi.

Acqua fredda, cosa intendi? Pensi ad una temperatura in particolare o metto una bottiglia in frigo e basta?
Mantenerla costantemente fredda per il tempo della misurazione, mi riesce difficile, potrei però partire da 15° che è la temperatura attuale dell’acqua di rubinetto a casa mia e misurare anche a 22,5° e 30° i riscaldatori li ho..

lesto:
Poi visto che hai le possibilità, failo stesso esperimento usando differenti metodi di amplificazione

Vorrei usare il circuito che ho usato per ultimo con Michele, perché mi pare fino ad ora il più performante, se sei d’accordo e se mi dai qualche giorno, c’è pure Pasqua di mezzo, mi metto all’opera, questo è il circuito:

lesto:
per esempio ecco la mia IPOTESI:
la R di partenza dei sensori è differente, ma la variazione (quindi Rbase - Rletta) di R in base ai CM di acqua è uguale per tutti i sensori, e varia in modo piccolo (meno di 1/2mm di errore) in base alla temperatura.
se ciò è vero, basta dire all'utente accendi e prima di immergere il sensore attendi. Intanto tu leggi la temperatura (con apposito sensore), e quando vedi che è stabile, calcoli la Rbase in base alla temperatura, ed voilà hai calibrato il sensore. poi magari fai fare un paio di testdi prova, e se i conti non tornano di al povero utente di contattarci qui :slight_smile:

E tu vuoi che la piaga degli acquariofili si abbatta su questo forum!!! :grin:
Non vi basto già io e le mie cialtronate!!! :roll_eyes:

Grazie Riccardo

Per la prossima prova verifica il comportamento con il partitore /10, cioè usa una pull-down da 12k ed un trimmer da 4k7-5k, 120k sono tantini come pull-down, potrebbero crearti instabilità nelle letture.

Una volta ottenuto il risultato desiderato prova anche gli altri due sensori (anche quello "difettoso") e vedi se il trimmer è sufficiente (dovrebbe esserlo) per tararli correttamente, altrimenti prova ad aumentarlo, ma non penso ce ne sia bisogno.

A regime dovrai usare componentistica SERIA: tutte le R fisse dovranno essere del tipo a strato metallico di precisione (0,5%, max 1% di tolleranza), il trimmer dovrà essere del tipo a multigiri (10 o 20) in modo da permetterti una regolazione "fine" di elevata qualità.

Grazie dei consigli Michele, sei sempre preziosissimo!

Riccardo

Figurati, in verità mi aspetto, a cose finite, di vedermi arrivare a casa un paio di squali da mettere sul comodino di mia moglie ]:smiley:
Scherzi a parte sono curioso di vedere se troviamo una soluzione univoca per i tre sensori, credo di sì, e sarebbe tutto più semplice: se si riesce a far funzionare indifferentemente i due nuovi e quello iniziale, non penso possano esserci più problemi legati a questo sensore. :slight_smile:
Tornando alla questione del materiale di qualità, nello specifico è indispensabile usare quel tipo di R, sono molto meno sensibili alle variazioni di temperatura e molto più precise rispetto al valore nominale, e nel tuo caso, con le normali R al carbone e 5% di tolleranza, rischi di vanificare almeno parzialmente, la compensazione dell'RRef. Inoltre un trimmer multigiri ti permette una regolazione molto più semplice e precisa, ti basti pensare che con quello normale effettui in 270° di rotazione una variazione da 0 ohm a 47-50.000 ohm, mentre il multigiri da 10 ti permette una variazione lineare di circa 5.000/giro (360°!); ancora i trimmer normali in plastica hanno un notevole attrito tra il corpo fisso e la parte rotante, meglio vanno quelli della serie CERMET, ma nessun paragone con i multigiri che hanno la parte rotante in metallo.
Io ne sto usando uno nel mio progetto "in cantiere" proprio sull'ADC, nel mio caso devo fornire una tensione fissa e stabile di riferimento all'ADC in modo da ottenere una lettura che valorizza una variabile di compensazione. E' un'idea che ho avuto quando ho visto che per tarare la lettura ho dovuto programmare il micro venti volte in qualche minuto, visto che dovevo ogni volta variare di ±1 una variabile numerica nel range 0-1000. Così non devo nemmeno preoccuparmi di quale sia il valore della variabile, ruoto il trimmer fino a leggere il valore desiderato ed è fatta, con questo sistema sono arrivato ad una precisione di ±5Hz su 1GHz, buono no? :slight_smile:

riciweb:
in effetti hai ragione, mi sono riletto questa mattina eeee… :blush:
Ad ogni modo ho capito l’uso del trimmer e mi sembra già una soluzione.
E’ vero questi sensori sono costosi, ma non ho trovato nient’altro di simile in giro, solo sensori switch di ogni tipo: a galleggiante a infrarossi a ultrasuoni…, ma niente che legga in continuo come questi senza elettrodi in acqua, mi pare però che piano piano si stia arrivando a dama e con una precisione non indifferente, anche eccessiva in un acquario se vuoi, quindi grazie davvero per il tuo tempo, :slight_smile: ora è intervenuto anche Lesto, ho voglia di fare ed imparare i metodi di approccio, spero che continui a seguirmi.

misuri la resistenza dell'acqua... due fili di ferro a V (che non si tocchino però, e la parte più stretta della V verso l'alto), e hai replicato qualcosa di simile. Che però è influenzato dalla salinità dell'acuq, che però puoi calcolare con lo stesso sistema ma con i due fili paralleli ad una distanza fissa: così calcoli non solo l'atezza dell'acqua, ma pure la sua conducibilità elettrica!
:grin: :grin: :grin: :grin:

Acqua fredda, cosa intendi? Pensi ad una temperatura in particolare o metto una bottiglia in frigo e basta?
Mantenerla costantemente fredda per il tempo della misurazione, mi riesce difficile, potrei però partire da 15° che è la temperatura attuale dell’acqua di rubinetto a casa mia e misurare anche a 22,5° e 30° i riscaldatori li ho..

la temperatura deve essere nota, e non credo che per la durata dell'esperimento la temperatura cambi di più di un 1°, quindi errore accettabile. lo stesso vale con l'acqua calda.

Questo non lo so fare o meglio dovrei capire da dove si parte e poi provare, ma penso che mi ci vuole un po’ troppo tempo, si può soprassedere?
A meno che tu non abbia qualcosa di già pronto, ma non so di cosa sto parlando, quindi mi sa che ho appena scritto una fesseria…

si fa in 2 minuti ma ora son di fretta...

Ciao Riccardo, complimenti per tutto quello che hai messo in piedi.
Sto seguendo con interesse questo topic e avrei una domanda da farti riguardante la gestione delle luci:
potresti spiegarmi meglio a cosa servono le varie impostazioni di accensione/spegnimento, durata fading, inizio tramonto, fine alba.
Ti faccio questa domanda perchè mi pare che i dati richiesti siano troppi:

  • se mi chiedi l'orario di accensione e l'orario di fine alba mi viene da dire che la durata del fading sia inutile visto che è il tempo trasscorso tra l'ora di accensione e l'ora di fine alba;
  • se mi chiedi l'orario di accensione e la durata del fading mi viene da dire che l'ora di fine alba è inutile visto che sarebbe l'ora di accensione più la durata del fading.
    Sto sicuramente interpretando male i dati che richiedi ed è per questo che chiedo spiegazioni.

Grazie

Ciao Pespes,
Possono sembrati inutili, in realtà rendono più confortevole ed agevole l'uso del controller:
Viene chiesto di impostare la durata del fading, ad ogni variarione del dato, visualizzo la durata dell'illuminazione al massimo dell'intensità della luce, un'acquariofilo questo lo vuole sapere...
Avrai notato che calcolo (non chiedo) anche inizio tramonto altre che fine alba, sono tutti e due dati facilmete deducibili è vero, servono però anche a controllare che alba e tramonto non si accavallino, troverai nello sketch una funzione che si chiama lucepiena, se restituisce un valore inferiore a zero, i due fading si accavallano e lo sketch si blocchherebbe perchè sarebbe nella condizione di eseguire down e up fading contemporaneamente.
Spero di essere stato chiaro, altrimenti fatti risentire.

Ciao Riccardo

ok, grazie 1000, sei stato chiarissimo.
Mi ero perso che i dati di inizio tramonto e fina alba vengono solo calcolati e non fatti intrudurre dall'utente.

Ciao Riccardo,
scusa la intromissione, ti faccio innanzitutto i complimenti per quello che stai realizzando è veramente un bel progetto.
Stavo dando un occhiata al tuo codice e mi chiedevo se posso estrapolare una parte di questo da adattare al mio progetto.
Sto cercando di far accendere e spegnere una plafoniera (commerciale) a led 6 x 3W a una data ora con l'effetto "alba-tramonto" solo con Arduino e la shield RTC, il più semplice possibile senza display ne tasti.
Visto che sono proprio un neofita in questo mi risulta difficile riuscire ad effettaure la scrittura del codice da 0.
Ti ringrazio anticipatamente e complmenti ancora.
Saluti

Ciao berba_blu,
puoi fare quello che vuoi con il codice, l'ho pubblicato per condividerlo e non ha nessun copyright, tieni conto che non è scritto da un professionista, ma per quel poco che ti posso dire funziona...
Come adattarlo poi è affare tuo, ma da come dici dovrai modificare il codice in modo che la variabili che ti interessano le dichiari con valore già assegnato.
Le procedure che ti interessano sono Statoluci() e Gestionefotoperiodo().
La prima permette ad arduino di far partire i fotoperiodi delle linee luci sempre dal punto giusto sia in caso di aggiornamento dei dati che in caso di mancanza di corrente, grazie all'uso di una variabile flag che in setup o in caso di modifica viene aggiornata; la seconda, gestisce i fotopeiodi a regime.
Troverai che sono scritte in modo abbastanza elementare e con variabili dal nome molto esplicito, spero che questo ti faciliti l'interpretazione del tutto.

Ciao Riccardo

Ciao Riccardo ho trovato molto interessante il tuo progetto e ti faccio veramente tantissimi complimenti per tutto e sopratutto per averllo condiviso.
Mi sono deciso anche io di automatizzare il mio bestione di acquario marino e volevo seguire il tuo progetto spero che accetterai.
Ho già acquistato tutto il materiale che ai elencato e sono pronto per assemblare il tutto , ti volevo chiedere se mi potevi aiutare se ai a disposizione un (disegno semplice) uno schema completo dove posso vedere come collegare il tutto , sei riuscito a fare la pcb finale ?

Ciao Riccardo,
non sarai un professionista come dici però a me sembra che hai fatto un lavoro più che professionale :).
Cmq sto provando ad adattare parte del tuo codice ma con scarsissimi risultati, ad essere sincero ci capisco molto poco... Sono totalmente a zero per quanto riguarda la programmazione, sto provando a leggermi qualche guida di Arduino ma non è facile.
Mi chiedevo come fare a capire quale sono le variabile che mi interessano ed assegnarli un valore.
Al momento ho ottenuto questo codice (vedi allegato)
Non so se ho messo dentro tutte le procedure ... sicuramente qualcosa manca.
Se hai tempo di darmi un aiuto te ne sarei molto grato.
Ti ringrazio in anticipo
Grazie.

Massimiliano

Alba_tramonto_acquario_ADA_completo.ino (9.94 KB)

simon77blitz:
Ciao Riccardo ho trovato molto interessante il tuo progetto e ti faccio veramente tantissimi complimenti per tutto e sopratutto per averllo condiviso.
Mi sono deciso anche io di automatizzare il mio bestione di acquario marino e volevo seguire il tuo progetto spero che accetterai.
Ho già acquistato tutto il materiale che ai elencato e sono pronto per assemblare il tutto , ti volevo chiedere se mi potevi aiutare se ai a disposizione un (disegno semplice) uno schema completo dove posso vedere come collegare il tutto , sei riuscito a fare la pcb finale ?

Ciao simon77blitz,
Chiunque può seguire i miei i miei casini, senza chiedere nessun permesso, per metterti in pari a quanto fatto fino ad ora, la cosa migliore forse è replicare i collegamenti della mia bread, nel secondo post all'inizio di questo topic, trovi tutte le foto, mentre se vuoi anche lo schema in allegato eccoti quello provvisorio:

In quanto al PCB, ancora non ho fatto nulla, avrai capito che il progetto è tutt'ora un work in progress, non avrebbe senso per il momento ma ci arriverò.
Ad ogni modo benvenuto.
Più tardi guardo anche la MP e ti rispondo anche li, ora sono un pò di corsa

Riccardo.

berba_blu:
Ciao Riccardo,
non sarai un professionista come dici però a me sembra che hai fatto un lavoro più che professionale :).
Cmq sto provando ad adattare parte del tuo codice ma con scarsissimi risultati, ad essere sincero ci capisco molto poco... Sono totalmente a zero per quanto riguarda la programmazione, sto provando a leggermi qualche guida di Arduino ma non è facile.
Mi chiedevo come fare a capire quale sono le variabile che mi interessano ed assegnarli un valore.
Al momento ho ottenuto questo codice (vedi allegato)
Non so se ho messo dentro tutte le procedure ... sicuramente qualcosa manca.
Se hai tempo di darmi un aiuto te ne sarei molto grato.
Ti ringrazio in anticipo
Grazie.
Massimiliano

Sul lavoro professionale, al posto tuo non mi sbilancerei così :astonished:
Sulla programmazione, invece ti invito ad insistere e perseverare, il metodo che uso io con il software degli altri è un pò antiquato, ma per quel principiante che sono funziona,
in pratica prendo carta e penna, individuo tutte le variabili, le incolonno e letteralmente leggo le righe delle procedure ed aggiorno le variabili per vedere cosa succede...
Googlare è sicuramente una buona cosa ed un buon libro fa altrettanto, la pratica poi è fondamentale, un semplice copia incolla invece non ti fa crescere, ad ogni modo più tardi do un'occhio a quello che hai fatto e vedo di darti una mano, ma ti prego prova ad impegnarti un pochino di più, non è che non voglia aiutarti, è che ho così poco tempo da dedicare al progetto che spenderne una parte per altri progetti mi riesce difficile, in fondo ho pubblicato tutto quello che ho fatto proprio perché venisse usato e saccheggiato da chiunque lo voglia...
A più tardi. :slight_smile:

Riccardo.

berba_blu:
Mi chiedevo come fare a capire quale sono le variabile che mi interessano ed assegnarli un valore.
Al momento ho ottenuto questo codice (vedi allegato)
Non so se ho messo dentro tutte le procedure ... sicuramente qualcosa manca.
Se hai tempo di darmi un aiuto te ne sarei molto grato.

Molto velocemente, ho aggiornato quello che hai fatto, do per scontato che tu abbia l'RTC
Così come è il codice che di suo all'origine è fin troppo elementare, rimane sporco dei comendi che ad esempio riguardano anche la scheda relè, a te la pulitura ]:smiley:

Leggi i commenti a riga 48 e 234...

Dovrebbe funzionare...

Ciao Riccardo

Alba_tramonto_acquario_ADA_completo_V2.ino (10.3 KB)

Ciao Riccardo,
hai perfettamente ragione sul fatto di impegnarsi un po di più, però sinceramente ci ho provato ma non avendo neanche una minima base di programmazione è veramente dura.
Magari facendo un bel corso di Arduino la cosa potrebbe cambiare un po.
Come ti dicevo ho trovato dei manuali in rete e sto cercando più informazioni possibili per vedere di capirci un po di più quando apro un codice.
Non voglio approfittare del tuo tempo e della tua disponibilità immagino che il tuo progetto sia di persè molto impegnativo, quindi non c'è problema se non riesci a dedicarmi tempo, veramente lo capisco e non pretendo che un'altra persona scriva il codice al posto mio.
Ti ringrazio ancora una volta per l'aiuto che mi hai dato non sono ancora riuscito a provarlo appena lo faccio ti dico il risultato.
Grazie mille
Ciao

Massimiliano

Tranquillo, ti ho aiutato volentieri, solo aspetto di saper se l'aiuto è stato efficace..

Ciao Riccardo

Ciao,
ho avuto bisogno di un pò di tempo, per raccogliere i dati, ho avuto problemi a mantenere le temperature, ma alla fine ho rilevato le misure per tutti e tre i sensori, S1 e S2 sono quelli che mi hanno rispedito in sostituzione di S3 che alla fine, non si è comportato poi così male, malgrado sia completamente fuori dai paramentri del data sheet.
Ho usato lo schema che segue:

Ho vvoluto abbassare le r del partitore, per poter usare un multigiri (20) da 2k ed aumentare la finezza delle regolazioni tutte le altre r sono con precisione 1% metalliche, solo che il segnale non è poi così stabile, come vedrete dalle tabelle, le letture a tutti i livelli oscillano secondo me un pochino troppo e per quello che ho visto dipende dall'Amp-op, forse ce ne sono che hanno un'uscita un pochino più stabile, solo che io non ne conosco.
Lo sketch usato è questo:

byte levelsensor = A0; 

void setup() {
   Serial.begin(9600);
   analogReference(INTERNAL);
}

void loop() {

  Serial.println(analogRead(levelsensor));
  delay(50);
            
}

Tutte le tabelle sono qui:

Ho calcolato solo per ogni tabella le medie lette, se dovo fare altro ditemi.

Grazie per l'aiuto.

Riccardo.