//----------------------------------------------------------
//LIBRERIE DA CARICARE
#include <eeprom.h>
#include <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
own-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;VON1=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;
}
//-----------------------------------------------------------------------------------------------------------------
}
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 .
Luca450Mhz il 23/1/2013, 14:21
Re:il mio piccolo ibrido da 300Wp (isola+grid)
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..
ElettroshockNow il 23/1/2013, 22:02
Re:il mio piccolo ibrido da 300Wp (isola+grid)
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....
Pregi1)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)
Difetti1)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
giocan il 24/1/2013, 9:17
Re:il mio piccolo ibrido da 300Wp (isola+grid)
ciao
è possibile avere l'elenco dei componenti usati per far funzionare arduino??
grazie 1000
ElettroshockNow il 22/10/2013, 17:56
Re:il mio piccolo ibrido da 300Wp (isola+grid)
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 ....
jackie2_it il 22/10/2013, 18:41
Re:il mio piccolo ibrido da 300Wp (isola+grid)
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
ElettroshockNow il 22/10/2013, 19:25
Re:il mio piccolo ibrido da 300Wp (isola+grid)
CITAZIONE (jackie2_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 ....
jackie2_it il 22/10/2013, 20:20
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Altra piccola domanda al relè fai scollegare sia il positivo che il negativo del pannello?
nicola1163 il 22/10/2013, 22:12
Re:il mio piccolo ibrido da 300Wp (isola+grid)
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 :-)
ElettroshockNow il 22/10/2013, 22:48
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Ciao Nicola,
L'impianto descritto è stato realizzato ad inizio estate 2012.
Da allora fino al crollo delle batterie (1 mese fa') copriva il mio fabbisogno.
Il crollo è da imputarsi ad una mia malgestione dei livelli minimi del banco oltre ad una qualità da verificare (erano rigenerate)
I pannelli mono 2x100wp e 2x50wp sono posizionati a Sud con 45º di elevazione garantendomi nel periodo invernale circa 700-800Wh/giorno (tendenzialmente per il 90% dell'inverno ).
Il consumo delle lampade non supera i 500Wh al giorno , in quanto il timer del regolatore è impostato a 9 ore e le lampadine non lavorano alla massima intensità .
Certo non è giorno , ma l'illuminazione è ben distibuita .
Il surpluss di energia è avvenuto sopratutto in estate (!!) ed ha prodotto circa 100kwh (circa 10mesi)
alexamma il 23/10/2013, 12:33
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Come al solito un gran bel lavoro,calcolato,postato e spiegato......che dire.....complimenti.
ElettroshockNow il 23/10/2013, 13:56
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Grazie Alexamma ,
questo è stato il mio secondo post (il primo la presentazione
) e nella inesperienza non ho curato molto i particolari matematici .
Rileggendomi noto delle anomalie ,ma solo ora con un pizzico di esperienza in più riesco a focalizzare ,ma non li correggo (mi piace
sono sfumature ) .
Cmq ora l'impianto è integrato nell'ibrido più grande ,ma il Solar Platform fà da supervisore ,regalandomi offline un analisi di quello che accade al piccolo banco ...
il grafico lo comparerò con quello tra un anno
...... vediamo cosa succederà alle batterie
Ciao e buon Forum
ElettroshockNow
Ps:ON/OFF inverter nella realtà è ON/OFF luci
nicola1163 il 23/10/2013, 18:53
Re:il mio piccolo ibrido da 300Wp (isola+grid)
bè ritiro tutto quello che ho detto :-)) dal grafico le batterie non vanno mai sotto i 12v ognuna segno che reggono benissimo..... complimenti!!!!
ElettroshockNow il 24/10/2013, 18:12
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Grazie Nicola ,
mi ritengo soddisfatto dell'equilibrio pannelli/batterie/assorbimento ... anche se devo aggiungere nel programma una soglia minima di intervento.
Adesso stacca quando decide il cineregolatore intorno ai 21V
pericolo !!!!!! .
Come confermato da te ,il banco non deve mai scendere sotto i 24V ,mantenendo una carica residua del 50% e aumentando i cicli carica/scarica.
Per il resto delle giornate il banco non deve essere scaricato per più del 30% .... almeno cerco
Oggi ho fatto un'altro aggiornamento ....
Ho aumentato la potenza di una delle lampade che illuminano la strada portandola a 12W (ex 4x3W omni) .....,ma il sistema di alettatura non garantiva una temperatura adeguada per i led (>50°)......
Quindi ho fissato i led in maniera diversa ...... perdendo parte dell'omni (c'è una linea più scura sui bordi) ,ma ora i led lavorano quasi a temperatura ambiente .....
Dimenticavo ..... il case del led non è isolato ..... solo ora montandolo su un alluminio non anodizzato me ne sono reso conto
(buuuuu )
Ciao
ElettroshockNow
jackie2_it il 24/10/2013, 21:18
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Per dei pannelli più piccoli adesso ho 3 pannelli da 50 watt posso utilizzare questi relè
http://www.ebay.it/itm/140764956257?ssPage...984.m1497.l2649 che potrei pilotare direttamente da arduino?
sono troppo piccoli come tensione?
ElettroshockNow il 28/10/2013, 15:48
Re:il mio piccolo ibrido da 300Wp (isola+grid)
CITAZIONE (jackie2_it @ 24/10/2013, 21:18) [quote]Per dei pannelli più piccoli adesso ho 3 pannelli da 50 watt posso utilizzare questi relè www.ebay.it/itm/140764956257?ssPage...984.m1497.l2649 che potrei pilotare direttamente da arduino?
sono troppo piccoli come tensione?
Nono la tensione è corretta in quanto è la tensione necessaria a far funzionare il circuito.
Il problema potrebbe essere la corrente massima ,che garantisco è la metà di quella dichiarata .
Personalmente ho fuso più di un relè (pari specifiche di quello mostrato ... anzi ... di miglior marca) con 7A ...quindi penso che il carico massimo che puoi collegarci siano 5A ...
5A sono comunque sufficienti per commutare la corrente di un pannello (intendo pannelli 50W Vmpp 18V Impp 2.8A),quindi per me vanno bene
ElettroshockNow il 28/10/2013, 16:12
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Un Log di 4 Giorni ....... bruttissimo tempo nel secondo .... bruttino fino a metà giornata del terzo e bellissimo nel quarto .
Se non voglio scendere sotto il 50% (24v) credo di avere massimo un accumulo di 1,5 giorni...
jumpjack il 1/11/2013, 11:40
Re:il mio piccolo ibrido da 300Wp (isola+grid)
CITAZIONE (ElettroshockNow @ 2/1/2013, 13:46) [quote]Ciao a tutti........
Vi presento il mio ibrido (isola+grid) ,nato grazie hai 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
Non capisco come faccia a funzionare, se confondi W con Wh e pensi che tenendo un pannello da 300 Wp al sole per 2 ore ottieni 600Wh.
Non è così che si fa il conto.
Con un pannello da 300 Wp puoi ottenere 600 Wh in un giorno intero se è inverno, in mezza giornata d'estate!
Questo perchè il sole non è perpendicolare ai pannelli per tutto il tempo, e anche se lo fosse (grazie a un costoso, complicato e ingombrante inseguitore solare), comunque cambia lo spessore di atmosfera tra pannelli e sole durante il giorno, quindi la produzione non è mai costante.
Ci sono formule, tabelle e grafici per calcolare l'energia (Wh) prodotta da pannelli di data potenza (Wp), ma grosso modo, per l'Italia, si può considerare che 1 Wp produce 2 Wh al giorno d'inverno e 4 Wh d'estate.
Quindi il tuo impianto da 300Wp con 2 ore di sole probabilmente può tenere accese 6 luci da 10 W non per 10 ore, ma per meno di 2.
ElettroshockNow il 1/11/2013, 12:15
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Mi Autocito per risponderti
CITAZIONE (ElettroshockNow @ 23/10/2013, 13:56) [quote]questo è stato il mio secondo post (il primo la presentazione ) e nella inesperienza non ho curato molto i particolari matematici .
Rileggendomi noto delle anomalie ,ma solo ora con un pizzico di esperienza in più riesco a focalizzare ,ma non li correggo (mi piace sono sfumature ) .
CITAZIONE (jumpjack @ 1/11/2013, 11:40) [quote]Non capisco come faccia a funzionare.........
Ci sono formule, tabelle e grafici per calcolare l'energia (Wh) prodotta da pannelli di data potenza (Wp), ma grosso modo, per l'Italia, si può considerare che 1 Wp produce 2 Wh al giorno d'inverno e 4 Wh d'estate.
Appunto ... ti sei risposto solo
Sono 300Wp esposti a sud 45° di angolazione . Producono circa 2,5Wh a Wp in una giornata non nuvolosa ... quindi un pizzoco in più rispetto hai tuoi dati ,garantendomi un accumulo di 750Wh ...... (non contando le perdite del PWM .... altrimenti )
Potenza sufficiente a riportare il banco al 100% o prossima al 100% .... (dovrà aspettare il giorno dopo )
Allego anche una simulazione per soddisfare formule,tabelle e grafici
I grafici che ho postato servono appunto per analizzare l'impianto e per capire perchè funziona .
A pieno inverno posterò una giornata tipo ....
Ciao
ElettroshockNow
jumpjack1 il 1/11/2013, 17:25
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Non avevi detto di avere solo 2 ore di sole?!?
O forse intendevi che pensavi BASTASSERO solo due ore di sole?
ElettroshockNow il 1/11/2013, 17:47
Re:il mio piccolo ibrido da 300Wp (isola+grid)
CITAZIONE (jumpjack1 @ 1/11/2013, 17:25) [quote]Non avevi detto di avere solo 2 ore di sole?!?
O forse intendevi che pensavi BASTASSERO solo due ore di sole?
Nono ,i pannelli sono correttamente orientati a sud e con una angolazione da garantirmi qualche wh in più in inverno .... (anzi a dire il vero ero tendente a 60º )
Le due ore da me citate erano solo un calcolo puramente teorico ...
La realtà è diversa e bisogna basarsi su buone simulazioni o su esperienze acquisite o altrui.
Il mio dimensionamento è stato dettato dalle piccole esperienze con il lampione solare (mia prima esperienza con solare ...descritto in un'altra discussione..)
Ciao
ElettroshockNow il 1/4/2014, 13:20
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Oggi piccolo aggiornamento .
Dopo un mese di prova posso confermare che questo tipo di lampada funziona egreggiamente anche con un impianto 24V in quanto dispone al suo interno un alimentatore step-down a corrente costante che fortunatamente ha ottime tolleranze.
Il suo consumo a 24V è 260mA .
ElettroshockNow il 3/1/2015, 11:23
Re:il mio piccolo ibrido da 300Wp (isola+grid)
Che belle che erano le mie batterie ...
Qualche settimana fà ho avuto un calo improvviso delle capacità del banco .
Dopo aver eseguito un rapido check livello e analizzati i grafici sono arrivato alla conclusione che era il momento di cambiare il banco (ovviamente di recupero).
Però non disponendolo ho pensato (errore) ..... alziamo un'altro pochino la tensione di fine carica diciamo a 32V :
A cadenza regolare è mia abitudine (non disponendo di un buon regolatore) alzare la soglia a 31V ogni volta che riscontravo una tensione inferiore a 24V a fine notte per un solo ciclo di carica.
Questa volta 32V per due settimane ..... OOOOOOOOOO
La sonda di temperatura non ha riscontrato niente di anomalo (con stò freddo) .... ma due giorni fà ..... il banco è letteralmente scomparso dai monitor ...
Oggi sono andato a vedere il motivo ....
Miiiiii è esplosa ...
Vabbè aggiungiamo alle cose da fare ...... per ora attivo l'alimentatore di emergenza
Per il prossimo anno chiedo a Babbo Natale una bella Plantè 24V 30Ah
Ciao
Elettro
Jecko81 il 3/1/2015, 13:33
Re:il mio piccolo ibrido da 300Wp (isola+grid)
CITAZIONE (ElettroshockNow, 03/01/2015 11:23:50 ) [quote]
Per il prossimo anno chiedo a Babbo Natale una bella Plantè 24V 30Ah
kekko babbo natale ?:lol: