EnergiAlternativa

Page Index Toggle Pages: [1] 2  Send TopicPrint
Normal Topic il mio piccolo ibrido da 300Wp (isola+grid) (Read 16971 times)
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
il mio piccolo ibrido da 300Wp (isola+grid)
02.01.13 at 13:46:00
Print Post  
Ciao a tutti........
Vi presento il mio ibrido (isola+grid) ,nato grazie ai vostri consigli letti qui e là nel forum.
Il progetto nasce con l'esigenza di avere luci nottturne a costo zero (sarebbe bello è)
e quindi dopo aver calcolato l'energia che mi occorreva durante la notte (circa 6 lampioni da 10 W x 10 ore =600W) ho optato per un pannello da 300Wp in grado di garantirmi le mie 10 ore notturne di luce con solo 2 ore di irraggiamento solare.....quindi ....tataaaaaa



I pannelli ricaricano il banco batterie composto da 4 AGM da 40Ah (con un accumulo di energia teorico di 600W in grado di garantirmi 3 giorni di piena oscurità .......metti caso la fine del mondo )


Le batterie sono sotto la copertura gialla (Bella vè )


I CONTI NON TORNANO.........
In teoria l'impianto sarebbe finito .....mancano solo il regolatore di carica e modificare l'impianto esistente per raggiungere i lampioni con la 24V (Non volevo perdere neanche il 10% dell'efficienza dell'eventuale inverter ,sò purciaro )
Ma cosi facendo avrei caricato (nei bei giorni di sole ) le batterie diciamo in 3 ore e per il resto della giornata l'energia prodotta dai pannelli sarebbe servita solo a scaldare il culo dei piccioni.....quindi perche non deviare i pannelli ad un inverter grid...

Nell'unità esterna vediamo il regolatore di carica e due relè che deviano i pannelli dal regolatore ad una seconda linea che raggiungerà l'inverter posto in una zona coperta..



L'unita interna composta da una scheda arduino (il PPTEA lo possedo solo ORA) gestisce i relè esterni .
In pratica quando sente le batterie al 75% eccita il primo relè deviando 200Wp all'inverter grid e quando raggiunge il 100% devia anche i restanti 100Wp all'inverter.
Comunque resta un collegamento tra i pannelli e il regolatore con un diodo ed una resistenza in maniera tale da mantenere funzionante la parte crepuscolare del regolatore (Con 15Euro pure il crepuscolare te danno )


L'impianto è operativo da questa estate e oltre a regalarmi il PIACERE di vedere le luci accendersi come per magia ha prodotto circa 90Kwh ........
Sembrano pochi ,ma tra averli e non averll son 180 ...

Torniamo alla presentazione .....
Il cervello è un Arduino Mega (è provvisorio )il quale visualizza lo stato dell'impianto e mi crea un Log dove memorizzza gli orari di attivazioni dei relè oltre alla temperatura batterie (a che me serve bò....)orario accenzione e spengimento luci e livelli batteria in tutte le fasi .
Mi consente anche mi variare le soglie di intervento nella funzione automatica oppure operare in manuale




Questa è la versione provvisoria in quando tutto il progetto è provvisorio.....
Nella mia mente mi frulla un IBRIDO da 1,5Kwp gestito completamente via Ethernet (notate il tanto spazio a disposizione e lo switcher ) con trasmissione via radio (modulo tx ed rx già pronti ------si vedono in foto) per dei monitor remoti semplici ed intuitivi .............

Ecco la kicca........

Il mio giardino esigente di luce è stato soddisfatto con :


n°4 lampade Led 1x10W



n°1 lampada Led 4x3W piana



n°1 lampada Led 4x3W Omni



n°1 lampada Led 7x1W Omni



n°1 lampione 2x10W



Tutti i led vengolo gestiti da moduli step down in grado da essere alimentati con un range di alimentazione ampio (da 14 a 35V) mantenendo inalterati i lux.....allo scaricare delle batterie (che vengono staccate a 21V dal regolatore)
I Led vengono gestiti a tensione costante (pericolo)))))ma ben al di sotto della corrente massima (circa il 70%) per recuperare anche la potenza eventualmente persa dalla restitenza di misurazione del driver .....(spero di essere stato chiaro )



  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
bodo81
Ex Member
**


--------

Gender: Male
Zodiac sign: Aries
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #1 - 02.01.13 at 13:49:00
Print Post  
bravo ElettroshockNow hai fatto un bel lavoro, pulito e preciso
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #2 - 02.01.13 at 14:11:00
Print Post  
Oggi mi ritengo soddisfatto... ma solo oggi perchè domani arrivano 12 pannelli da 100W ......................MEGA IBRIDO IN MENTE (see altro post).

