Se sei già registrato           oppure    

Orario: 09/12/2024 14:19:25  

 

Energia Alternativa ed Energia Fai Da Te > Solare Fotovoltaico

VISUALIZZA L'ALBUM

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


Scheda per gestire lo scambio enel-FV con inverter-UPS NO INVERTER PURO
FinePagina

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 31/8/2013,19:51

Arduino è arruolato da oltre 2 ore.
Ha fatto lo scambio a 23,8V e le batterie si sono stabilizzate a 24,6.
Dato che ho deciso di mettere i fili del contattore sull'uscita
normalmente aperta, ho invertito High e low su relay1 e relay2, così
in caso di problemi con l'arduino il contattore mi rimane su enel.
Dopo aver messo una resistenza per ogni led l'anomalia si era ripresentata,
ma da quando ho settato Serial.begin(9600); la posto di 57600
non ho riscontrato anomalie.

La foto in versione "Tablet"

ForumEA/us/Img0/827/vk3s.jpg



Il codice, abbastanza definitivo.

// Arduino Pro Mini VERSIONE CON DISTACCO FRIGO prima della commutazione (linea con relè temporizzato 3 minuti)
// + pulsante batterie, (reay1, high spento (enel), fili su contatto NO, Low = batterie)
// prodotto da calcola (antrec.geo@yahoo.com)
#include "OneWire.h" // consente di accedere ai dispositivi 1-wire (1 filo)
#include "Wire.h"

////////////////////////////////
//INIZIO PARTE MODIFICABILE
///////////////////////////////
#define tensione_bassa 23.8 //valori tipo: 11.9 (sistema 12V); 23.8 (sistema 24V)
#define tensione_alta 27.5 //valori tipo: 13.7 (sistema 12V); 27.4 (sistema 24V)
///////////////////////////////
//FINE PARTE MODIFICABILE
///////////////////////////////

#define coefficiente_conversione 0.05900 // con usb 0.05400 .. con DC-DC 0.05900.. origine 0.05620
#define RELAY1 4
#define RELAY2 5
#define RELAY3 6
#define a0pin A0 //lettura volt
#define a1pin A1 //pulsante, ON batterie
#define NUMREADINGS 5 //Il numero indica i valori tensione da leggere
#define bassatensione (tensione_bassa/coefficiente_conversione) // Valore della tensione stop batt ritorno rete
#define altatensione (tensione_alta/coefficiente_conversione) // Valore tensione stop rete ritorno batt.

int readings[NUMREADINGS]; //Letture dal input analogico
int index = 0; //Indice della lettura corrente
int total = 0; //Totale letture
int average = 0; //Media
int salto = 0;
int pulsante = 0;
#define media1 (bassatensione + altatensione)/2

void setup()
{
//Apro la comunicazion seriale
Serial.begin(9600);
Wire.begin();
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(a0pin, INPUT);
pinMode(a1pin, INPUT);

digitalWrite(RELAY1, HIGH);
digitalWrite(RELAY2, LOW);
digitalWrite(RELAY3, HIGH);

for (int i = 0; i < NUMREADINGS; i++)
readings[i] = 0; //Mette tutti 0 nell'array

}

void loop()

