Accensione tramite pin analogico??

salve ragazzi,
vi scrivo perche mi è successo una cosa strana…
Tramite pin analagico devo rilevare la tensione di una batteria 3,7 volt al litio.
La misurazione va bene, pero’ appena spengo arduino (alimentato tramite la sua porta usb), esso resta acceso proprio perchè al suo pin analogico è collegato il positivo della batteria.
E’ normale? come posso risolvere il problema?

Si è normale che succede, però non è una cosa buona, anzi rischi di danneggiare il pin analogico. In pratica succede che Arduino si alimenta tramite il diodo di clamping sul lato positivo, sono presenti su tutti i pin, il cui scopo è deviare extratensioni su i pin verso l'alimentazione, fanno da protezione. Se non è presente l'alimentazione e su un qualunque pin è presente una tensione maggiore di 0.5 V la corrente comincia a fluire in Arduino attraverso il diodo di clamping e se la tensione è abbastanza alta Arduino rimane acceso. Su i pin di un micro non deve mai essere presente una tensione quando questo non è alimentato, per risolvere devi disaccoppiare la batteria dal pin analogico quando Arduino non è alimentato, per farlo basta usare un mos che fa "interruttore" tra la batteria e il pin, se Arduino è acceso polarizzi il gate del mos, pertanto il pin analogico viene messo in contatto con la batteria, se Arduino è spento il mos non conduce e il pin è isolato. Un modo più semplice, ma non ottimale, è mettere in serie tra pin e batteria una resistenza da almeno 47k, per ridurre a pochi uA la corrente che può scorrere, però così facendo aumenti il rumore sulla lettura e devi fare almeno 10 letture consecutive prima di ottenere una lettura stabile per via dell'elevata impedenza vista dal ADC, il valore ottimale deve essere minore di 10k.

2 problemi: Non é buono per arduino perché rischi di danneggiarlo Scarichi la batteria in modo incontrollato anche sottoscaricarla che una LiPo Ti prende molto male.

Ciao Uwe

Fai come dice Astro, un banale TP2104 (o TP0606, o qualsiasi altro piccolo mosfet logic-level per segnali in TO92) ed un paio di resistenze e risolvi il problema ... se poi vuoi/puoi usare componenti SMD, c'e' ancora piu scelta ...

perfetto ragazzi, grazie a tutti per le spiegazioni!!!

ragazzi, posso fare lo stesso lavoro con un bjt al posto del mosfet? potete illustrarmi una schema in entrambi i casi? grazie

Il BJT lo sconsiglierei, perche’ anche se lo usassi come “interruttore in serie”, avresti una caduta di tensione causata proprio dalla sua struttura … con il mosfet invece in fase di ON sarebbe solo come avere una resistenza da pochi ohm (la RdsON interna del mos) in serie, cosa che per rilevare una tensione inferiore a quella di alimentazione di arduino, non servendo un partitore, non influirebbe, ed anche nel caso dovessi usare un partitore, basterebbe tenerla in considerazione nei calcoli …

EDIT: dimenticavo …

batt-mos.png

Lo puoi collegare cosi … il pin digitale p2 lo usi per “accendere” il mosfet (mandandolo basso, ovviamente), cosi colleghi la batteria solo quando la leggi, ed il pin analogico p1 e’ ovviamente quello con cui leggi il valore della tensione … naturalmente la tensione della batteria, per poterlo collegare cosi, senza partitore, dovra’ sempre essere minore di quella dell’alimentazione di arduino …

grazie etemenanki, ho citato i bjt perche li ho gia disponibili e li monterei subito....per la caduta di tensione ti riferisci alla Vce? se faccio lavorare il bjt in saturazione posso supporla pari a 0.3volt, e tenerne conto nello sketch giusto? non ho ben chiaro solo dove collegare il pin analogico...