Ciao a tutti e come voi avete aiutato a me io sono super disponibile ad aiutarvi (smpre nel limite delle mie potenzialità )


SALUTI da ElettroshockNow

CIAO GRANDIIIIIIII

Grazie bodo81

  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
Vinss
Ex Member
*


--------

Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #3 - 02.01.13 at 14:56:00
Print Post  
Complimentissimi!
  
Back to top
 
IP Logged
 
uomodeicavalli
Ex Member
*


--------

Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #4 - 02.01.13 at 15:01:00
Print Post  
Ciao ElettroshockNow bello il tuo impianto...mi sono fatto pure io un impianto più o meno ibrido ,(una...molto brutta copia rispetto al tuo) grazie a questo strabiliante forum( e nemmeno so come sia riuscito a far funzionare tutto al primo colpo senza aver la minima infarinatura di corrente e di fotovoltaico....mah miracolo!!!! Cmq (se guardi nella pagina principale ho postato qualche foto con relative domande sulla coesistenza tra 2 impianti 12 e 24 v ,senza dover smontare il primo da 12v..ma ancora senza risposte esaurienti ) ora veniamo alla questione che mi serve...ho comprato altro materiale tipo pannelli e inverter più potente, regolatori ecc ecc x ampliare l'impianto tra cui il famoso arduino uno, che a quanto pare, sembra funzioni tipo il PPtea che usano i famosi KeKKO e Bolle...e mi piacerebbe riuscire in qualche modo ad automatizzare l'impianto tramite pc .oppure poter avere almeno i dati della produzione sullo schermo.solo che come dicevo in precedenza...sono un profani dell'elettronica, tuttavia mi affascina,senzaltro avrai scritto il programma di arduino x il suo funzionamento...ti chiedevo umilmente ...potresti farmi avere una copia
del programma e l'elenco dei componenti..tipo rele e altre diavolerie che servono?
Ovviamente...non pretendo una risposta immediata..fai con calma x ora il sole non c'è.......grazie
  
Back to top
 
IP Logged
 
Aquila 1
Ex Member
*


--------

Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #5 - 02.01.13 at 15:21:00
Print Post  
Bell'impiantino complimenti!!!
Volevo farti una semplice domanda alla fine della discussione dici che anche se varia la tensione i lumen restano uguali, almeno questo è il senso. La domanda è come hai misurato i lumen delle lampade che hai costruito?
Ciao
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #6 - 02.01.13 at 15:51:00
Print Post  
Sono in dovere:
A portata di mano ho i schemi buttati giù su carta .....poi appena ho tempo li aggiornerò.




Arriva anche il software Arduino.........please wait

<div class=spoiler align=center><div class=code_top align=left>SPOILER (<a href=javascript:spoiler()>clicca per visualizzare)</div><div class=code align=left>//----------------------------------------------------------
//LIBRERIE DA CARICARE
#include <eeprom.h>
#include &#60;time.h>
#define TIME_MSG_LEN 11 // time sync to PC is HEADER followed by unix time_t as ten ascii digits
#define TIME_HEADER 'T' // Header tag for serial time sync message
#define TIME_REQUEST 7 // ASCII bell character requests a time sync message
#include <liquidcrystal.h>
#include <dfr_key.h>
//----------------------------------------------------------



//---------------------------------------------------------
//ASSEGNAZIONE PIN e CARATTERI SPECIALI LCD
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
#define BACKLIGH_PIN 10
byte heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};

byte gradi[8] = {
0b00010,
0b00101,
0b00010,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};

byte frownie[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b00000,
0b01110,
0b10001
};

byte armsDown[8] = {
0b00100,
0b01010,
0b00100,
0b00100,
0b01110,
0b10101,
0b00100,
0b01010
};

byte armsUp[8] = {
0b00100,
0b01010,
0b00100,
0b10101,
0b01110,
0b00100,
0b00100,
0b01010
};

int Rele1 = 11;
int Rele2 = 12;
int Luci_Notturne = 13;

//----------------------------------------------------------


//-----------------------------------------------------------
// VARIABILI
DFR_Key keypad;
String keyString = "";
int localKey = 0; //Select-1;Left-2;Up-3;Down-4;Right-5;
int pagina = 0; //PAGINA DEFAULT DA VISUALIZZARE SULL'LCD
float Soglia_Rele1 = 27.8;
float Soglia_Rele2 = 27.9;
float Soglia_Rilascio = 24.5;
float Tens_Batt_Max = 0;
float Tens_Batt_Min = 30;
float Temp_Batt_Max = 0;
float Temp_Batt_Min = 100;
int Reset_Val = LOW;
int Controllo = LOW;

int Settaggi = LOW;
int Salvare = LOW;
int READADRS = 0;
int PagTens = 1;
int PagTemp = 1;
int PagTerm = 1;
int PagStor = 1;
int RegOra = 1;
int Timeout = 0;
int pag = 7;