{
//Serial.println(media1);

for (int A = 0; A < NUMREADINGS; A++)
{
total -= readings[index]; //Sottrae l'ultima lettura
readings[index] = analogRead(a0pin); //Legge i valori provenienti dal sensore e li salva nell'array
total += readings[index]; //Aggiunge la lettura al totale
index = (index + 1); //Incrementa l'indice

if (index >= NUMREADINGS) // > maggiore di .. < minore di
index = 0; //Alla fine dell'array resetta l'indice a 0

average = total / NUMREADINGS; //Calcola la media
}

float VoltageReading; // comprende i numeri reali, rappresentati in virgola mobile , 32 bit, 7 cifre
float media_avvio;
VoltageReading=average*coefficiente_conversione;
media_avvio=media1*coefficiente_conversione;


if (VoltageReading < tensione_bassa) // passa a enel (se VR minore di TB)
{
{
if (salto != 5 )
digitalWrite(RELAY3, LOW);
delay(2000);
digitalWrite(RELAY3, HIGH);
delay(200);
salto = 5;
}
digitalWrite(RELAY2, LOW);
delay(200);
digitalWrite(RELAY1, HIGH);
}

if (VoltageReading > tensione_alta) // passa a batterie (se VR maggiore di TB)
{
{
if (salto != 10 )
digitalWrite(RELAY3, LOW);
delay(2000);
digitalWrite(RELAY3, HIGH);
delay(200);
salto = 10;
}
digitalWrite(RELAY1, LOW);
delay(200);
digitalWrite(RELAY2, HIGH);

}

pulsante = analogRead(a1pin); // controllo pulsante, ON passa a batterie
if (pulsante > 800)
{
{
if (salto != 10 )

digitalWrite(RELAY3, LOW);
delay(2000);
digitalWrite(RELAY3, HIGH);
delay(200);
salto = 10;
}
digitalWrite(RELAY1, LOW);
delay(200);
digitalWrite(RELAY2, HIGH);
delay(4000);
}


Serial.print(" Voltaggio batteria media 5 letture: ");
Serial.println(VoltageReading); //Serial.println(average);
Serial.print(" Voltaggio batteria intermedio tra min-max: ");
Serial.println(media_avvio);
Serial.print(" Passa a enel quando minore di: ");
Serial.println(tensione_bassa);
Serial.print(" Passa a batterie quando maggiore di: ");
Serial.println(tensione_alta);
Serial.print(" tensione A1: ");
Serial.println(pulsante);
Serial.println();
delay(2000);
}

//Fine listato




---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 31/8/2013,22:28

Bravo, fai bene a sperimentare nuove soluzioni, come vedi il limite è solo nella fantasia.

Personalmente però ritengo il pulsante una inutile complicazione, alla fin fine a cosa ti serve?

Se all'accensione la tensione è più alta della media tra il minimo ed il massimo, vuol dire che vi è il sole che e le batterie sono in ricarica quindi puoi permetterti di passare a batterie, altrimenti il sistema rimane ad enel fino alla completa ricarica. Infatti, se come consigliato imposti come tensione minima 23,8v e massima di 27,4v, la media sarà di 25,6v. Tale valore di tensione lo puoi avere solo se le batterie sono cariche ed a riposo oppure se vi è il sole. Come vedi quella semplice condizione svolge in automatico la funzione che il tuo pulsante esegue in manuale. Il nostro scopo è quello di automatizzare non di tornare al manuale.

Invece hai riflettuto che il tuo pulsante può svolgere altre funzioni? Ad esempio se lo colleghi ad una foto resistenza avrai... un crepuscolare, oppure...

Purtroppo con il codice non posso più aiutare nessuno, qualunque mia aggiunta sarebbe influenzata dal codice che altri hanno scritto per me e come ho già detto, ho promesso di non divulgare, quindi... non comment.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 1/9/2013,08:47

Si è vero, si potrebbe lasciare che va a batterie se sopra la media,
ma l'imperfezione è solo se spengo e riaccendo l'arduino e le
batterie sono sopra il max, succede che va in enel e subito in batterie,
però se la tensione è sotto il max va bene. Posso decidere se lasciarlo
in enel, o se forzarlo (con pulsante) a batterie.
Per il crepuscolare, nel mio caso non vedo utilità, ma una cosa
che mi frullava, e che forse potrei realizzare per la prossima estate, è
un secondo livello di tensione minima (tipo 24,5v) per deviare solo il
climatizzatore da batterie a enel, e riprenderlo a tensione massima.



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 1/9/2013,20:09

Scusa, ma quale è il problema, se parte a enel e subito dopo passa a batteria, l'inverter commuta solo quando passa a batteria è solo un problema del led, la funzionalità rimane inalterata.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 1/9/2013,21:37

L'imperfezione a cui mi riferivo riguarda la mia modifica.
Nel tuo codice originale, if (analogRead(inputPin) > media1), all'accensione di
arduino verifica se la tensione è sopra la media e va direttamente in batterie.
Ma al momento preferisco la modifica che ho fatto.



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 2/9/2013,05:47

Ok, ho capito



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

shadowcaster
MegaWatt


Gruppo:Utente
Messaggi:322

Stato:



Inviato il: 2/9/2013,05:49

