Se sei già registrato           oppure    

Orario: 02/05/2024 01:54:47  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM

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


aiuto su variazione programmazione arduino
FinePagina

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/06/2017 00:03:21

Questo è output seriale del codice della dallas "tester" con 4 sonde installate. Se lo carichi, se le sonde sono state collegate correttamente, dovresti leggere qualcosa di somile. La prima sonda la chiama 0, la quarta 3.
Le sonde sono posizionate sulla breadboard una di seguito all'altra.

http://www.energialternativa.info/public/newforum/ForumEA/Q/Schermata%20del%202017_06_01%2023.png



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

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/06/2017 00:33:58

E se aggiungo la stampa su seriale delle temperature lette dal tuo codice , ottengo questo:
-----
sonda1 27.25
sonda2 27.00
sonda3 27.00
----------------------------------
sonda1 27.19
sonda2 27.00
sonda3 27.00
----------------------------------
sonda1 27.19
sonda2 27.00
sonda3 27.00
----------------------------------
sonda1 27.19
sonda2 27.00
sonda3 26.50
----------------------------------
sonda1 27.19
sonda2 27.00
sonda3 33.50
----------------------------------
sonda1 27.19
sonda2 30.00
sonda3 31.50

Nelle ultime letture toccavo con le dita due sonde
----------------------------------



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

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 02/06/2017 07:59:23

allora ci siamo non ho dormito questa notte. ora sono appena sceso e vi aggiorno.
ho scollegato la sonda è collegata al arduino volante e funziona tutto tranne che il suo valore ora si è spostato e lo da in un altra riga ma penso che vario il tutto io senza grossi problemi.
ora ho trovato il cavo che andava alla sonda mezzo fuso quando l'ho sguainato.
ora dovrei sostituire il cavo domani è spero che con tutte le accortezze che ci sono non salendo più oltre i 60C° come lo imposterò non succederà più altrimenti sarà costretto a legare la sonda al tubo di acqua in uscita è coibentarla con un po di isolane e nastro.
cosa mi consigliate voi? di rimetterla ad immersione oppure a contatto del tubo?

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 02/06/2017 10:56:00

allora dovrei invertire il valore di TS che sta per temperatura solare con il valore di TC che sta per temperatura camino.
TS è sonda1
TC è sonda2
quindi io nel listo dovrei andare a modificare tutte le voci di sonda2 con sonda1 è viceversa giusto?
vi incollo il listato qui prima di effettuare modifiche .



/*
* Sensore ultravioletti sul pin A6
* Galleggiante sul pin 10
* pulsante riempimnto serbatoio pin 11
* relè K1 e K2 sul pin A1 digitale 15
* relè K3 sul pin A2 digitale 16
* relè K4 sul pin A3 digitale 17
* relè K5 sul pin A0 digitale 14
* ....
*/


#include
#include
#include
#include

#define ONE_WIRE_BUS 2


// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire pin2(ONE_WIRE_BUS);


// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensors(&pin2); //Pin 2


// RS EN D4 D5 D6 D7
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

float sonda1;
float sonda2;
float sonda3;
byte blocco = 1;
int i = 0;
int i2 = 0;
int soglia_sole = 30; //soglia UV oltre la quale è giorno
int sensoreUV = A6; // PIN PER IL SENSORE UV
int range = 10; // oscillazione differenziale vale per uv e temperature **************************************************
int UV = 0;
int Ruv = 0 ;
String G1 = (" ");
String day = (" ");
int allarme = 60; //soglia di allarme modificabile da quì n.b. il preallarme (k6) interviene 10 gradi prima) **************************************************


void setup(void)
{
pinMode(sensoreUV, INPUT); //A6
pinMode(35, OUTPUT); // PORTA A 5V IL PIN ANALOGICO 1 QUINDI accende I RELè K1 E K2
pinMode(47, OUTPUT);
pinMode(39, OUTPUT);
pinMode(37, OUTPUT);
pinMode(49, OUTPUT);
pinMode(43, OUTPUT);
pinMode(41, OUTPUT);
pinMode(45, OUTPUT);
pinMode(19, OUTPUT); // preallarme (-10°)
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(sensoreUV, INPUT); //A6


digitalWrite(35, HIGH);
digitalWrite(47, HIGH);
digitalWrite(37, HIGH);
digitalWrite(49, HIGH);
digitalWrite(43, HIGH);
digitalWrite(39, HIGH);
digitalWrite(41, HIGH);
digitalWrite(45, HIGH);
digitalWrite(19, HIGH);

// Start up the library
blocco = 1;
sensors.begin();

lcd.begin(20, 4);
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("Buongiorno");
delay (2000);
lcd.begin(20, 4);
lcd.clear();
}

void loop(void)
{

sensors.requestTemperatures();

///////// ABBINARE SONDA CON CODICE //////////

sonda1 = sensors.getTempCByIndex(0);
sonda3 = sensors.getTempCByIndex(1);
sonda2 = sensors.getTempCByIndex(2);

///////////////////////////////////////////

//delay(800); // non modificare tempo necessario alla lettura

//if ((blocco !=1) || (blocco !=2 )|| (blocco != 3)){blocco = 1;}

UV = analogRead(sensoreUV);
if (digitalRead(10) == 1){ G1 = ("Pieno");}
else {G1 = ("Vuoto");}

if (UV >= soglia_sole) {day = ("SOLE");}
if (UV <= soglia_sole - range) {day = ("OMBRA");}

// if (digitalRead(13) == 1) i2 = 1; else i2 = 0; //Disabilitato x mancanza porte utili
//if (digitalRead(13) == 1) {i2 = 2;}
//else i2 = 0;

//switch (i2){

//case 0:{

if ((sonda1 > sonda2) && (sonda1 > sonda3) && (blocco != 1)) {

digitalWrite(47, LOW); // ACCENDE VALVOLA SONDA 3
digitalWrite(43, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 2
digitalWrite(37, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 1
delay(10000);

digitalWrite(47, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA APERTURE 3
digitalWrite(43, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 2
digitalWrite(37, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 1
blocco = 1;
}

if ((sonda2 > (sonda1 - range)) && (sonda2 > (sonda3 - range)) && (blocco != 2)){

digitalWrite(49, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 3
digitalWrite(41, LOW); // ACCENDE VALVOLA SONDA 2
digitalWrite(37, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 1
delay(10000);
digitalWrite(41, HIGH); // DISALIMENTA COMANDO VALVOLA APERTURA 2
digitalWrite(49, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 3
digitalWrite(37, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 1
blocco = 2;

}

if ((sonda3 > sonda1) && (sonda3 > sonda2) && (blocco != 3)) {
digitalWrite(49, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 3
digitalWrite(43, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 2
digitalWrite(35, LOW); // ACCENDE VALVOLA SONDA 1
delay(10000);
digitalWrite(35, HIGH); //DISALIMENTA COMANDO VALVOLA APERTURE 1
digitalWrite(43, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 2
digitalWrite(49, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 3
blocco = 3;

}

// break;
// }


//case 1: //disabilitato x mancanza porte utili
/* analogWrite(A3, 0);
analogWrite(A1, 1023);//forza k4 on e k1e2 off
delay(10);

//break;


case 2: //forza k4 off e k1e2 on
{digitalWrite(17, HIGH);
digitalWrite(15, LOW);//forza k4 off e k1e2 on
delay(10);
break;}

}*/

if (day == ("SOLE") && G1 == ("Vuoto")) {digitalWrite(39, LOW);} else digitalWrite(39, HIGH); //K3 ABILITATO QUANDO SOLE SI E G1 ABBASSATO


if (digitalRead(11) == 1) {i = 1;} // se viene premuto il tasto di riempimento pin 11
switch (i)
{
case 0:
lcd.setCursor(18, 3);
lcd.print(" ");
break;

case 1: //abilita K3 FINCHè IL SERBATOIO NoN è PIENO
{digitalWrite(39, LOW); //accende
if (digitalRead(10) == 1) {
digitalWrite(39, HIGH);
i = 0 ;
}

lcd.setCursor(18, 3);
lcd.print("R.");

break;
}
}


if (sonda1 > allarme) {digitalWrite(45, LOW);} // se T1 supera allarme abilita K4
delay (10);
if (sonda1 < (allarme - 1)) {digitalWrite(45, HIGH); }// se T1 scende di un grado sotto l'allarme disabilita K4

if (sonda1 > allarme-10) {digitalWrite(19, LOW);} // se T1 supera preallarme abilita K5
delay (10);
if (sonda1 < (allarme -11)) {digitalWrite(19, HIGH);} // se T1 scende di un grado sotto il preallarme disabilita K4



// sensors.requestTemperatures();// Invia il comando di lettura delle temperatura


lcd.setCursor(0, 0);
lcd.print("UV: ");
lcd.setCursor(4, 0);
lcd.print (" ");
lcd.setCursor(4, 0);
lcd.print (UV);
lcd.setCursor(15, 2);
lcd.print("Serb:");
lcd.setCursor(15, 3);
lcd.print(G1);
lcd.setCursor(13, 1);
lcd.print(" ");
lcd.setCursor(15, 1);
lcd.print (day);
lcd.setCursor(11, 0);
lcd.print("All.: ");
lcd.setCursor(17, 0);
lcd.print (allarme);
lcd.setCursor(0, 1);
lcd.print("TS:");
lcd.setCursor(6, 1);
lcd.print (sonda1);
lcd.print ("'C ");
lcd.setCursor(0, 2);
lcd.print("TC:");
lcd.setCursor(6, 2);
lcd.print (sonda2);
lcd.print ("'C ");
lcd.setCursor(0, 3);
lcd.print("TP:");
lcd.setCursor(6, 3);
lcd.print (sonda3);
lcd.print ("'C ");


delay(100);

}

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 02/06/2017 11:02:09

Modifica così:


///////// ABBINARE SONDA CON CODICE //////////
   
   sonda1 = sensors.getTempCByIndex(2);
   sonda3 = sensors.getTempCByIndex(1);
   sonda2 = sensors.getTempCByIndex(0);

   ///////////////////////////////////////////



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

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 02/06/2017 13:43:22

CITAZIONE (calcola, 02/06/2017 11:02:09 ) Discussione.php?213983&7#MSG94

Modifica così:


///////// ABBINARE SONDA CON CODICE //////////
   
   sonda1 = sensors.getTempCByIndex(2);
   sonda3 = sensors.getTempCByIndex(1);
   sonda2 = sensors.getTempCByIndex(0);

   ///////////////////////////////////////////

ok

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/06/2017 10:35:27

allora oggi ho messo il cavo nuovo o preso un 3x0,75 guainato l'ho sostituito ma all accensione del arduino il problema ricomincia, mah se attacco direttamente la sonda al arduino va tutto bene.
per evitare che abbia fatto errori nel collegamento apposto di scollegare la sonda dalla giunzione ho tagliato 10 cm prima in modo che potevo ricollegare nuovamente gli stessi colori e vedere se era un mio errore ed invece va tutto bene.
ho sfilato il cavo in caso era un problema di campi magnetici e messo tutto volante ed il problema rimane che non funziona la sonda.
mi sembra una maledizione più che sfortuna.



Modificato da epry - 03/06/2017, 11:42:58
 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 03/06/2017 12:26:55

Lascia tutto collegato,poi carica il codice tester degli esempi della libreria dallas e posta l'output della seriale



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

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/06/2017 13:37:27

Dall.DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
RequestingDallas Temperature IC Control Library Demo
Locating devices...Found 0 devices.
Parasite power is: OFF
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE

è continua sempre cosi
se collego la sonda eliminando i 5mt di cavo mi da questo



Dalle: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for deviDallas Temperature IC Control Library Demo
Locating devices...Found 3 devices.
Parasite power is: OFF
Found device 0 with address: 2808DA2A060000E6
Setting resolution to 9
Resolution actually set to: 9
Found device 1 with address: 28E4402C060000B1
Setting resolution to 9
Resolution actually set to: 9
Found device 2 with address: 28FF58C57416038E
Setting resolution to 9
Resolution actually set to: 9
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.00 Temp F: 78.80
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70
Temperature for device: 2
Temp C: 26.50 Temp F: 79.70
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 34.00 Temp F: 93.20
Temperature for device: 1
Temp C: 26.50 Temp F: 79.70


allora ho preso un cavo da 5mt ho collegato la sonda e niente poi l'ho suddiviso in tre parti e man mano che lo accorciavo collegavo la sonda ed alla fine come sono arrivato nuovamente a sonda diretta funziona.
però per le altre sonde non ho questo problema perché una ha un cavo da 8mt circa e l'altra 12mt circa



Modificato da epry - 03/06/2017, 16:36:59
 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/06/2017 16:50:15

potrebbe essere che l'alimentatore suo non riesca a fornire alimentazione? se collego anche la porta usb al pc ed alimentatore insieme forse ha più alimentazione che dite?

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 03/06/2017 20:10:38

ho risolto.
leggendo quello che mi avevi detto che tu usi una resistenza da 3k3 ed a volte sei costretto ad usarla da 4k7 in alcuni casi ho voluto tagliare la testa al toro è siccome non avevo una 3k3 è non potevo dissaldare il tutto per cambiarla ho fatto 2 calcoli con la legge di hom ed ho messo una 12k in parallelo sul filo della sonda portando il valore della resistenza equivalente a 3k3.

ora funziona tutto Faccine/Smileys_0228.gif

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 03/06/2017 22:53:55


CITAZIONE

Molti sensori si possono collegare così, tutti in parallelo ed una resistenza da 4,7K tra 5V ed il pinout, però la resistenza non saldarla in modo definitivo, potrebbe rendersi necessario cambiarla con una di altro valore.


Mi auto cito, é un consiglio che ti avevo dato il 2 ottobre scorso perché quando si ha a che fare con cavi lunghi occorre spesso variare la resistenza.
Se ora funziona non toccare, se un domani non dovesse più funzionare, dissalda la resistenza dal circuito e saldane una del valore che troverai adatto tra il vcc ed il data di una sonda, anche lungo il cavo.



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

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 04/06/2017 07:50:21

CITAZIONE (calcola, 03/06/2017 22:53:55 ) Discussione.php?213983&7#MSG101


CITAZIONE
Molti sensori si possono collegare così, tutti in parallelo ed una resistenza da 4,7K tra 5V ed il pinout, però la resistenza non saldarla in modo definitivo, potrebbe rendersi necessario cambiarla con una di altro valore.


Mi auto cito, é un consiglio che ti avevo dato il 2 ottobre scorso perché quando si ha a che fare con cavi lunghi occorre spesso variare la resistenza.
Se ora funziona non toccare, se un domani non dovesse più funzionare, dissalda la resistenza dal circuito e saldane una del valore che troverai adatto tra il vcc ed il data di una sonda, anche lungo il cavo.

non avevo pensato a questo inconveniente ed avevo saldato tutto

 

epry

Avatar
MegaWatt


Gruppo:Utente
Messaggi:512

Stato:



Inviato il: 04/06/2017 13:10:41

ho modificato il listato perché in alcuni punti dove diceva sonda1 < sonda2 ecc.ecc. non erano impostati i range e le elettrovalvole impazzivano se la temperatura era uguale .
ora inserisco l'ultimo listato anche perché se qualcuno vorrà cimentarsi nella mia stessa impresa lo potrà fare senza problemi.
è vi inserisco un piccolo video caricato velocemente su YouTube per farvi vedere come fare per non far salire la temperatura oltre alla soglia stabilita.
LINK


ecco il listato completo.


/*
* Sensore ultravioletti sul pin A6
* Galleggiante sul pin 10
* pulsante riempimnto serbatoio pin 11
* relè K1 e K2 sul pin A1 digitale 15
* relè K3 sul pin A2 digitale 16
* relè K4 sul pin A3 digitale 17
* relè K5 sul pin A0 digitale 14
* ....
*/


#include
#include
#include
#include

#define ONE_WIRE_BUS 2


// Imposta la comunicazione oneWire per comunicare
// con un dispositivo compatibile
OneWire pin2(ONE_WIRE_BUS);


// Passaggio oneWire reference alla Dallas Temperature.
DallasTemperature sensors(&pin2); //Pin 2


// RS EN D4 D5 D6 D7
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

float sonda1;
float sonda2;
float sonda3;
byte blocco = 1;
int i = 0;
int i2 = 0;
int soglia_sole = 30; //soglia UV oltre la quale è giorno
int sensoreUV = A6; // PIN PER IL SENSORE UV
int range = 1; // oscillazione differenziale vale per uv e temperature **************************************************
int UV = 0;
int Ruv = 0 ;
String G1 = (" ");
String day = (" ");
int allarme = 60; //soglia di allarme modificabile da quì n.b. il preallarme (k6) interviene 10 gradi prima) **************************************************


void setup(void)
{
pinMode(sensoreUV, INPUT); //A6
pinMode(35, OUTPUT); // PORTA A 5V IL PIN ANALOGICO 1 QUINDI accende I RELè K1 E K2
pinMode(47, OUTPUT);
pinMode(39, OUTPUT);
pinMode(37, OUTPUT);
pinMode(49, OUTPUT);
pinMode(43, OUTPUT);
pinMode(41, OUTPUT);
pinMode(45, OUTPUT);
pinMode(19, OUTPUT); // preallarme (-10°)
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(sensoreUV, INPUT); //A6


digitalWrite(35, HIGH);
digitalWrite(47, HIGH);
digitalWrite(37, HIGH);
digitalWrite(49, HIGH);
digitalWrite(43, HIGH);
digitalWrite(39, HIGH);
digitalWrite(41, HIGH);
digitalWrite(45, HIGH);
digitalWrite(19, HIGH);

// Start up the library
blocco = 1;
sensors.begin();

lcd.begin(20, 4);
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("Buongiorno");
delay (2000);
lcd.begin(20, 4);
lcd.clear();
}

void loop(void)
{

sensors.requestTemperatures();

///////// ABBINARE SONDA CON CODICE //////////

sonda1 = sensors.getTempCByIndex(2);
sonda3 = sensors.getTempCByIndex(1);
sonda2 = sensors.getTempCByIndex(0);

///////////////////////////////////////////

//delay(800); // non modificare tempo necessario alla lettura

//if ((blocco !=1) || (blocco !=2 )|| (blocco != 3)){blocco = 1;}

UV = analogRead(sensoreUV);
if (digitalRead(10) == 1){ G1 = ("Pieno");}
else {G1 = ("Vuoto");}

if (UV >= soglia_sole) {day = ("SOLE ");}
if (UV <= soglia_sole - range) {day = ("OMBRA");}

// if (digitalRead(13) == 1) i2 = 1; else i2 = 0; //Disabilitato x mancanza porte utili
//if (digitalRead(13) == 1) {i2 = 2;}
//else i2 = 0;

//switch (i2){

//case 0:{

if ((sonda1 > sonda2) && (sonda1 > sonda3) && (blocco != 1)) {

digitalWrite(47, LOW); // ACCENDE VALVOLA SONDA 3
digitalWrite(43, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 2
digitalWrite(37, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 1
delay(10000);

digitalWrite(47, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA APERTURE 3
digitalWrite(43, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 2
digitalWrite(37, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 1
blocco = 1;
}

if ((sonda2 > (sonda1 - range)) && (sonda2 > (sonda3 - range)) && (blocco != 2)){

digitalWrite(49, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 3
digitalWrite(41, LOW); // ACCENDE VALVOLA SONDA 2
digitalWrite(37, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 1
delay(10000);
digitalWrite(41, HIGH); // DISALIMENTA COMANDO VALVOLA APERTURA 2
digitalWrite(49, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 3
digitalWrite(37, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 1
blocco = 2;

}

if ((sonda3 > sonda1) && (sonda3 > sonda2) && (blocco != 3)) {
digitalWrite(49, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 3
digitalWrite(43, LOW); // ALIMENTA COMANDO CHIUSURA VALVOLA 2
digitalWrite(35, LOW); // ACCENDE VALVOLA SONDA 1
delay(10000);
digitalWrite(35, HIGH); //DISALIMENTA COMANDO VALVOLA APERTURE 1
digitalWrite(43, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 2
digitalWrite(49, HIGH); // DISALIMENTAZIONE COMANDO VALVOLA CHIUSURA 3
blocco = 3;

}

// break;
// }


//case 1: //disabilitato x mancanza porte utili
/* analogWrite(A3, 0);
analogWrite(A1, 1023);//forza k4 on e k1e2 off
delay(10);

//break;


case 2: //forza k4 off e k1e2 on
{digitalWrite(17, HIGH);
digitalWrite(15, LOW);//forza k4 off e k1e2 on
delay(10);
break;}

}*/

if (day == ("SOLE ") && G1 == ("Vuoto")) {digitalWrite(39, LOW);} else digitalWrite(39, HIGH); //K3 ABILITATO QUANDO SOLE SI E G1 ABBASSATO


if (digitalRead(11) == 1) {i = 1;} // se viene premuto il tasto di riempimento pin 11
switch (i)
{
case 0:
lcd.setCursor(18, 3);
lcd.print(" ");
break;

case 1: //abilita K3 FINCHè IL SERBATOIO NoN è PIENO
{digitalWrite(39, LOW); //accende
if (digitalRead(10) == 1) {
digitalWrite(39, HIGH);
i = 0 ;
}

lcd.setCursor(18, 3);
lcd.print("R.");

break;
}
}


if (sonda1 > allarme) {digitalWrite(45, LOW);} // se T1 supera allarme abilita K4
delay (10);
if (sonda1 < (allarme - 1)) {digitalWrite(45, HIGH); }// se T1 scende di un grado sotto l'allarme disabilita K4

if (sonda1 > allarme-10) {digitalWrite(19, LOW);} // se T1 supera preallarme abilita K5
delay (10);
if (sonda1 < (allarme -11)) {digitalWrite(19, HIGH);} // se T1 scende di un grado sotto il preallarme disabilita K4



// sensors.requestTemperatures();// Invia il comando di lettura delle temperatura


lcd.setCursor(0, 0);
lcd.print("UV: ");
lcd.setCursor(4, 0);
lcd.print (" ");
lcd.setCursor(4, 0);
lcd.print (UV);
lcd.setCursor(15, 2);
lcd.print("Serb:");
lcd.setCursor(15, 3);
lcd.print(G1);
lcd.setCursor(13, 1);
lcd.print(" ");
lcd.setCursor(15, 1);
lcd.print (day);
lcd.setCursor(11, 0);
lcd.print("All.: ");
lcd.setCursor(17, 0);
lcd.print (allarme);
lcd.setCursor(0, 1);
lcd.print("TS:");
lcd.setCursor(6, 1);
lcd.print (sonda1);
lcd.print ("'C");
lcd.setCursor(0, 2);
lcd.print("TC:");
lcd.setCursor(6, 2);
lcd.print (sonda2);
lcd.print ("'C");
lcd.setCursor(0, 3);
lcd.print("TP:");
lcd.setCursor(6, 3);
lcd.print (sonda3);
lcd.print ("'C");


delay(100);

}

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 04/06/2017 14:46:55

Ottimo, vedrai che pian piano riuscirai ad adattarlo completamente alle tue esigenze



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

 
 InizioPagina
 

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

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum