Se sei già registrato           oppure    

Orario: 05/05/2024 22:29:38  

 

Energia Alternativa ed Energia Fai Da Te > Solare Fotovoltaico

VISUALIZZA L'ALBUM

Pagine: (39)   1   2   3   4   5   6   7   8   [9]   10   11   12   13   14   15   16   17   18   19   20  ...>    (Ultimo Msg)


Partitore di tensione per controllo batterie, APP per Android
FinePagina

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 27/03/2017 13:04:16

Come vediamo i dati di Riccardo io ho solo la seriale



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2915

Stato:



Inviato il: 27/03/2017 19:59:21

CITAZIONE (BellaEli, 27/03/2017 02:32:29 ) Discussione.php?214515&8#MSG135

CITAZIONE (Vincent, 26/03/2017 10:17:54 ) Discussione.php?214515&7#MSG110

Comunque x 24 diciamo l algoritmo e se ho capito
Batteria(n)-sommabatterie precedenti tranne b1 e b24 dove b1=v1 e b24=b24-b23
Giusto o ho capito male

@Elix
Quel codice lo avevo pensato in un ciclo for con i
Adesso mi viene in mente di usare la ricorsione con una funzione dipendente da i sempre con 1 ciclo + 1 da 1 a b attuale-1 se<25

Quindi v1 e v24 fissi e apprlichiamo da v2 a v23 il ciclo
E giusto o sto ancora dormendo???

Onestamente non so se la schedina D1 ha le risorse per gestire correttamente un algoritmo ricorsivo in ogni caso non lo userei: generalmente un algoritmo ricorsivo rende il codice poco lineare e comprensibile, si utilizza nei casi in cui il suo utilizzo semplifica drasticamente le cose, non per eliminare un semplice ciclo if

Per quanto riguarda la storia della tensione letta non mi è ancora ben chiaro come funzionino le cose...

Partiamo dallo schema postato da Riccardo:

http://www.energialternativa.info/Public/NewForum/ForumEA/Q/Schema%20elettrico.JPG



L'ADC del D1 accetta in ingresso una tensione di max 3,2 volt e noi ci troviamo nella condizione di dover leggere tensioni fino a 60-65 Volt.
Quindi dobbiamo per forza di cose utilizzare un partitore di tensione.

Ora ipotizziamo che ci siano 10 celle da 2 volt e che tutte siano esattamente a 2 volt.

Per diminuire l'errore di lettura dobbiamo cercare di far si che all'ADC arrivi una tensione che sia almeno maggiore del 50% del fondoscala e, in questo caso, avendo celle da 2 Volt, mandiamo la tensione della cella direttamente all'ADC per la prima batteria, dimezzata per la seconda e così via.

Settiamo tutti i trimmer per far si che i 10 ingressi del multiplexer siano tutti esattamente a 2 volt.
Quindi sull'ADC avremo:
V1 = 2,00 V
V2 = 2,00 V
V3 = 2,00 V
...
V10 = 2,00 V

Ipotizziamo che il nostro algoritmo di calcolo prenda il valore letto e li invii direttamente a video, senza preoccuparsi di fare alcun calcolo, quindi avremo:
V1 = V1 = 2,00 V
V1 = V2 = 2,00 V
V1 = V3 = 2,00 V
...
V1 = V10 = 2,00 V

Ora ipotizziamo che la cella 1 scenda a 1 Volt, cosa succederà ???
Sull'ADC e a video (poichè i valori vengono direttamente inviati) avremo::
V1 = 1,00 V
V2 = 1,50 V
V3 = 1,67 V
V4 = 1,75 V
V5 = 1,80 V
V6 = 1,83 V
V7 = 1,86 V
V8 = 1,88 V
V9 = 1,89 V
V10 = 1,90 V

Perchè succede questo ? Perchè il partitore della batteria 10 leggerà la tensione di 19 volt che divisa per 10 fa esattamente 1,9 Volt.
Tuttavia quello non è il valore della cella, allora come risolviamo ???

Proviamo a modificare l'algoritmo che esegue il calcolo della tensione come segue:
V1 = V1 = 1,00 V;
V2 = (V2 * NumeroCella) - V1 = (1,5 * 2) - 1 = 3 - 1 = 2,00 Volt
V3 = (V3 * NumeroCella) - V2_Calcolata - V1 = (1,67 * 3) - 2 - 1 = 5 - 2 - 1 = 2,00 Volt
V4 = (V4 * NumeroCella) - V3_Calcolata - V2_Calcolata - V1 = (1,75 * 4) - 2 - 2 - 1 = 7 - 2 - 2 - 1 = 2,00 V

Si, così sembra funzionare...

Ma funziona davvero in tutte le circostanze ? Proviamo... ipotizziamo 4 celle da 12 Volt in cui settiamo il partitore per far si che a 12 volt abbiamo 2 volt sull'ADC. Ipotizziamo celle a 12 volt esatti, l'ADC leggerà:
V1 = 2,00 V
V2 = 2,00 V
V3 = 2,00 V
V4 = 2,00 V

Prima di mandare l'otput a video moltiplicheremo tale valore per 6, quindi a video avremo:
V1 = 12,00 V
V2 = 12,00 V
V3 = 12,00 V
V4 = 12,00 V

Ora ipotizziamo che la prima cella di colpo passi a 6 Volt, vediamo se il mio metodo ci prende, sull'ADC abbiamo:
V1 = 1,00 V
V2 = 1,50 V
V3 = 1,67 V
V4 = 1,75 V

Calcolo:
V1 = V1 = 1,00 Volt
V2 = (V2 * NumeroCella) - V1 = (1,5 * 2) - 1 = 3 - 1 = 2,00 Volt
V3 = Vabbeh, come sopra...
V4 = idem

Ora ci tocca solo moltiplicare i valori per il coefficiente 6 e inviare tutto a video, quindi:
V1 = V1 * 6 = 1 * 6 = 6,00 V
V1 = V2 * 6 = 2 * 6 = 12,00 V
V1 = V3 * 6 = 2 * 6 = 12,00 V
V1 = V4 * 6 = 2 * 6 = 12,00 V

Quindi questo metodo di calcolo dovrebbe essere corretto... confermate ???

Elix

Bella Eli, è proprio per i problemi che descrivi che ho pensato al calcolo per differenza.Il partitore lavora da circa 1 volt al massimo 3v con 60v di ingresso.Inizialmente ho usato un Arduino uno e mega per le prime prove,e avevo pensato di inserire un sketch variabile in funzione delle batterie,andando ad utilizzare il valore di riferimento interno e esterno per migliorare la precisione della misura.Poi da prove pratiche mi sembra che non sia necessario e allora per sono passato al D1 per il basso costo e il WIFI.
Oggi ho acquistato altri 4 trimmer multigiri cosi lo provo sulle batterie da 6v



---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

Il_Salentino
GigaWatt


Gruppo:Utente
Messaggi:919

Stato:



Inviato il: 27/03/2017 20:01:22

Riccardo @ Vincent, ho seguito tutta la discussione, ma non ho capito come ed in che modo utilizzare quello che avete realizzato. Ho capito che si tratta di uno strumento che mediante wifi comunica i dati delle batterie, ma a chi trasmette in wifi i dati il D1 mini allo smartphone o al pc?
Grazie per la risposta che vorrete darmi. Ciao Franco



---------------
1 inverter PIP 5048MST + 12 pannelli TIANWEI 230Wp + 18 pannelli amorfi da 75Wp + 28 pacchi da 200 celle 18650 litio 600Ah
1 inverter PIP 5048MSD + 3 pannelli junko 255 Wp + 3 pannelli Tianwhei 230 Wp + 12 batterie 4 V 200 Ah
1 generatore eolico da 1000W autocostruito.
Boiler Ariston 150l

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2915

Stato:



Inviato il: 27/03/2017 20:14:05

Ciao il salentino,con quel circuitino,attualmente vengono inviati dei dati al software di Vincent,che li riporta su una schermata.Da qui le applicazioni sono innumerevoli,si possono fare dei controlli sullo stato delle batterie senza doverle misurare,vedere sotto carico i minimi e massimi ,mandare degli allert per differenza di tensione fra le batterie.
La mia idea iniziale era di fare una app per il cellulare in modo che quando ci si avvicinava per il controllo si potessero leggere i valori e avere degli allarmi su quando fare una equalizzazione con tutte le batterie in parallelo che secondo me è la migliore, ma un pò complicata



---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

Il_Salentino
GigaWatt


Gruppo:Utente
Messaggi:919

Stato:



Inviato il: 27/03/2017 20:23:25

Grazie Riccardo della risposta, ma io non sto utilizzando il software di Vincent; non riesco a decifrarlo, per me è un insieme di dati che potrebbero non interessarmi e mi porta fuori strada. Più in là vedrò se qualcosa è cambiata e mi applicherò un tantino di più per vedere cosa ottenere dal software di Vincent. Ciao e grazie



---------------
1 inverter PIP 5048MST + 12 pannelli TIANWEI 230Wp + 18 pannelli amorfi da 75Wp + 28 pacchi da 200 celle 18650 litio 600Ah
1 inverter PIP 5048MSD + 3 pannelli junko 255 Wp + 3 pannelli Tianwhei 230 Wp + 12 batterie 4 V 200 Ah
1 generatore eolico da 1000W autocostruito.
Boiler Ariston 150l

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 27/03/2017 20:50:55

CITAZIONE (Riccardo, 27/03/2017 19:59:21 ) Discussione.php?214515&9#MSG140

Bella Eli, è proprio per i problemi che descrivi che ho pensato al calcolo per differenza.Il partitore lavora da circa 1 volt al massimo 3v con 60v di ingresso.Inizialmente ho usato un Arduino uno e mega per le prime prove,e avevo pensato di inserire un sketch variabile in funzione delle batterie,andando ad utilizzare il valore di riferimento interno e esterno per migliorare la precisione della misura.Poi da prove pratiche mi sembra che non sia necessario e allora per sono passato al D1 per il basso costo e il WIFI.
Oggi ho acquistato altri 4 trimmer multigiri cosi lo provo sulle batterie da 6v

Si ma io non ho ancora capito tu come intendi leggere correttamente le tensioni delle singole celle...
Me lo spiegheresti in maniera chiara come ho cercato di fare io ?

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

inventoreinerba
GigaWatt


Gruppo:Utente
Messaggi:3680

Stato:



Inviato il: 27/03/2017 21:03:23

mmm quello che si complica la vita sarei io?

 

Vincent
GigaWatt


Gruppo:Utente
Messaggi:1902

Stato:



Inviato il: 27/03/2017 23:18:09

Allora qualche piccolo chiarimento generale il progetto presentato da Riccardo utilizza una scheda d1 con wifi per confrontare abinato a N partitori di tensione collegati tramite un mux 16 canali N tensioni naturalmente bisogna tarare i trimmer per allineare le tensioni il mux ciclicamente campiona 4 ingressi alla volta e li invia al d1
(Questo e quello che ho capito io ma poterei sbagliarmi corregetemi pure)

da qui il D1 su cui risiede un web server li mette in rete ciclicamente su un ip statico che io prelevo e visualizzo da programma registrando variazioni ...e creando allarmi per le varie tensioni.

Parallelamente sto cercando di utilizzare il d1 per la comunicazione diretta al 4048 tramite seriale e rendere il disositivo plug and play cioe server e software di gestione tutto caricato sul d1 accessibile da smartphone o pc tramite pagina web
Un sistema integrato e senza fili (bisogna ottimizzare parecchio ma credo sia fattibile)

questo fa si che con un comune tel puoi comandare leggere e inviare dati al tuo inverter o essere avvisato in tempo reale di problemi.



---------------
SuperSolar
http://forum.saturnoprezzi.com/

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 27/03/2017 23:34:32

CITAZIONE (inventoreinerba, 27/03/2017 21:03:23 ) Discussione.php?214515&9#MSG145

mmm quello che si complica la vita sarei io?

Io sto cercando di capire come fa Riccardo a leggere le tensioni perché ho il sentore che ci siano degli aspetti non presi in considerazione... Perché quale potrebbe essere un'alternativa più semplice ?



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

inventoreinerba
GigaWatt


Gruppo:Utente
Messaggi:3680

Stato:



Inviato il: 28/03/2017 00:02:44

di questi circuiti ne sapete più di me,ma sono certo che c'è una soluzione semplice e pratica.

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2915

Stato:



Inviato il: 28/03/2017 02:01:01

CITAZIONE (BellaEli, 27/03/2017 20:50:55 ) Discussione.php?214515&9#MSG144

CITAZIONE (Riccardo, 27/03/2017 19:59:21 ) Discussione.php?214515&9#MSG140
Bella Eli, è proprio per i problemi che descrivi che ho pensato al calcolo per differenza.Il partitore lavora da circa 1 volt al massimo 3v con 60v di ingresso.Inizialmente ho usato un Arduino uno e mega per le prime prove,e avevo pensato di inserire un sketch variabile in funzione delle batterie,andando ad utilizzare il valore di riferimento interno e esterno per migliorare la precisione della misura.Poi da prove pratiche mi sembra che non sia necessario e allora per sono passato al D1 per il basso costo e il WIFI.
Oggi ho acquistato altri 4 trimmer multigiri cosi lo provo sulle batterie da 6v

Si ma io non ho ancora capito tu come intendi leggere correttamente le tensioni delle singole celle...
Me lo spiegheresti in maniera chiara come ho cercato di fare io ?

Elix


Bella Eli,grazie del tuo contributo,hai ragione c'è un problema sul conteggio che fa lo sketch quando una batteria non resta stabile.Per un misura senza carico va bene,ma con carichi no.
Devo cercare un altro metodo di calcolo,quello del tuo ragionamento è ottimo,inizialmente non l'avevo capito ma ora rileggendolo.La situazione che ho sempre creato per le prove o con batterie o con alimentatori variabili,ma fonti stabili
Il tuo metodo come si trasforma in sketch x 4x12v che lo provo sul D1 mini(ho visto che segui la parte del forum di Arduino)



Modificato da Riccardo - 28/03/2017, 02:32:56


---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 28/03/2017 11:19:18

Prima di parlare del codice io modificherei lo schema elettrico come segue:

http://www.energialternativa.info/public/newforum/ForumEA/Q/Schema%20Elettrico.gif



Ho inserito una formuletta per calcolare correttamente i valori delle resistenze del partitore in base a qualsiasi valore di cella si sceglie, sempre utilizzando i trimmer multigiri da 5 kOHM che hai già.

Il partitore è calcolato per far si che una cella da 2 volt viene inviata direttamente all'ADC, per una da 4 volt viene inviata una tensione pari alla metà, per una da 6 volt una tensione di 1/3 e così via.

Quindi, quando andrai a tarare i trimmer dovrai fare in modo che la tensione di uscita dal trimmer sarà pari a:
Tensione letta su Cella * 2 / Tensione nominale della cella

Esempio, hai una cella da 12 V che misura 12,6 Volt:

12,6 x 2 / 12 = 25,2 / 12 = 2,10 Volt

Tutto chiaro ???

Poi ho aggiunto dei condensatori sugli ingressi del mux che hanno 2 funzioni:

1) Realizzare un filtro passa-basso del primo ordine che lavora su una frequenza di taglio di circa 10 Hz: tale filtro elimina (o comunque attuena moltissimo) ogni eventuale disturbo che potresti captare da apparati circostanti, visto che tra il mux e la cella potrebbe esserci un cavo anche lungo;

2) Rendere stabile la tensione durante la lettura da parte dell'ADC anche in presenza di R grandi: l'ADC quando legge carica un piccolo condensatore interno, quindi assorbe una piccola corrente. Se la R è molto grande, la tensione letta dall'ADC potrebbe non essere corretta, il condensatore che ho inserito risolve questo problema;

Anche per il valore del condensatore ho inserito una formuletta di calcolo, è comprensibile ?

Infine ho aggiunto un piccolo diodo zener da 3 volt sull'ingresso dell'ADC per tentare di salvarlo da situazioni impreviste !

Ora andiamo al codice, io farei in questo modo:


// Definiamo il numero di celle di cui è composta la nostra batteria
#define NumeroCelle = 16

// Definiamo la costante del partitore di tensione (kPartTens = Volt Cella / 2)
#define kPartTens = 6

...
...
...


double VBattLett[NumeroCelle];
double VBattCalc, VCellPrec;
int i;


// Leggo le tensioni sulle singole celle
for (i = 0; i < NumeroCelle; i ++)
{
   VBattLett[i] = Mux(i);
}



VCellPrec = 0;
for (i = 0; i < NumeroCelle; i ++)
{
   // Calcolo le tensioni delle singole celle
   VBattCalc = (VBattLett[i] * (i + 1)) - VCellPrec;
   VCellPrec += VBattCalc;


   // Se utilizzo delle celle diverse da 2 Volt calcolo i valori da mostrare a video
   VBattCalc = VBattCalc * kPartTens;


   // Mostro i valori a video
   client.print ("Batteria ");
   client.print i + 1;
   client.print (" = ");
   client.print VBattCalc;
   client.print (" V - "); 
   delay (10);
}


Da provare, ma dovrebbe essere ok.

Tutto chiaro ?

Elix



Modificato da BellaEli - 28/03/2017, 12:31:18


---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

Riccardo

Avatar
GigaWatt


Gruppo:Utente
Messaggi:2915

Stato:



Inviato il: 28/03/2017 14:31:55

Bella Eli, per il partitore,ho già provato con quel sistema,anche mettendo i condensatori e la zener,su un altro prototipo(ora non ho la foto da allegarlo la inserisco questa sera) utilizzavo condensatori da 10 micro e zener da 5,1 per proteggere l'ingresso analogico era per Arduino uno e mega.Ma mi sono accorto che non servono e creano una RC
Da quello che ho constatato praticamente usando un partitore come da te disegnato,non si riesce ad eseguire una regolazione fine.Questo per il fatto che il trimmer lavora su un campo di tensione più elevato.Inserendo la resistenza sotto il trimmer come da me disegnato la tensione e inferiore e quindi con lo stesso numero di giri si ha una maggiore precisione sulla taratura.
Per il calcolo mi sembra di aver capito che tu sottrai il valore di cella teorico dal valore del partitore, ho compreso bene?



Modificato da Riccardo - 28/03/2017, 14:37:41


---------------
Q.CELLS Q.PEAK 4575W sud-est
Solar Frontier CIS 850W sud-ovest
Inverter PIP5048MST
Batterie:LifePo4 Seplos MASON-48280-DIY EVE280AK 28,6 kWh
Scaldabagno Ferroli 30l 1500w
Scaldabagno Ariston 80l 1200w

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 28/03/2017 14:57:59


CITAZIONE

Da quello che ho constatato praticamente usando un partitore come da te disegnato,non si riesce ad eseguire una regolazione fine.
In questo caso bisogna modificare la formula per il calcolo... appena ho tempo lo farò.

CITAZIONE
Per il calcolo mi sembra di aver capito che tu sottrai il valore di cella teorico dal valore del partitore, ho compreso bene?
??? Non so se ho capito cosa vuoi dire ma no, non faccio ciò che dici...
Faccio solo ciò che avevo descritto in questo post !
Il valore di "cella teorico" (ovvero 2 Volt per ogni cella) lo uso solo per calcolare la costante con cui moltiplicare il valore letto.

Esempio:
--------
ho una batteria da 12 Volt ?
La costante sarà 6
Quindi quando l'ADC legge 2,15 Volt sulla batteria avrò: 2,15 * 6 = 12,90 Volt

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 28/03/2017 17:22:13

Ecco lo schema elettrico aggiornato come piace a te

http://www.energialternativa.info/public/newforum/ForumEA/Q/Schema%20Elettrico2.gif



Modificato da BellaEli - 28/03/2017, 17:28:09


---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 
 InizioPagina
 

Pagine: (39)   1   2   3   4   5   6   7   8   [9]   10   11   12   13   14   15   16   17   18   19   20  ...>    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum