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

VISUALIZZA L'ALBUM

Pag: (76)  < ...  7   8   9   [10]   11   12   13  ...>    (Ultimo Msg)


FinePagina

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 8/9/2013,09:56

Ho dato una ulteriore limata al codice, sopratutto in questa parte

---- in origine questo

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(inputPin); //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)
index = 0; //Alla fine dell'array resetta l'indice a 0

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

----- l'ho sintetizzato così

// Loop infinito
void loop()
{
for (int A = 0; A < NUMREADINGS; A++)
{
total += analogRead(a0pin); //Legge la tensione su A0
delay(250); //ritardo in millisecondi
}
average = total / NUMREADINGS; //Calcola la media
index = 0; // Azzera per il prossimo calcolo
total = 0;

Ho gli stessi valori, ma mi sembra più semplice e logico.

Codice intero

// Arduino Pro Mini.. Codice per controllo tensione per commutazione enel/batterie.. Edit 17-set-2013
// VERSIONE CON DISTACCO FRIGO prima della commutazione (rettifiche by sabin) (linea con relè temporizzato)
// (relay1 high spento (enel), fili su contatto NO, Low = batterie). E pulsante x passaggio batterie.
// Prodotto da calcola (antrec.geo@yahoo.com) ..

#include "OneWire.h" // Librerie. consente di accedere ai dispositivi 1-wire (1 filo)
#include "Wire.h"

// Definire margine di tensione
#define tensione_bassa 23.4 //valori tipo: 11.9 (sistema 12V); 23.9 (sistema 24V)
#define tensione_alta 27.0 //valori tipo: 13.7 (sistema 12V); 27.4 (sistema 24V)

#define coefficiente_conversione 0.05800 // per alzare tensione letta, alzare numero..
// collegato a bat-24V 0.05800... 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, aperto/chiuso
#define NUMREADINGS 10 // Numero letture tensione

int total = 0; // Somma letture
int average = 0; // Media
int salto = 5; // salta conferma verifica
int pulsante = 0; // controllo pulsante, x passare a batterie

// Comunicazione seriale e settaggi
void setup()
{
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);

}

// Loop infinito
void loop()
{
for (int A = 0; A < NUMREADINGS; A++)
{
total += analogRead(a0pin); //Legge la tensione su A0
delay(250); //ritardo in millisecondi
}
average = total / NUMREADINGS; //Calcola la media
total = 0; // Azzera per il prossimo calcolo

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

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

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

pulsante = analogRead(a1pin); // verifica il pulsante per passaggio anticipato a batterie
if (pulsante > 800)
{
{
if (salto != 10 )
digitalWrite(RELAY3, LOW);
delay(2000);
digitalWrite(RELAY3, HIGH);
salto = 10;
}
digitalWrite(RELAY1, LOW);
digitalWrite(RELAY2, HIGH);
delay(4000);
}

Serial.print(" Voltaggio batteria media 10 letture: ";
Serial.println(VoltageReading);
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(" Lettura pin A1 (pulsante): ";
Serial.println(pulsante);
Serial.println();
}

//Fine listato





Modificato da Sabin - 17/9/2013, 22:56


---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

frandi

Avatar
KiloWatt


Utente
Msg:276

Stato:



Inviato il: 8/9/2013,16:57

Per chi non sa programmare ed è a digiuno di montaggi elettronici ho trovato una scheda già montata e funzionante che può fare le stesse funzioni di quella di calcola.
Certo, costerà qualche ero in più ma non poi tanti. Che ne pensate? Può andar bene?
www.wispmax.com/teracom-snmp-ethern...-tcw112-wd.html

oppure questa:
http://www.wispmax.com/teracom-snmp-ethern...tcw122b-wd.html



---------------
-Impianto da 5,04 kWp - 24 moduli Aleo 210W e inverter Power-One 6 kW dal 2007
-Impianto da 100...

 

calcola
GigaWatt


Utente
Msg:4435

Stato:



Inviato il: 8/9/2013,20:30

X Frandi
La scheda è essenzialmente una interfaccia ethernet che può gestire delle porte I/O. Ammesso che riesci a collegare il partitore (che comunque dovrai fare) all'ingresso analogico, poi dovrai collegare il solito zoccoletto relay alle uscite, ed il software di gestione? Quello è specifico. Alla fine devi sempre usare gli stessi componenti della mia, e non hai il software. Se ti è necessaria una scheda di gestione per l'UPS, segui le istruzioni della prima pagina è facile da fare e funziona senza problemi. Con 10 euro hai risolto. Non è necessario che tu sappia programmare il codice è già disponibile, solo da caricare. Non ti impressionare delle modifiche di Sabin, si è appassionato e giustamente vuole sperimentare, ma se non hai voglia o non puoi approfondire, carica il software presente alla prima pagina ed hai risolto.

X Sabin, nel codice non vi è nulla di superfluo, quella parte che ti sembra inutile in realtà serve per la funzione di setup e nel void gestisce il dati come una matrice di valori, è solo un metodo più evoluto del semplice ciclo "for". Inoltre elimini quella parte del codice che ripete il ciclo NUMREADINGS per se stesso. Dubito che i valori di tensione letti siano uguali.
Comunque contento tu...



---------------
Impara l'arte e mettila da parte

14 pannelli da 100w, inverter kemapower 3kw, regolato...

 

frandi

Avatar
KiloWatt


Utente
Msg:276

Stato:



Inviato il: 9/9/2013,06:58

Il fatto che sia una scheda Ethernet penso sia positivo in quanto posso gestirla da qualunque parte. Poi ho premesso che serve a chi è completamente digiuno di elettronica. A mio parere non serve il partitore in quanto si possono impostare sull'interfaccia presente i valori di tensione a cui attivare i relè che sono già a bordo della scheda, e si possono attivare anche a valori di temperatura o di segnale digitale.
Nulla da togliere alla tua soluzione semplice ed economica ma se puoi approfondire la praticità' di quella che vorrei prendere io e darmi un consiglio te ne sono grato.



---------------
-Impianto da 5,04 kWp - 24 moduli Aleo 210W e inverter Power-One 6 kW dal 2007
-Impianto da 100...

 

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 9/9/2013,13:30

CITAZIONE (calcola @ 8/9/2013, 21:30)
...
X Sabin, nel codice non vi è nulla di superfluo, quella parte che ti sembra inutile in realtà serve per la funzione di setup e nel void gestisce il dati come una matrice di valori, è solo un metodo più evoluto del semplice ciclo "for". Inoltre elimini quella parte del codice che ripete il ciclo NUMREADINGS per se stesso. Dubito che i valori di tensione letti siano uguali.
Comunque contento tu...

Io purtroppo quando non riesco a capire una cosa, e vedo una
soluzione, la cambio faccine/smile.gif
La parte che non capivo era la sottrazione dell'ultima lettura.
Ma come ho detto, appena ho provato questo semplificato la lettura
della tensione era stabile.
Penso che arduino non si dispiaccia di fare qualche calcolo in meno.
Con delay(250) le letture si completano in quasi 3 secondi



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

shadowcaster
MegaWatt


Utente
Msg:322

Stato:



Inviato il: 17/9/2013,15:25

Salve a tutti. Mi sto dilettando con l'arduino, possiedo il mega, per il quale ho avuto difficoltà nell'installazione dei drivers, ed il micro, come da post…ma con cui non riesco a dialogare…non riesco, in nessun modo, a caricare i drivers corretti…ho seguito diversi tutorial, ma nulla…ho Windows 7 ultimate 64 bit amd…grazie a tutti x le risposte.



---------------



 

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 17/9/2013,19:55

Se ti riferisci ai driver dell'adattatore USB/seriale io li ho trovati
mettendo il modello descritto nell'inserzione fatta dal venditore



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

shadowcaster
MegaWatt


Utente
Msg:322

Stato:



Inviato il: 17/9/2013,21:26

Ciao Sabin mi posteresti il link? Non lo riesco a trovare...
Grazie



---------------



 

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 17/9/2013,21:51

per il: PL2303hx usb to ttl rs232 ial Cable Connector (quello nero con cavo)
il sito: http://prolificusa.com/pl-2303hx-drivers/
cerca: Windows Driver Installer Setup Program
(For PL2303 HXA, XA, HXD, EA, RA, SA, TA, TB versions)

per il: USB 2.0 to TTL UART 6PIN Module Serial Converter CP2102 STC PRGMR Free cable
(quello senza cavo, rosso)
il sito: www.pololu.com/docs/0J7/all#2
cerca: Download the CP2102 drivers for Windows (4MB zip).

li ho presi dalla cronologia, era fine agosto,
dovrebbero essere questi



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

shadowcaster
MegaWatt


Utente
Msg:322

Stato:



Inviato il: 17/9/2013,23:06

Ciao e grazie...ho provato ma nulla.
Ho acquistato: http://www.ebay.it/itm/310689587420?ssPage...984.m1497.l2649
http://www.ebay.it/itm/310511987503?ssPage...984.m1497.l2649



---------------



 

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 18/9/2013,06:45

Ma nel programma di arduino,
in strumenti/porta seriale quante porte com vedi?



---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

shadowcaster
MegaWatt


Utente
Msg:322

Stato:



Inviato il: 18/9/2013,08:38

Due...ma il problema è che non mi riconosce i drivers...



---------------



 

Sabin

Avatar
MegaWatt


Utente
Msg:522

Stato:



Inviato il: 18/9/2013,12:58

Window 7 non lo conosco, l'ho solo provato
Se quando l'adattatore è scollegato il programma arduino vede una porta
e quando colleghi l'adattatore ne vede due (magari riavvii il programma), l'adattatore forse va bene.
Metti il codice sul programma, gli fai fare la verifica, se la verifica non da errori,
clicca l'icona di invio del codice e a seguire il reset di arduino.

. Su win xp l'ho installato avviando il file CP210xVCPInstaller.exe

Su Ubuntu (Linux) l'adattatore non ha dato problemi.




Modificato da Sabin - 18/9/2013, 19:41


---------------
Inverter UPS Power Star W7 (onda pura) ingresso 24 v... 220V 2 Kw con spunto da 6 Kw? (direi 3Kw) <...

 

calcola
GigaWatt


Utente
Msg:4435

Stato:



Inviato il: 19/9/2013,12:29

L'adattatore basato sul chip PL2303 da meno problemi. Prova a togliere l'adattatore, riavviare il pc ed installare i driver scaricati dal link di sabin, dopo l'installazione collega l'adattatore alla porta usb. Dovrebbe andare, ho fatto una prova con win7 e li installa. Però dicevi che hai anche un arduino mega, prova con quello il mega si collega direttamente alla porta usb, non vuole l'adattatore, i driver li installa in automatico durante l'installazione del pacchetto dell'ide.



---------------
Impara l'arte e mettila da parte

14 pannelli da 100w, inverter kemapower 3kw, regolato...

 

shadowcaster
MegaWatt


Utente
Msg:322

Stato:



Inviato il: 19/9/2013,16:28

@calcola @sabin
Grazie per il vostro aiuto. Per l'arduino mega non ho avuto problemi, mentre per il micro succede questo quando provo ad installare i drivers...



---------------



 
 InizioPagina
 

Pag: (76)  < ...  7   8   9   [10]   11   12   13  ...>    (Ultimo Msg)

Versione Completa!

Home page     TOP100-SOLAR    Home page forum