//-------VALORI INIZIALI DELLO STORICO
int ADRS = 61;//DEFAULT 1 ;NOTE:INSERIRE 1 + 20 X (GIORNI GIA' SALVATI) ES:61 LASCIA IN MEMORIA I PRIMI 3 GIORNI
byte TOFF1=6;//DEFAULT 0
byte TOFF2=0;//DEFAULT 0
byte VOFF1=24;//DEFAULT 0
byte VOFF2=0;//DEFAULT 0
byte TRL11=0;//DEFAULT 0
byte TRL12=0;//DEFAULT 0
byte TRL21=0;//DEFAULT 0
byte TRL22=0;//DEFAULT 0
byte TON1=0;//DEFAULT 0
byte TON2=0;//DEFAULT 0
byte VON1=0;//DEFAULT 0
byte VON2=0;//DEFAULT 0

//------------------------------------------------------------

void setup()
{
lcd.createChar(0, heart);
lcd.createChar(1, gradi);
lcd.createChar(2, frownie);
lcd.createChar(3, armsDown);
lcd.createChar(4, armsUp);
setTime(13,29,00,06,11,2012);
lcd.begin(16, 2);
pinMode(Luci_Notturne, INPUT);
pinMode(Rele1, OUTPUT);
digitalWrite(Rele1,LOW);
pinMode(Rele2, OUTPUT);
digitalWrite(Rele2,LOW);
pinMode(BACKLIGH_PIN, OUTPUT);
digitalWrite(BACKLIGH_PIN, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Controllo Solare");
lcd.setCursor(0,1);
lcd.print("By ElettroshockNow");
delay(1000);

/*
OPTIONAL
keypad.setRate(x);
Sets the sample rate at once every x milliseconds.
Default: 10ms
*/
keypad.setRate(50);

}

void loop()
{


//--------------------------------------------------------------
/*misura-campiona-converte il valore ampere dall ' ACS712
collegato a A1
Tabella conversione sensore +-5 A = 0.02642
+-20A = 0.04887
+-30A = 0.07405
*/
//float amper = 0;
//for(int i = 0; i < 50; i++) {
// amper = amper + ((analogRead(A1) -512) * 0.04887) / 50;
//}
//--------------------------------------------------------------


//------------MISURAZIONE TENSIONE BATTERIA------------------
float Tens_Batt = 0;
for(int i = 0; i < 50; i++) {
Tens_Batt = Tens_Batt + (analogRead(A1) * 0.04);
}
Tens_Batt = Tens_Batt/50;
if (Tens_Batt > Tens_Batt_Max ) Tens_Batt_Max=Tens_Batt;
if (Tens_Batt < Tens_Batt_Min ) Tens_Batt_Min=Tens_Batt;



//-------------------------------------------------------------


//------------MISURAZIONI TEMPERATURE-------------------

float Temp_Batt = 0;
for(int i = 0; i < 50; i++) {
Temp_Batt = Temp_Batt + (analogRead(A5) * 0.488758) / 50 ;
}
if (Temp_Batt > Temp_Batt_Max ) Temp_Batt_Max=Temp_Batt;
if (Temp_Batt < Temp_Batt_Min ) Temp_Batt_Min=Temp_Batt;


float Temp_inH2O = 0;
for(int i = 0; i < 50; i++) {
Temp_inH2O = Temp_inH2O + (analogRead(A6) * 0.488758) / 50 ;
}

float Temp_outH2O = 0;
for(int i = 0; i < 50; i++) {
Temp_outH2O = Temp_outH2O + (analogRead(A7) * 0.488758) / 50 ;
}

//--------------------------------------------------------------

//--------------CONTROLLO RELE'---------------------------------

if (Tens_Batt > Soglia_Rele1 & Controllo==HIGH) digitalWrite(Rele1,HIGH);

if (Tens_Batt > Soglia_Rele2 & Controllo==HIGH) digitalWrite(Rele2,HIGH);

if((Tens_Batt < Soglia_Rilascio | digitalRead(Luci_Notturne) == HIGH ) & Controllo==HIGH ) {
digitalWrite(Rele1,LOW);
digitalWrite(Rele2,LOW);
}





//-------------------------------------------------------------

//-----------------CREA STORICO e SALVALO-------------------------------
//---------------------ALLE ORE 23:00-------------------------------
if (hour() != 22) Salvare = HIGH;
if (hour()== 22 & Salvare == HIGH) {
EEPROM.write(ADRS,day());
EEPROM.write((1+ADRS),month());
EEPROM.write((2+ADRS),TOFF1);
EEPROM.write((3+ADRS),TOFF2);
EEPROM.write((4+ADRS),VOFF1);
EEPROM.write((5+ADRS),VOFF2);
EEPROM.write((6+ADRS),TRL11);
EEPROM.write((7+ADRS),TRL12);
EEPROM.write((8+ADRS),TRL21);
EEPROM.write((9+ADRS),TRL22);
EEPROM.write((10+ADRS),TON1);
EEPROM.write((11+ADRS),TON2);
EEPROM.write((12+ADRS),VON1);
EEPROM.write((13+ADRS),VON2);

TOFF1=0;TOFF2=0;VOFF1=0;VOFF2=0;TRL11=0;TRL12=0;TRL21=0;TRL22=0;TON1=0;TON2=0;VO
N1=0;VON2=0;
ADRS = ADRS + 20;

Salvare = LOW;
}

if (digitalRead(Luci_Notturne) == LOW & TOFF1==0 & TOFF2==0){
TOFF1=(hour());
TOFF2=(minute());
int intero=Tens_Batt;
VOFF1=intero;
VOFF2= (Tens_Batt - intero)* 100;
}

if (digitalRead(Luci_Notturne) == HIGH & TOFF1!=0 & TOFF2!=0 & TON1==0){
TON1=(hour());
TON2=(minute());
int intero=Tens_Batt;
VON1=intero;
VON2= (Tens_Batt - intero)* 100;
}

if (digitalRead(Rele1) ==HIGH & TRL11==0 & TRL12==0){
TRL11=(hour());
TRL12=(minute());
}

if (digitalRead(Rele2) ==HIGH & TRL21==0 & TRL22==0){
TRL21=(hour());
TRL22=(minute());
}

//------------------------------------------------------------

//-------------------------------------------------------------
//SELEZIONA IL NUMERO PAGINE E LA PAGINA DA VISUALIZZARE
localKey = keypad.getKey();
if (Settaggi==LOW)pag=8;else pag=12;
if (pagina < pag & localKey==3) pagina++;
if (pagina > 0 & localKey==4) pagina--;
//if (pagina==11) digitalWrite(BACKLIGH_PIN, LOW);
//else digitalWrite(BACKLIGH_PIN, HIGH);
if (pagina==4 & localKey==5) Controllo=HIGH;
if (pagina==4 & localKey==2) Controllo=LOW;
if (pagina==8 & localKey==5) Settaggi=HIGH;
if (pagina==8 & localKey==2) Settaggi=LOW;
if (pagina==10 & localKey==5) Soglia_Rele1=Soglia_Rele1+0.05;
if (pagina==10 & localKey==2) Soglia_Rele1=Soglia_Rele1-0.05;
if (pagina==11 & localKey==5) Soglia_Rele2=Soglia_Rele2+0.05;
if (pagina==11 & localKey==2) Soglia_Rele2=Soglia_Rele2-0.05;
if (pagina==12 & localKey==5) Soglia_Rilascio=Soglia_Rilascio+0.05;
if (pagina==12 & localKey==2) Soglia_Rilascio=Soglia_Rilascio-0.05;
if (pagina==5 & localKey==2 & Controllo==LOW){
if(digitalRead(Rele1)==LOW)digitalWrite(Rele1,HIGH);
else digitalWrite(Rele1,LOW);}
if (pagina==5 & localKey==5 & Controllo==LOW){
if(digitalRead(Rele2)==LOW)digitalWrite(Rele2,HIGH);
else digitalWrite(Rele2,LOW);}
//--------------------------------------------------------------

//-----------Reinposta la pagina iniziale -------
//----------- e spegne LCD dopo il Timeout--------------------
Timeout++;
if(localKey==1 |localKey==2 |localKey==3 |localKey==4 |localKey==5) {
Timeout=0;
digitalWrite(BACKLIGH_PIN, HIGH);
}
if(Timeout >200) pagina=0;
if(Timeout >500) {
digitalWrite(BACKLIGH_PIN,LOW);
Settaggi=LOW;}

//--------------------------------------------------------------

delay(100);//ritardo di refresh (attenzione varia anche il Timeout)

//------------------------------------------------------------------------------
----------------------------------------------------------
//GRAFICA LCD
switch (pagina){

case 0 :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(hour());
if (second()&1 == 1){
lcd.print(":");}
else{
lcd.print(" ");}
if ((minute())<10)lcd.print("0");
lcd.print(minute());
lcd.print(" ");
lcd.print(day());
lcd.print("/");
lcd.print(month());
lcd.print("/");
lcd.print(year());
lcd.setCursor(0, 1);
lcd.print("Batt=");
lcd.print(Tens_Batt,1);
lcd.print("V ");
lcd.print(Temp_Batt,0);
lcd.write(1);
lcd.print("C");

break;


case 1 :

lcd.clear();
lcd.setCursor(0, 0);
switch(PagTens){

case 1:
lcd.print(" TENSIONE");
lcd.setCursor(0, 1);
lcd.print ("BATTERIA=");
lcd.print(Tens_Batt,1); //daa notare il ,1 che significa un decimale)
lcd.print("V");
break;

case 2:
lcd.print ("Tens_Max=");
lcd.print(Tens_Batt_Max,1); //daa notare il ,1 che significa un decimale)
lcd.print ("V");
lcd.setCursor(0, 1);
lcd.print ("Tens_Min=");
lcd.print(Tens_Batt_Min,1); //daa notare il ,1 che significa un decimale)
lcd.print ("V");
break;

case 3:
lcd.print("Push Select for");
lcd.setCursor(0, 1);
lcd.print ("Reset MIN/MAX");
if (localKey==1) {
Tens_Batt_Max = 0;
Tens_Batt_Min = 30;
};
break;
}

if(PagTens < 3 & localKey==5) PagTens++;
if(PagTens > 1 & localKey==2) PagTens--;
if(Timeout > 50) PagTens=1;
PagTemp = PagTerm = RegOra = 1;

break;

case 2 :

lcd.clear();
lcd.setCursor(0, 0);
switch (PagTemp){

case 1:
lcd.print(" TEMPERATURA");
lcd.setCursor(0, 1);
lcd.print ("BATTERIA=");
lcd.print(Temp_Batt,0);
lcd.write(1);
lcd.print("C");
break;

case 2:
lcd.print ("Temp_Max=");
lcd.print(Temp_Batt_Max,1); //daa notare il ,1 che significa un decimale)
lcd.write(1);
lcd.print ("C");
lcd.setCursor(0, 1);
lcd.print ("Temp_Min=");
lcd.print(Temp_Batt_Min,1); //daa notare il ,1 che significa un decimale)
lcd.write(1);
lcd.print ("C");
break;

case 3:
lcd.print("Push Select for");
lcd.setCursor(0, 1);
lcd.print ("Reset MIN/MAX");
if (localKey==1) {
Temp_Batt_Max = 0;
Temp_Batt_Min = 100;
};
break;
}

if(PagTemp < 3 & localKey==5) PagTemp++;
if(PagTemp > 1 & localKey==2) PagTemp--;
if(Timeout > 50) PagTemp=1;
PagTens = PagTerm = RegOra = 1;

break;

case 3 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" LUCI NOTTURNE");
lcd.setCursor(0, 1);
if (digitalRead(Luci_Notturne) == HIGH) lcd.print("*****ACCESE*****");
else lcd.print("-----SPENTE-----");
PagTens = PagTemp = PagTerm = RegOra = 1;

break;

case 4 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CONTROLLO SOLARE");
lcd.setCursor(0, 1);
if (Controllo==LOW) lcd.print ("----MANUALE----");
else lcd.print("***AUTOMATICO***");
PagTens = PagTemp = PagTerm = RegOra = 1;
break;

case 5 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RELE'1= ");
if(digitalRead(Rele1) ==LOW) lcd.print("APERTO");
else lcd.print("CHIUSO");
if(Controllo==HIGH) lcd.print(" *");
lcd.setCursor(0, 1);
lcd.print("RELE'2= ");
if(digitalRead(Rele2) ==LOW) lcd.print("APERTO");
else lcd.print("CHIUSO");
if(Controllo==HIGH) lcd.print(" *");
PagTens = PagTemp = PagTerm = RegOra = 1;
break;

case 6 :

lcd.clear();
lcd.setCursor(0, 0);
switch(PagTerm){

case 1 :
lcd.print("PANNELLO SOLARE");
lcd.setCursor(0, 1);
lcd.print (" SANITARIO ");
break;

case 2:
lcd.print("TEMPERATURA H2O");
lcd.setCursor(0, 1);
lcd.print ("INGRESSO=");
lcd.print(Temp_inH2O,1);
lcd.write(1);
lcd.print ("C");
break;

case 3 :
lcd.print("TEMPERATURA H2O");
lcd.setCursor(0, 1);
lcd.print ("USCITA=");
lcd.print(Temp_outH2O,1);
lcd.write(1);
lcd.print ("C");
break;

case 4:
lcd.print("TEMP MAX/MIN IN");
lcd.setCursor(0, 1);
//lcd.print (" Gradi=");
//lcd.print(Temp_inH2O,1);
break;

case 5:
lcd.print("TEMP MAX/MIN OUT");
lcd.setCursor(0, 1);
//lcd.print (" Gradi=");
//lcd.print(Temp_inH2O,1);
break;

}

if(PagTerm < 5 & localKey==5) PagTerm++;
if(PagTerm > 1 & localKey==2) PagTerm--;
if(Timeout > 100) PagTerm=1;
PagTens = PagTemp = RegOra = 1;

break;

case 7 :
lcd.clear();
lcd.setCursor(0, 0);

if (READADRS == 0) {
lcd.print(" STORICO");
lcd.setCursor(0, 1);
if (ADRS == 1)
lcd.print ("NON DISPONIBILE");
else
lcd.print(" DISPONIBILE");
if (localKey==1 & ADRS > 1) READADRS=ADRS - 20;
PagStor = 1;

}
else {
lcd.print("MEMO DEL ");
lcd.print(EEPROM.read(READADRS));
lcd.print(" ");
lcd.print(monthShortStr(EEPROM.read(1+READADRS)));
lcd.setCursor(0, 1);

switch (PagStor){

case 1:
lcd.print("OFF=");
if ((EEPROM.read(2+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(2+READADRS));
lcd.print(":");
if ((EEPROM.read(3+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(3+READADRS));
lcd.print(" ");
lcd.print(EEPROM.read(4+READADRS));
lcd.print(".");
lcd.print(EEPROM.read(5+READADRS));
lcd.print("V");
break;

case 2:
lcd.print("T=");
if ((EEPROM.read(6+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(6+READADRS));
lcd.print(":");
if ((EEPROM.read(7+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(7+READADRS));
lcd.print(" T1=");
if ((EEPROM.read(8+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(8+READADRS));
lcd.print(":");
if ((EEPROM.read(9+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(9+READADRS));
break;

case 3:
lcd.print("ON=");
if ((EEPROM.read(10+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(10+READADRS));
lcd.print(":");
if ((EEPROM.read(11+READADRS))<10)lcd.print("0");
lcd.print(EEPROM.read(11+READADRS));
lcd.print(" ");
lcd.print(EEPROM.read(12+READADRS));
lcd.print(".");
lcd.print(EEPROM.read(13+READADRS));
lcd.print("V");
break;

}
}




if (Timeout > 50)READADRS=0;
PagTens = PagTemp = PagTerm = RegOra = 1;
if (localKey==2 & READADRS > 1) READADRS = READADRS - 20;;
if (localKey==5 & READADRS > 1 & (READADRS+20) < ADRS) READADRS = READADRS + 20;;
if (localKey==1)PagStor++;
if (PagStor == 4 )PagStor = 1;

break;


case 8 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("----SETTAGGI----");
lcd.setCursor(0, 1);
if (Settaggi==LOW)lcd.print("**NO** SI ");
else lcd.print (" NO **SI**");
PagTens = PagTemp = PagTerm = RegOra = 1;
break;

case 9 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print(hour());
if (second()&1 == 1){
lcd.print(":");}
else{
lcd.print(" ");}
if ((minute())<10)lcd.print("0");
lcd.print(minute());
lcd.print(" ");
lcd.print(day());
lcd.print("/");
lcd.print(month());
lcd.print("/");
lcd.print(year());
lcd.setCursor(0, 1);

switch (RegOra){

case 1:
lcd.print("--REGOLA ORA ?--");
break;

case 2:
lcd.print("*-*-*-ORA-*-*-*");
if (localKey==5) adjustTime(3540) ;
if (localKey==2) adjustTime(-3540) ;
case 3:
lcd.print("-*-*-MINUTI-*-*-");
if (localKey==5) adjustTime(60);
if (localKey==2) adjustTime(-60) ;
break;

case 4:
lcd.print("-*-*-GIORNO-*-*-");
if (localKey==5) adjustTime(86400);
if (localKey==2) adjustTime(-86400) ;
break;

case 5:
lcd.print("*-*-*-MESE-*-*-*");
if (localKey==5) adjustTime(2592000);
if (localKey==2) adjustTime(-2592000) ;
break;

case 6:
lcd.print("*-*-*-ANNO-*-*-*");
if (localKey==5) adjustTime(31536000);
if (localKey==2) adjustTime(-31536000) ;
break;
}
if(localKey==1) RegOra++;
if(RegOra==7 | Timeout > 50) RegOra=1;
PagTens = PagTemp = PagTerm = 1;

break;

case 10 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("- TENS. SOGLIA +");
lcd.setCursor(0, 1);
lcd.print(" RELE'1=");lcd.print(Soglia_Rele1,2);

break;

case 11 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("- TENS. SOGLIA +");
lcd.setCursor(0, 1);
lcd.print(" RELE'2=");lcd.print(Soglia_Rele2,2);

break;

case 12 :

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("- TENS. SOGLIA +");
lcd.setCursor(0, 1);
lcd.print(" RILASCIO=");lcd.print(Soglia_Rilascio,2);

break;


}

//------------------------------------------------------------------------------
-----------------------------------
} [/quote]

Per Aquila1 :
Mi sono basato sul datasheet dei LED.
Ad esempio il Led da 10W può essere pilotato in corrente fino a 1000mA e in questo caso emetterà circa 800Lm.
A 800mA dal diagramma emette circa 600Lm più che sufficienti per i miei scopi.
A questo punto con un amperometro in serie al LED regolo il driver (LM2556) in maniera tale da avere 800mA di assorbimento ......
-attendo la climatizzazione...
-confermo la corrente assorbita......
-misuro la tensione ai capi del Led (di solito circa 9,2V).
-A questo punto riduco la tensione e disconnetto l'amperometro
-riconnetto il Led senza l'amperometro
-regolo la tensione hai capi del led (quella misurata in precedenza).

E' vero che risulta pericoloso per il led non avere un feedback sull'assorbimento ma con le dovute tolleranze funziona ....

La non variazione dei Lm è data dal fatto che il driver LM2556 (alimentatore stepdown da 1,5Euro su E---y ) piloterà il led sempre con la stessa tensione indipendentemente da quella in entrata .

  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
Luca450Mhz
Ex Member
***


--------

Gender: Male
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #7 - 23.01.13 at 14:21:00
Print Post  
Ciao,
complimenti per l'impianto!
Volevo farti un paio di domande per le luci led che hai fatto.
Nella spiegazione dell'ultimo post dici che regoli il driver LM2556 per emettere una certa corrente (guardando quello che viene assorbito). Ma l'LM2556 dovrebbe essere un generatore di tensione, non di corrente. Quindi di preciso cosa regoli in questo circuito? Perchè poi dici che regoli la tensione ai capi del led.. sempre agendo sull'LM2556?

P.S. I led dove li hai acquistati? Ho visto che su sito surplus ce ne sono di belli e non costano molto..
  
Pannelli: 3195 Wp policristallini. Inverter UPS Max Power 2kW con switch automatico su Enel. Regolatore di carica: PCM8048.
2 Batterie da autobus da 220Ah in serie. Impianto a 24 V nominali.
Impianto illuminazione giardino: 300Wp amorfi, regolatore MPPT EpSolar, inverter onda pura 300W, 100Ah batterie auto
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #8 - 23.01.13 at 22:02:00
Print Post  
Ciao Luca450Mhz e grazie
CITAZIONE Quote:
Ma l'LM2556 dovrebbe essere un generatore di tensione, non di corrente

Esatto,infatti io regolo la tensione hai capi del led .
1)La procedura che ho riportato è per leggere la tensione direttamente hai capi del diodo quando scorre la corrente desiderata (per i 10W farò scorrere 800mA e leggerò circa 9,2V).
2)Successivamente tolgo l'amperometro in serie al led e lo connetto direttamente all'LM2556.
Se adesso andresti a leggere la tensione hai capi scopriresti che non sarà piu' 9,2V .....ma una tensione maggiore perchè hai eliminato la resistenza dell'amperometro ,quindi di conseguenza una corrente maggiore che superando il valore massimo lo danneggierebbe.
Per evitare ciò ,basta ridurre la tensione prima di riconnettere il led e successivamente aumentarla di nuovo al valore misurato al punto uno.

Tu ti chiederai perchè tutta sta storia quando ci posso mettere un alimentatore a corrente costante....
Pregi
1)i regolatori LM2556 già belli e fatti vengono 1,5Euro (EB_Y)
2)non avendo la resistenza di shunt hanno maggiore efficienza ....... (è quasi vera ...)
3)essendo degli step down posso permettermi di avere un range di alimentazione molto ampio (le mie batterie variano da 26V a 21V ,e le luci restano sempre con la stessa luminosità )
4)Con lo stesso regolatore (ne compro 10 a botta ...che spesa) posso pilotare led da 1W 3W 10W e persino 20W)
Difetti
1)se si sbaglia la procedura il LED
2)per evitare che il LED bisogna farlo lavorare a circa 80% della corrente massima (ma ti assicuro che 600 lm non sono pochi )

I led li prendo sempre da EB_Y dalla cina .
-per i 10W Cold 3,5E
-per i 10W Warm 2,5E
-per i 3W 0,7E
-per i 1W -------Evitali servono a ben poco come luci

Ciao
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
giocan
Ex Member
*


--------

Gender: Male
Zodiac sign: Sagittarius
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #9 - 24.01.13 at 09:17:00
Print Post  
ciao
è possibile avere l'elenco dei componenti usati per far funzionare arduino??
grazie 1000
  
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #10 - 22.10.13 at 17:56:00
Print Post  
Aggiornamento ........
Le AGM dopo un anno e mezzo lasciano esaurite il mio mini isola ......
Sostituite con una coppia di batterie da 120Ah da avviamento ...... (seminuove a prezzo regalo) chissà ....

Dalle prime prove sembrano essere Ok ....... misurando circa 25V dopo una nottata di illuminazione ....
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
jackie2_it
Junior Member
**
Offline


--------

Posts: 96
Gender: Male
Zodiac sign: Libra
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #11 - 22.10.13 at 18:41:00
Print Post  
Ciao Elettroshocknow molto interessante il tuo impianto mi potresti indicare quali relè hai utilizzato per deviare i pannelli dal regolatore verso l'inverter?
Hai mica ancora gli schemi e lo scketch per arduino per il controllo della batteria?
Ti faccio ancora i complimenti per il tuo impianto
  

2 pannelli solari da 50 watt con regolatore steca p1010

Ecco i miei pannelli solari qui
Back to top
 
IP Logged
 
ElettroshockNow
Forum Administrator
*****
Offline


yottawatt

Posts: 3920
Location: Roma
Gender: Male
Zodiac sign: Gemini
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #12 - 22.10.13 at 19:25:00
Print Post  
CITAZIONE (jackie2&#95;it @ 22/10/2013, 19:41) Quote:
Ciao Elettroshocknow molto interessante il tuo impianto mi potresti indicare quali relè hai utilizzato per deviare i pannelli dal regolatore verso l'inverter?
Hai mica ancora gli schemi e lo scketch per arduino per il controllo della batteria?

Il codice è qualche post su nascosto in uno spoiler .
I relè sono dei classici da 16A 24Vdc ...
Ciao
Ps:essendo il mio primo progetto postato non ho curato molto i particolari per essere riprodotto ....
  

Il Tempo non lo vede nessuno,il lavoro lo vedono tutti (Mamma)
Impara a rubare con gli occhi (Papà)
Back to top
YouTube  
IP Logged
 
jackie2_it
Junior Member
**
Offline


--------

Posts: 96
Gender: Male
Zodiac sign: Libra
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #13 - 22.10.13 at 20:20:00
Print Post  
Altra piccola domanda al relè fai scollegare sia il positivo che il negativo del pannello?
  

2 pannelli solari da 50 watt con regolatore steca p1010

Ecco i miei pannelli solari qui
Back to top
 
IP Logged
 
nicola1163
Ex Member
*


--------

Re:il mio piccolo ibrido da 300Wp (isola+grid)
Reply #14 - 22.10.13 at 22:12:00
Print Post  
beato te che ce la fai..... premetto che io sono un ignorante in materia... (si vede anche dai miei post) e quindi non è una critica ma a me mi sa che 300w di pannelli sono pochi... non riesci ad ottenere 600w al giorno. Almeno da me per avere 300w per tre ore e funzionare in maniera decente sono dovuto arrivare a 820w di pannelli ..... e funziona bene da marzo a metà ottobre in inverno nisba.... ma forse tu non hai le perdite dell'inverter, visto che per i led non è necessario...
Poi probabilmente ripartisci i consumi in maniera molto più diluita nel tempo danneggiando molto meno le batterie.....
Comunque dalla mia esperienza un pannello da 100w da circa 5a al max ma a 18 volts.
A 12 (a meno che non hai un mppt efficente e costoso) si moltiplica 12x5= 60watt effettivi.
Poi ci sono da togliere le perdite di carica/scarica delle batterie (un altro 30%) e quindi da utilizzare ne rimangono 40w in max insolazione.
Se poi come me devi usare un inverter metti un altro 30% di perdita sono altri 12w che se ne vanno via quindi ne rimangono 28w effettivi utilizzabili da un pannello da 100 watt. in max insolazione!!
Questi sono i miei rilevamenti pratici... non teorici.
Comunque se l'impianto ti funziona be.... allora complimenti, vuol dire che hai una correttissima esposizione, vivi al sud, e lo hai curato così bene che hai pochissime perdite.
Dubito fortemente ti resti energia anche per il grid.... questo perchè 600w/12=50a di consumo, il tuo impianto dovrebbe dare 15a all'ora x3=45a quindi poco più di tre ore per ricaricare le batterie ma 3 ore di sole pieno le trovi solo da aprile-maggio a settembre...(da me) dubito anche sulla riserva di carica per tre giorni.....
Secondo me funziona per un giorno finchè le batterie sono nuove e con giorni buoni.... bastano 2 giorni così cosi e al terzo il giardino rimane al buio dopo qualche ora.... e in più ti solfati le batterie in brevissimo tempo...
comunque tu sei molto più esperto di me, si vede anche dall'eleganza della costruzione, complimenti... e inoltre la sperimentazione è impagabile Smiley
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint
 

TOP100-SOLAR Galleria Immagini EnergiAlternativa