Salve a tutti…mi è venuta un'idea, non so se sia stata già realizzata o di per se lo switch lo faccia in automatico…comunque la proposta è questa:
Ho notato che se la tensione delle batterie è intorno ai 24,3V, quindi si potrebbe utilizzare ancora una carica residua, e si allaccia un carico, per esempio parte il motore del frigorifero, questo valore scende di colpo, ovviamente…e poi si stabilizza. Tutto ciò è dovuto alla maggiore potenza assorbita dall'utilizzatore allo spunto, sicuramente superiore di quella utilizzata dallo stesso a regime. Lo switch misurerà la tensione e passerà su Enel attendendo la carica completa delle batterie…ma effettivamente la tensione misurata è falsata dalla richiesta di potenza dello spunto del motore…per cui il sistema non dovrebbe praticamente passare su Enel ma rimanere sul FV, erogando la corrente necessaria all'utilizzatore a regime. Le proposte per risolvere tutto ciò sono 2, e correggetemi se dico cavolate…
1 - si potrebbe istruire il sistema, con un ritardo nel passaggio ad Enel, per cui misurata la tensione allo spunto, si attende per es 10 secondi prima di switchare, si rieffettua una nuova misurazione di tensione, e se questa torna a valori accettabili, il sistema rimane sul FV.
2 - si potrebbe inserire un "tampone" per es batterie di condensatori con resistenze che forniscano alla rete domestica quella potenza in più, impulsiva, dovuta allo spunto…

Ho detto stupidaggini?
Saluti

 

ronwal

Avatar
GigaWatt


Gruppo:Utente
Messaggi:1743

Stato:



Inviato il: 2/9/2013,05:58

secondo mè invece bisogna implementare uno stato di carica... mettendo un sensore di corrente per la ricarica ed uno per la scarica....

in questo modo settando la capacità batteria non ci saranno piu di questi problemi....... basterebbe un solo sensore hall con cui sapere se entra o se esce corrente dalle batterie...



---------------
6 bosch csi 240 mono, 9 ldk 225 poly,
Outback flex max 60, psw 7 advance 4kw 48v,
24 elementi 400ah c 5 tubolari

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 2/9/2013,07:49

CITAZIONE (shadowcaster @ 2/9/2013, 06:49)
Salve a tutti…mi è venuta un'idea, non so se sia stata già realizzata o di per se lo switch lo faccia in automatico…comunque la proposta è questa:
Ho notato che se la tensione delle batterie è intorno ai 24,3V, quindi si potrebbe utilizzare ancora una carica residua, e si allaccia un carico, per esempio parte il motore del frigorifero, questo valore scende di colpo, ovviamente…e poi si stabilizza. Tutto ciò è dovuto alla maggiore potenza assorbita dall'utilizzatore allo spunto, sicuramente superiore di quella utilizzata dallo stesso a regime. Lo switch misurerà la tensione e passerà su Enel attendendo la carica completa delle batterie…ma effettivamente la tensione misurata è falsata dalla richiesta di potenza dello spunto del motore…per cui il sistema non dovrebbe praticamente passare su Enel ma rimanere sul FV, erogando la corrente necessaria all'utilizzatore a regime. Le proposte per risolvere tutto ciò sono 2, e correggetemi se dico cavolate…
1 - si potrebbe istruire il sistema, con un ritardo nel passaggio ad Enel, per cui misurata la tensione allo spunto, si attende per es 10 secondi prima di switchare, si rieffettua una nuova misurazione di tensione, e se questa torna a valori accettabili, il sistema rimane sul FV.
2 - si potrebbe inserire un "tampone" per es batterie di condensatori con resistenze che forniscano alla rete domestica quella potenza in più, impulsiva, dovuta allo spunto…

Ho detto stupidaggini?
Saluti

Dato che non conviene scaricare troppo le batterie, anche se resta un 20%
di corrente utilizzabile non è un problema, la ritroveremo l'indomani, anticipando un po il passaggio a batterie.
Non so in che tempi avvengono le 5 letture della tensione, eventualmente si
potrebbero rallentare con un "delay()"



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 4/9/2013,20:38

La mia versione 2.0 dovrebbe essere questa,
e penso che la realizzo presto, anzi il tempo che arrivi un'altro arduino,
perchè la nuvoletta fantozziana pomeridiana non mi molla,
e il climatizzatore ancora mi serve.

ForumEA/us/Img0/29/fxm4.png



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

shadowcaster
MegaWatt


Gruppo:Utente
Messaggi:322

Stato:



Inviato il: 4/9/2013,22:23

Ciao sabin. Mi spieghi una cosa, perché il relè per linea frigo e climatizzatore?

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 5/9/2013,10:27

Perchè non avendo un adeguata capacità di accumulo devo fare in modo che
nei momenti di crisi tolgo i carichi più pesanti.
La superficie fotovoltaica mi basta, ma questa estate qui in Sicilia
è stata e continua ad essere uno schifo. Non ho motivo di aggiungere batterie
di solito finito settembre il climatizzatore non mi serve più.
Perciò per gestire al meglio i consumi, il climatizzatore lo devo passare ad
enel prima di raggiungere il limite minimo.

La pausa per la linea frigo (due frigo e un congelatore, e climatizzatore)
mi serve per non stressare i motori e l'inverter.



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 5/9/2013,22:12

Si deve fare in modo che, raggiunta la condizione di passaggio all'enel, l'arduino attenda 3-4 secondi, rilegga la tensione e se ancora più bassa del minimo passa ad enel altrimenti rimane a batteria. Si può ottenere implementando nel codice una condizione if.... else dopo : if (VoltageReading < tensione_bassa).

Purtroppo non posso sperimentare la fattibilità in quanto ho già smontato la mia applicazione.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

Sabin

Avatar
MegaWatt


Gruppo:Utente
Messaggi:522

Stato:



Inviato il: 6/9/2013,07:12

Ho visto che quando la tensione si avvicina al minimo
nelle letture della tensione, Ardunino vede delle variazioni
come un'onda costante, tra una lettura a latra c'e un
sali e scendi di almeno 5 decimi di volt,
quando passa a enel la variazione è meno di 2 decimi.

E se di letture ne facesse 10 al posto di 5?
Inserendo un delay (300) nelle letture
alla fine passeranno 3 secondi

for (int A = 0; A < NUMREADINGS; A++)
{
total -= readings[index]; //Sottrae l'ultima lettura
readings[index] = analogRead(a0pin); //Legge i valori provenienti dal sensore e li salva nell'array
total += readings[index]; //Aggiunge la lettura al totale
index = (index + 1); //Incrementa l'indice
delay(300);

if (index >= NUMREADINGS) // > maggiore di .. < minore di
index = 0; //Alla fine dell'array resetta l'indice a 0

average = total / NUMREADINGS; //Calcola la media
}

Che ne pensi?



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw)
Pannelli 11,1 mq. Wp 1320 (x120 Wp mq)... n° 5 monoc. 72 celle 750 Wp (SO) su MPPT SolarMate 40A
n° 3 polic. 60 celle 570 Wp (Sud) su PWM 30A... batterie: 2 coppie SMA (trazione) 24V 120 Ah C/10 (+ 2 avviamento 70Ah)
Switch enel/batterie con Arduino Pro Mini

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 7/9/2013,08:25

L'arduino ha un processore a 16Mhz, di operazioni in un secondo ne fa milioni, le letture le fa in meno di un centesimo di secondo. In realtà così come è fa non 5 letture, ma 25, infatti il ciclo di letture è ripetuto per se stesso. Se poni il numero delle letture pari a 10, quelle effettive saranno 100! Allora ci si può chiedere perchè non far fare direttamente 25 letture e non 5X5? L'ho già spiegato più sopra, da prove fatte ho sperimentato che facendo leggere 5 volte la tensione e facendo poi ripetere questo ciclo per 5 volte, la lettura è più stabile rispetto ad un solo ciclo di 25 letture, non so perchè, ma è così.

Il partitore è di tipo resistivo, ha una precisione del 90% circa. Le comuni resistenze hanno una tolleranza del 5% e siccome sono due in serie l'errore si somma, quindi è normale una piccola oscillazione nelle letture che comunque variano in volt di un decimale rispetto alla tensione effettiva (se il partitore è stato montato correttamente).

Se ti riferisci al post di ronwal, io ho già collegato al mio arduino due sensori di corrente, il problema è che per fare un vero soc devono essere memorizzati i valori di corrente in ingresso ed in uscita per poi effettuare dei calcoli, dovremmo aggiungere una eprom... per me va bene così.

http://digilander.libero.it/calcola/scheda/Schermata%20del%202013-09-07%2009:37:43.png




Modificato da calcola - 7/9/2013, 09:48


---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 
 InizioPagina
 

Pagine: (76)   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