Se sei già registrato           oppure    

Orario: 29/04/2024 03:12:09  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM

Pagine: (11)   1   2   3   4   5   6   [7]   8   9   10   11    (Ultimo Msg)


Progetto controllo
FinePagina

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 30/05/2016 22:26:59

Lo scopo del progetto è quello di provare la veridicità dei dati del CE
Per fare ciò mi occorre confrontare i dati in uscita con quelli rilevati dal CE

 

giorgio54
Watt


Gruppo:Utente
Messaggi:33

Stato:



Inviato il: 30/05/2016 23:55:58

non per prepararti la pappa ma guarda questo link

http://electroncookbook.blogspot.it/2012/11/misuratore-di-consumi-elettrici-con_20.html



Modificato da BellaEli - 31/05/2016, 00:32:59
 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 31/05/2016 00:11:48

Faccine/Smileys_0088.gif

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 31/05/2016 00:12:08

Non ci capisco più nulla

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 31/05/2016 00:39:33

Kroko, quello che vuoi fare tu non è semplice come accendere un Led, un minimo di complessità la devi prevedere...
In ogni caso il progetto linkato da Giorgio54 è proprio quello che serve a te, quali sono i punti su cui vuoi chiarimenti ?

Elix



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

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 31/05/2016 07:03:30

Vi ripeto non essendo ferrato sulla programmazione non so quale parte del codice mi serve e quale no
Poi quello che ho capito fa un campionamento di un ora considerando solo il numero degli impulsi quantizzandoli in 1wh e facendo una media
Non mi avete detto che dovevo considerare sia il numero di impulsi sia il tempo tra un impulso e l'altro?

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 31/05/2016 08:55:37

Quello che posso fare è di scrivere un pezzo del codice, poi tu lo provi e le modifiche/migliorie le facciamo tutti insieme.

Intanto prova ad aggiungere alla scheda questo semplice circuito per comandare il pulsante:


http://digilander.libero.it/calcola/scheda/Diagramma%20int.jpeg




Modificato da calcola - 31/05/2016, 09:05:06


---------------
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.

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 00:22:44

CITAZIONE (calcola, 31/05/2016 08:55:37 ) Discussione.php?213706&7#MSG98

Quello che posso fare è di scrivere un pezzo del codice, poi tu lo provi e le modifiche/migliorie le facciamo tutti insieme.

Intanto prova ad aggiungere alla scheda questo semplice circuito per comandare il pulsante:


http://digilander.libero.it/calcola/scheda/Diagramma%20int.jpeg




Fatto ora?

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 10:50:25

ciao calcola ho preparato questo circuito ora se puoi mi dai il codice ?
grazie

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 12:49:18

c'è nessuno ......

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/06/2016 12:54:51

Devi avere pazienza, non ho avuto tempo. Stasera sul tardi inizierò a lavorarci e spero di riuscire a postare qualcosa.



---------------
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.

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 01/06/2016 13:00:30

Ciao Kroko,

non voglio essere antipatico ma ci devi mettere anche un po' del tuo impegno per il progetto...

Voglio dire, noi siamo qui che ti suggeriamo, ti indichiamo possibili soluzioni, proviamo a correggere errori se ne troviamo ma il lavoro dovresti farlo tu !

Inizia a buttare giù qualche riga di codice, facci capire che almeno sai far accendere un Led con Arduino diversamente occorre che prima prendi familiarità con Arduino...

Dai, non cercare la pappa bella e pronta, cucinala tu e vedrai che sarà più buona !!!

Elix



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

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 13:21:03


