staccare batteria sotto una certa soglia

ragazzi, ho bisogno del vs aiuto!
sto completando un data logger, alimentato con una batteria lipo, da 3 celle, quindi 3,7x3=11,1 v nominali. attualmente misuro periodicamente la tensione della batteria e la stacco manualmente, quando arriva a 9 v, per non rovinarla. mi chiedo, però, se si possa farlo in maniera automatica. ho letto in rete che esistono dei dispositivi (chiamati ESC) usati nei modelli radiocomandati, che staccano la batteria sotto la soglia, ma non capisco quale modello dovrei usare.
in alternativa, mi chiedevo se posso monitorare la batteria con arduino stesso (già che c'è!) e farlo "autospegnersi"?!?

arduale:
quando arriva a 9 v, per non rovinarla.

9V, sotto carico, sei già in zona rischio, meglio se stacchi quando arriva a 3.3V per cella, ovvero 9.9V, in pratica hai consumato circa il 95% dell'energia disponibile.
Lo stacco puoi farlo con un mos canale N, in serie alla batteria, controllato da Arduino, quando la tensione scende a 9.9V togli la polarizzazione al gate e l'apparato si spegne.
Gli ESC si usano per pilotare i motori, DC o Brushless, non tutti hanno la protezione contro la scarica massima della batterie, comunque staccano solo il motore e non l'eventuale uscita a 5V (BEC) se ne sono dotati.

Ciao, puoi leggere la tensione e far andare arduino a dormire quando scende sotto la tensione desiderata utilizzando un partitore di tensione tra la tensione da misurare ed un ingresso analogico di arduino.

Stefano

grazie ad entrambi!
mi sembra che il partitore sia più semplice.
potrebbero andar bene i seguenti valori:

r1=1680 ohm
r2=1000 ohm

così se la bgatteria è piena, dovrei avere sul pin analogico 4.7 v.
corretto?

EDIT: aggiungo che mi piacerebbe capire meglio il discorso del mosfet canale n… ho provato a cercare info, ma sono veramente messo male a riguardo! avreste un link del componente da comprare?

Per la parte di "misura" puoi usare una resistenza da 10K tra l'alimentazione (Vbatt) ed il pin analogico + un'altra da 4.7k tra il pin analogico e massa. La tensione corrispondente sul pin di arduino sarà Vbatt* 4700/(10000+4700).
Per mettere Arduino in stand-by: http://elettroportale.altervista.org/Arduinosleep.html

Un interessante articolo: http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/

La soluzione di Astro, essendo il mosfet (es. irfd1z3) posto in serie all'alimentazione di Arduino, consente di risparmiare anche la corrente consumata dallo stabilizzatore interno.

Stefano

Dipende dall'assorbimento complessivo, ma per un datalogger e basta direi che un qualsiasi mosfet logic-level possa andare bene ... giusto come esempio, IRL3202 , 20V 48A massimi, RdsON 0.016 ohm, logic level, relativamente poco costoso, intorno all'euro e mezzo a pezzo ...

EDIT: come consiglio sempre in questi casi, scegliete dei mosfet con una corrente massima molto superiore a quella che vi serve commutare ... non per la corrente in se, ma perche' piu e' alta, piu e' bassa la RdsON (resistenza interna del componente in stato di piena conduzione), e questo si traduce in minor caduta di tensione, minore dissipazione termica e maggior efficenza :wink:

ho cercato il mosfet IRL3202 su RS, ma non lo vendono più.
nemmeno sulla baia, solo dalla cina, ma vorrei prenderlo in italia.

il mio datalogger consuma 310 mA, alimentato con batteria da 12V (c'è una pompa per il ricircolo dell'aria, che da sola consuma circa 200 mA...).

Se hai la mainboard di un pc portatile “disponibile” puoi trovare gli OA4468 o equivalenti che dovrebbero essere uno spettacolo.

AO4468.pdf (316 KB)

arduale:
il mio datalogger consuma 310 mA, alimentato con batteria da 12V (c'è una pompa per il ricircolo dell'aria, che da sola consuma circa 200 mA...).

Prendi un FDN338, è un canale P logic level da 1.6A, Rdson 0.11 ohm, lo metti in serie al positivo invece che al negativo, costa poco ed è disponibile da RS, la caduta di tensione a 300 mA è meno di 20 mV.
Per far accendere il tutto basta che metti un pulsante in parallelo tra Drain e Source, non appena Arduino polarizza il gate il dispositivo rimane alimentato fino a che non viene depolarizzato.

Dimenticavo, per il canale P devi prevedere una R di pullup da 100k e va polarizzato portando il pin a 0 logico, a 1 logico per spegnere il mos, in serie al pin che controlla il gate mettici una R da 220 ohm.

astrobeed:
Prendi un FDN338, è un canale P logic level da 1.6A, Rdson 0.11 ohm, lo metti in serie al positivo invece che al negativo...

ok, l'ho appena ordinato, assieme ad altro materiale che dovevo prendere su RS!

adesso sto studiando e cercando di capire quello che mi hai spiegato, nei prox giorni ti chiederò conferma, prima di assemblare il tutto!

grazie!

astrobeed:
Dimenticavo, per il canale P devi prevedere una R di pullup da 100k e va polarizzato portando il pin a 0 logico, a 1 logico per spegnere il mos, in serie al pin che controlla il gate mettici una R da 220 ohm.

ehm... non è che mi daresti uno schemino per il collegamento?!?
non mi è molto chiaro il funzionamento del mosfet... a cosa serve il pulsante?

Devi collegare il DRAIN del mos al positivo dell'alimentazione (batteria) il SOURCE all'apparato da alimentare, il GATE lo devi collegare con una resistenza da 100k al positivo dell'alimentazione e tramite una R da 220 ohm ad un pin di Arduino che devi settare LOW, come prima cosa da fare nella setup(), per tenere il GATE polarizzato in modo che il canale del MOS viene chiuso e permette il fluire della corrente nell'apparato.
Per spegnere l'apparato basta che setti il pin di Arduino a HIGH, il mos apre il canale e l'alimentazione cessa.
Il pulsante in parallelo tra DRAIN e SOURCE, in pratica li mette in corto, ti serve per accendere il dispositivo, chiudendolo alimenti il tutto in modo che Arduino può settare il pin del GATE a LOW, da questo momento in poi il MOS va in conduzione.

grazie, ora mi è molto più chiaro!

ultima cosa: in pratica il pulsante mi serve dopo un eventuale autospegnimento, per permettere al mos di condurre nuovamente la corrente? ho capito bene?!?
se, invece, il sistema non va mai in autospegnimento, allora non lo dovrò usare, vero?

Si esatto, il pulsante "cortocircuita il mos così permette ad arduino di partire e polarizzare il mos per dare alimentazione a tutto (semprechè la batteria sia carica).

Se invece hai bisogno di un sistema che stacchi quando lo comandi, ma sia acceso quando connetti l'alimentazione, senza premere pulsanti, devi prevedere un circuito leggermente differente ... ad esempio, il pin che mantiene acceso il mosfet collegato tramite un diodo in serie alla resistenza, ed allo stesso tempo un condensatore che all'accensione ti mantenga il gate basso per un tempo sufficente ad arduino per impostare il pin ... o meglio ancora il tutto comandato da un transistor NPN in open-collector, se la tensione che devi interrompere e' piu alta dei 5V dell'alimentazione della logica (se usi un canale P)

Non vorrei complicare troppo, quindi va bene l’opzione col pulsante. Tanto devo usarlo solo quando scarico completamente la batteria e solo al successivo avvio per un paio di secondi, non è grave!
Invece, rileggendo tutti i vostri post, mi sfugge una cosa: per decidere quando dare il comando al mos di staccare, devo fare comunque il partitore per misurare la tensione della batteria, giusto?

si certo !

Grazie a tutti, non vedo l'ora che arrivino i mos, per provare il tutto!

ecco, ho buttato giù uno schema, potreste dirmi se ho capito bene le vostre indicazioni?
grazie!