Lettura analogica cambia in funzione della tensione di alimentazione

Ciao ragazzi,
ho notato che, al variare della tensione di alimentazione(alimento un'arduino nano con un pacco batteria da 4,8v NiMh), ho letture diverse su una lettura analogica.... mi è capitato di sostituire un pacco batterie scarico con uno carico e la variazione è stata netta...

Da quello che ho capito,riassumendo, è che arduino per effettuare una misurazione analogica deve avere la tensione in entrata stabile(la usa per il confronto) e se questa varia, varia anche la misura...

immagino che oltre alla differenza netta tra un pacco batterie carico e uno diverdo scarico, questo comportamento ci sia anche al semplice diminuire della tensione dello stesso pacco, solo che magari non te ne rendi conto....

come si risolve questa situazione? il progetto deve essere alimentato a batterie e con pacchi batteria diversi....

la lettura analogica la effetto usando un sensore capacitivo per il suolo, questo

e uso un arduino nano

grazie

ovvio che cambi
ma non serve stabilizzare la tensione di alimentazione di Arduine, o meglio, non è necessario
basta stabilizzare la tensione di riferimento del ADC interno
e questo si fa guardando il reference di Arduino alla voce analogreference

occhio molto a questo che ti dico:
cambiando il riferimento SERVE di cambiare (ricalcolare) il partitore di tensione all'ingresso
non fare come quello che un mese fa aveva i partitori ampiamente fuori scala e aveva "sempre" misure errate MA non ha mai ricalcolato i partitori, lamentandosi poi con noi

Sì, lo so'
io e mio fratello siamo caini, ma lo abbiamo sempre ammesso

Grazie!!! Si, infatti avevo capito che posso impostare il riferimento interno dell'adc a 1.1v con analogReference(INTERNAL)... ma quello cche non capisco il partitore dove cavolo lo devo collegare?

Io,da quello che ho capito, va messo all'ingresso del sensore su A0(nel mio caso)

Chiarito dove devo metterlo, Per farmi i calcoli ci sono giude o riferimenti che mi possono essere utili?

Grazie mille

Non trovo risposta in rete alla mia domanda... il partitore di tensione va collegato sull'ingresso analogico?

Poi ho fatto qualche simulazione per come scendere dai 5v a circa 1.1... e dovrebbe essere cosi:

R1: 10
R2: 3

Dai 5v scendo 1.15v.... potrebbe andare?

Allora, se usi il riferimento interno a 1.1V vuol dire che sui pin analogici NON puoi applicare più di 1.1V poiché, poi, ti da sempre il valore massimo, qualsiasi cosa tu applichi (... e, oltre i 5V, bruci proprio il pin).

Quindi, tenendo anche conto che l'impedenza in ingresso su un pin analogico deve essere attorno ai 10KΩ, con R1= 6800Ω ed R2 = 1800Ω hai che, con 5V in ingresso, ti trovi 1.05V in uscita che puoi dare all'ingresso analogico scelto.

Guglielmo

Ciao Gugliemo.

Grazie mille!! :slight_smile: quindi riassunendo:

I 5v di del sensore li collego ai 5v di arduino
Il gnd del sensore lo collego al gnd di arduino
Il segnale del sensore lo collego alle due resistenze in serie e poi al pin A0 di arduino

Tutto corretto?

Il segnale che devi partizionare è quello di uscita del sensore capacitivo, che stando a quanto riportato nella descrizione varia nel range 0-3Vdc

Quindi ricapitolando, sull'ingresso analogico dovrai avere massimo 1.1V quando la tensione del segnale è di 3V

Usando i valori delle resistenze standard più comuni che si trovano in commercio (tabella E12, tolleranza 10%), la combinazione che si avvicina di più è 10K per R2 e 18K per R1 (si ottiene un valore di tensione massimo di 1.07V)

Per valori più precisi, devi usare delle resistenze con tolleranze minori e relative tabelle più "popolate" da valori intermedi.

Cavolo hai ragione... dice 3v com output massimo... porca zozza... convinto nell'aver letto 5v.... scusate...

Per i collegamenti? Sono giusti come dicevo?

I 5v di del sensore li collego ai 5v di arduino
Il gnd del sensore lo collego al gnd di arduino
Il segnale del sensore lo collego alle due resistenze in serie e poi al pin A0 di arduino

NO ... così:

Guglielmo

Ok, quindi i 5v vanno diretti e il segnale del sensore e il gnd vanno ad arduino dopo il partitore... grazie!!!

Confermate:

:+1:

L'unico mio dubbio è questo: come si comporta il sensore al variare della tensione di alimentazione?
Quel tipo di sensore dovrebbe essere abbastanza insensibile a questa problematica a giudicare dallo schema elettrico, però non li ho mai provati di persona.

Grazie!!

Guarda il mio primo post, varia abbastanza...

Ragazzi nn va... facendo due misure.... prima del partitore con partitore montati con sensore asciutto ho tra segnale e gnd 1.35v, con sensore bagnato ho 0,93v... dopo il partitore ottengo:sensore asciutto 73 mv, bagnato 47,4mv.... hanno senso? Come posso capire se è tutto corretto?

Ma dedicare un po' di tempo per andarsi a studiare come funziona il partitore di tensione no?

Hai due resistenze ed il partitore riduce proporzionalmente alla seguente formula: R2 / (R1 + R2)

Quindi ... calcolati il rapporto (in funzione delle resistenze che hai usato) e applicalo alle tensioni in ingresso per avere il valore teorico in uscita!

Guglielmo

Grazie Guglielmo per il link

Diciamo che dovremmo esserci... il calcolo dovrebbe esere quindi:

R2 / (R1 + R2)
18/ (10+ 18) = 0,64

Sensore asciutto: se in entrata ho 1,35v, in uscita dovrei avere 1,35-0,64=0,71v
Sensore bagnato: se in entrata ho 0,93v, in uscita dovrei avere 0,93-0,64=0,29v

Sono corretti?
Una cosa che ho notato, prima del partitore i valori analogici del sensore asciutto stava intorno ai 700 e il bagnato intorno ai 400... con il partitore sto più o meno come se ci fosse un fattore 10.... quindi 70 asciutto e 40 bagnato... questa differenza ci può stare? Torna?

Appena possibile faccio misurazioni e vi faccio sapere...

Le resistenze sono troppo basse, fai scorrere troppa corrente ... moltiplica almeno per un fattore 100 ... 1800 e 1000.

Se metti R1 = 8200Ω e R2 = 4700Ω hai, con 3.0V in ingresso, 1.09V e non carichi il sensore (proprzionalità 1 : 0.3643).

Guglielmo

Se colleghi il pin Aref ai 3.3 Volt, e conseguentemente usi analogReference(EXTERNAL) non hai bisogno di alcun partitore, ed i 3.3 Volt rimangono sufficientemente stabili anche al variare della tensione della batteria.

Ciao, Ale.

Ho provato su breadboard... ma apparte i valori non stabili(cosa che avevo anche con i valori di 18k e 10k che avevo saldato su pcb) ottengo una scala molto ridotta... tipo 200 asciutto e 120 bagnato

Ok grazie, ci provo e faccio sapere