#include "DHT.h" // INCLUDO LIBRERIA PER SENSORI DHT

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE DISPLAY LCD CON MODULO I2C
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); //PER IL DISPLAY 2X16 è IDONEO IL VALORE 0X3F PER IL 4X20 è 0X27
const int BACKLIGH_PIN = 10; 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE WATTMETRO
int OffsetPin = A3; 
int TensionePin = A1; 
int CorrentePin_1 = A2; 
//Nuovo_Fattore_Conversione=Valore_Reale/Valore_Arduino*Fattore_Conversione_Attuale 
float Fattore_Conversione_Tensione = 0.61054; //da calcolare 
float Fattore_Conversione_Corrente_1 = 0.302; //da calcolare 
float TensioneRMS ; 
float CorrenteRMS_1 ; 
float CorrenteRMS_2 ; 
float PotenzaAttiva_1; 
float PotenzaAttiva_2; 
float PotenzaApparente_1; 
float PotenzaApparente_2; 
float FattorediPotenza_1; 
float FattorediPotenza_2;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE SENSORI TEMPERATURA DHT11
#define DHTPIN0 2                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°1 (TEMP. ESTERNA)
#define DHTPIN1 4                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°2 (TEMP. TR ALTERNATA)
#define DHTPIN2 1                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°3 (TEMP. TR CONTINUA)
#define DHTTYPE DHT11              // DEFINISCO IL TIPO DI SENSORE 
DHT dht0(DHTPIN0, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°1
DHT dht1(DHTPIN1, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°2
DHT dht2(DHTPIN2, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°3
float h0 = dht0.readTemperature(); // imposto la variabile h0 per la lettura del valore di dht0
float h1 = dht1.readTemperature(); // imposto la variabile h1 per la lettura del valore di dht1
float h2 = dht2.readTemperature(); // imposto la variabile h2 per la lettura del valore di dht2


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() { 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  pinMode(13, OUTPUT); //PIN LED GIALLO SEGNALAZIONE TEMPERATURA TR ALTERNATA 0<T<29
  pinMode(12, OUTPUT); //PIN LED ROSSO SEGNALAZIONE TEMPERATURA TR ALTERNATA  T>=30
  pinMode(11, OUTPUT); //PIN LED GIALLO SEGNALAZIONE TEMPERATURA TR CONTINUA  T>=30
  pinMode(10, OUTPUT); //PIN LED ROSSO SEGNALAZIONE TEMPERATURA TR CONTINUA  T>=30


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  dht0.begin(); //FAI PARTIRE IL SENSORE DHT11 N°1
  dht1.begin(); //FAI PARTIRE IL SENSORE DHT11 N°2
  dht2.begin(); //FAI PARTIRE IL SENSORE DHT11 N°3
  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE DISPLAY LCD CON MODULO I2C
  pinMode(BACKLIGH_PIN, OUTPUT); 
  digitalWrite(BACKLIGH_PIN, HIGH); 
  lcd.init();                      // INIZIALIZZA IL MODULO LCD 
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0); 
  lcd.print("ZeraSim Project"); //SCRIVI SULLA PRIMA RIGA
  lcd.setCursor(0,1); 
  lcd.print("VERSIONE FV 1.3"); //SCRIVI SULLA SECONDA RIGA
  delay(5000); 
  lcd.clear(); 
  ADCSRA&=0X90+ 0b101; //Setta ADC prescaler a 32 
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//STRINGHE WATTMETRO 
  float SommaV=0; 
  float SommaI_1=0; 
  float SommaP_1=0; 
  int NumCampionamenti = 20;   //CONSIDERO 20 CAMPIONAMENTI
  int Offset = analogRead(OffsetPin); 
  unsigned long start = micros() ; 
  while (micros() < (start + 20000)){ 
    float Tensioneinst = (analogRead(TensionePin)-Offset)*Fattore_Conversione_Tensione; 
    float Correnteinst_1 = (analogRead(CorrentePin_1)-Offset)*Fattore_Conversione_Corrente_1; 
    SommaV += pow(Tensioneinst,2); 
    SommaI_1 += pow(Correnteinst_1,2); 
    SommaP_1 += (Tensioneinst*Correnteinst_1); 
    NumCampionamenti++; 
  } 
  TensioneRMS = sqrt(SommaV / NumCampionamenti); 
  CorrenteRMS_1 = sqrt(SommaI_1 / NumCampionamenti); 

  if (CorrenteRMS_2 < 0.10) {//soglia minima 
    CorrenteRMS_2=0; 
    PotenzaAttiva_1 = SommaP_1/ NumCampionamenti; 
    PotenzaApparente_1 = TensioneRMS * CorrenteRMS_1; 
    FattorediPotenza_1 = PotenzaAttiva_1/PotenzaApparente_1; 
  }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRIGHE DISPLAY
  lcd.setCursor(0, 0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(TensioneRMS,0);        //IMPOSTO IL VALORE DA LEGGERE SENZA VIRGOLA
  lcd.print("V ");                 //IL VALORE SARà SEGUITO DALLA LETTERA V
  lcd.setCursor(5, 0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(CorrenteRMS_1,2);      //IMPOSTO IL VALORE DA LEGGERE CON UNA CIFRA DOPO LA VIRGOLA
  lcd.print("A ");                 //IL VALORE SARà SEGUITO DALLA LETTERA A
  lcd.setCursor(11,0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(PotenzaAttiva_1,0);    //IMPOSTO IL VALORE DA LEGGERE SENZA VIRGOLA
  lcd.print("W ");                 //IL VALORE SARà SEGUITO DALLA LETTERA W
  lcd.setCursor(16,0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(FattorediPotenza_1,1); //IMPOSTO IL VALORE DA LEGGERE CON UNA CIFRA DOPO LA VIRGOLA
  lcd.print("");                   //
  lcd.setCursor(16,1);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print("OK");                 //SCRIVO OK
  delay (7000);                    //LO LASCIO PER 7 SECONDI
  lcd.setCursor(16,1);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print("WAIT");               //SCRIVO WAIT
  delay(2000);                     //LO LASCIO PER 2 SECONDI
  lcd.setCursor(16, 1);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(17, 1);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(18, 1);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(19, 1);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(16, 0);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(17, 0);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(18, 0);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO
  lcd.setCursor(19, 0);            //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(' ');                  //LO SOVRASCRIVO CON UNO SPAZIO VUOTO


///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
//ACCENSIONE O MENO DEI LED DI SEGNALAZIONE LUMINOSA DELLA TEMPERATURA
  if (28<dht1.readTemperature()<29){    // se il sensore h1 rileva una determinata temperatura accende LED GIALLO
    digitalWrite (13, HIGH);
  }
  if (dht1.readTemperature()>=30){      // se il sensore h1 rileva una determinata temperatura accende LED ROSSO
    digitalWrite (12,HIGH);
  }
  else{                                 //ALTRIMENTI IL LED ROSSO RESTA SPENTO
    digitalWrite (12,LOW);
  }
  
  if (28<dht2.readTemperature()<29){    // se il sensore H2 rileva una determinata temperatura accende LED GIALLO
    digitalWrite (11, HIGH);
  }
  if (dht2.readTemperature()>=30){      // se il sensore H2 rileva una determinata temperatura accende LED ROSSO
    digitalWrite (10,HIGH);
  }
  else{                                 //ALTRIMENTI IL LED ROSSO RESTA SPENTO
    digitalWrite (10,LOW);
  }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//LETTURA E STAMPA SU LCD DEI VALORI DI TEMPERATURA
  float h0 = dht0.readTemperature();
  float h1 = dht1.readTemperature();
  float h2 = dht2.readTemperature();

  lcd.setCursor(0, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h0,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h0
  lcd.print("E");                  //IL VALORE SARà SEGUITO DALLA LETTERA E
  lcd.setCursor(4, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h1,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h1
  lcd.print("w");                  //IL VALORE SARà SEGUITO DAL SIMBOLO ^
  lcd.setCursor(8, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h2,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h0
  lcd.print("-");  
  
}



Modificato da BellaEli - 01/06/2016, 13:35:54
 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 13:32:08

questo è il codice che ho composto fin ora e riesco ad avere il valore della tensione, della corrente, della potenza, cosfi, le temperature dei due trasformatori che vengono anche segnalate tramite led, implemento il sistema di raffreddamento con delle ventole che per scelta vengono attivate manualmente, in più anche se non mi sembra il modo più corretto ho cercato di tenere in stampa su lcd i valori per 7sec in modo da aver eventualmente il tempo di trascriverli

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 13:43:46

1)il problema ora è che non so proprio da dove cominciare con il photodiodo

2)un altro dubbio,
che voi sappiate esiste un modo per fermare le scritte su lcd senza fermare il loop di arduino?
cioè fermare le scritte su lcd senza usare il delay?



Modificato da Kroko - 01/06/2016, 13:47:55
 
 InizioPagina
 

Pagine: (11)   1   2   3   4   5   6   [7]   8   9   10   11    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum