Livello di Carica alimentazione

Buongiorno a tutti! :slight_smile:

Il mio quesito è il seguente: Ho una batteria da 12 volt (più precisamente [u]questa[/u]) con cui alimento il mio Arduino, grazie a questo convertitore da 12V a 5V.

Come vedete il convertitore ha i due cavi da attaccare alla batteria e poi sfocia in un attacco USB, da cui inserisco il cavo per alimentare direttamente l'Arduino.

Ora vi chiedo: c'è un modo per sapere il livello di carica della batteria che sta alimentando l'Arduino?
Vorrei implementare una funzione che legga il livello della batteria e che magari faccia qualcosa quando raggiunge una certa soglia (accenda un led, un segnale sonoro ecc..).

Ho visto Online un modo per farlo ma sarebbe necessario collegare la batteria a un pin Analogico per leggerne il valore, ma con il convertitore vado direttamente ad attaccare il cavo USB all'Arduino..

Come si potrebbe fare?

Prendi il 12V della batteria (indipendentemente dal fatto che dopo la colleghi anche al convertitore a 5V), lo mandi ad un partitore resistivo in modo da ottenere, a batteria completamente carica (... che può arrivare anche oltre i 14V), un massimo di 5V e lo mandi ad un ingresso analogico dove leggi, facendo i dovuti rapporti, la tensione della batteria.

Guglielmo

Ci sono 2 possibilitá:

  • La tensione del accumulatore si abbassa quando é scarico questo non in modo lineare ma molto quando incomincia ad essere vuoto.
  • misurare la corrente che viene prelevata e calcolare la caica scariacata. Questo funziona con tutti i tipi di accumulatore / batteria e da anche la possibilitá di prevedere in grande linee il tmepo residuo.

esempio https://jumpjack.files.wordpress.com/2013/02/a123-alm12v7-drop-in.jpg

Ciao Uwe

Ho provato con il partitore di tensione come ha suggerito Guglielmo..

Hoseguito questa guida online, adattando ovviamente le resistenze.

Ho messo una R1 di 20Kohm e una R2 di 12Kohm. In base alla formula del partitore dovrebbe esserci un Vout di 4,5V, giusto o sbaglio?

Caricando però quello sketch che ho trovato online, senza collegare niente al pin analogico 0, mi segna una Tensione che si aggira sui 4V. appena collego il cavo ad A0, il monitor segna una tensione di circa 12V.

Dove ho sbagliato?

[EDIT] Risolto utilizzando lo sketch "ReadAnalogVoltage" degli esempi dell'IDE invece che lo sketch della guida. Ora segna il valore giusto.

C'è un modo per convertire questo valore in una percentuale di carica batteria residua, o qualcosa di simile?
Scusate ma non sono di certo una cima in elettronica..

Christiannn:
Caricando però quello sketch che ho trovato online, senza collegare niente al pin analogico 0, mi segna una Tensione che si aggira sui 4V

... quello è l'errore ... nessun pin di Arduino (digitale o analogico) può essere letto se lasciato flottante dato che, a causa dell'alta impedenza d'ingresso, rileva anche ... "il passaggio di una mosca" ... dando valori senza senso :smiley: :smiley: :smiley:

Guglielmo

Christiannn:
C'è un modo per convertire questo valore in una percentuale di carica batteria residua, o qualcosa di simile?
Scusate ma non sono di certo una cima in elettronica..

Come ti ha correttamente spiegato Uwe:

uwefed:

  • La tensione del accumulatore si abbassa quando é scarico questo non in modo lineare ma molto quando incomincia ad essere vuoto.

Quindi, se vuoi una vera indicazione abbastanza precisa del tempo rimanente, devi fare come lui ti ha suggerito nel suo secondo punto:

uwefed:

  • misurare la corrente che viene prelevata e calcolare la carica scaricata. Questo funziona con tutti i tipi di accumulatore / batteria e da anche la possibilità di prevedere in grande linee il tempo residuo.

Guglielmo

Perfetto, e vi ringrazio tantissimo delle vostre risposte, ma il prblema è che non credo di avere capito bene come attuare il punto spiegato da Uwe :roll_eyes:

Sono riuscito con il partitore di tensione a far passare i 5V alpin analogico. Come faccio a capire quando la batteria sta raggiungendo una soglia critica?

Scusatemi ancora :cold_sweat:

Allora, o t'accontenti di sapere che quando la batteria arriva attorno agli 11.5V è ora di ricaricarla, o, se vuoi fare misure precise, devi costruire un circuito che misura la "corrente" assorbita (quindi un circuito che metti in serie all'alimentazione a 12V e legge quanto mA assorbi) e, conoscendo la capacità in Ah della batteria, calcolare, in funzione dell'assorbimento, la durata della batteria.

Guglielmo

P.S.: Hai visto le curve di scarica che ti ha linkato Uwe ?
P.P.S: Qui un ESEMPIO di come misurare la corrente con Arduino (... è un esempio che poi devi adattare alle tue esigenze)

Leggendo vecchi post del forum ne ho trovato uno simile a quello che vorrei fare io, e un utente ha consigliato di usare una map per calcolare grossomodo la durata della batteria (in percentuale).

Non potrebbe essere una soluzione?

Se ad esempio so che, col partitore di tensione che ho creato, il massimo voltaggio che passo ad A0 è 5V, e il minimo (cioè la soglia con cui Arduino non sarebbe più alimentato) è, ad esempio, 4.5V, poteri fare una cosa del genere:

float voltage = sensorValue * (5.0 / 1023.0);
  int voltage2 = voltage * 100;
  float perc = map(voltage2, 450, 500, 0, 100);

Potrebbe essere una soluzione o il calcolo verrebbe errato?

Mah ... l'hai visto o no il grafico ? :o L'hai capita o no la curva di scarica ? :o

Perché, o ti basta sapere che la batteria è quasi scarica e, come ti è già stato detto, è sufficiente il partitore e decidere un valore minimo, es. 11.8V o, se vuoi dati precisi, NON c'è alternativa a quanti ti è stato spiegato !

Guglielmo

Ecco, guarda questa curva per batterie ad acido 12V:

... come vedi resta abbastanza stabile fino al 50% poi va giù in modo del tutto NON lineare !

Guglielmo

Capisco.. Scusami, non avevo capito non ci fosse alternativa :confused:

Credevo che con la map si sarebbe risolto tutto in maniera molto più semplice senza troppi calcoli!

Va bene allora, grazie ancora a tutti :slight_smile: