int blue = 20; int green = 0; int red = 0; int casa = 255; int stelle = 200; int ledblu = 0; //led blu int ledgre = 1; //led verde int ledred = 2; //led rosso int ledcasa = 9; //led casette int ledstelle1 = 10; //led di potenza per tremolio stelle int ledstelle2 = 11; //led di potenza per tremolio stelle int ledstelle3 = 12; //led di potenza per tremolio stelle int ledstelle4 = 13; //led di potenza per tremolio stelle int randNumber1 = 10;//variabile tremolio 1 int randNumber2 = 10;//variabile tremolio 2 int randNumber3 = 10;//variabile tremolio 3 int randNumber4 = 10;//variabile tremolio 4 int tempo = 10000; //tempo notte giorno in millisecondi di base unsigned int time = 1; //variabile che contiene la regolazione durata giorno notte int ttime = 60; //velocita passaggio notte giorno int lumstelle1 = 10; //variabile stelle 1 int lumstelle2 = 10; //variabile stelle 2 int lumstelle3 = 10; //variabile stelle 3 int lumstelle4 = 10; //variabile stelle 4 int lumstelle = 10; //variabile stelle int passo = 1; int relepompa = 15; //rele pompa cascata int relenebula = 16; //rele nebulizzatore int galleggiante = 14; //pin input galleggiante int relestate = 0; //stato rele void setup() { pinMode (relepompa, OUTPUT); pinMode (relenebula, OUTPUT); pinMode (galleggiante, INPUT); digitalWrite(relepompa, LOW); digitalWrite(relenebula, LOW); } void loop() { int sensorValue = analogRead(A0); time = tempo + (sensorValue * 40); for(passo = 1; passo < 455; passo+=1) // da notte a giorno { analogWrite(ledblu,blue); analogWrite(ledgre,green); delay(10); analogWrite(ledcasa,casa); analogWrite(ledstelle1,lumstelle1); analogWrite(ledstelle2,lumstelle2); analogWrite(ledstelle3,lumstelle3); analogWrite(ledstelle4,lumstelle4); randNumber1 = random(20); randNumber2 = random(20); randNumber3 = random(20); randNumber4 = random(20); if (casa > 40 ) { lumstelle1 = casa -20 + randNumber1; lumstelle2 = casa -20 + randNumber2; lumstelle3 = casa -20 + randNumber3; lumstelle4 = casa -20 + randNumber4; } if (casa < 40) { lumstelle1 = casa - 1; lumstelle2 = casa - 1; lumstelle3 = casa - 1; lumstelle4 = casa - 1; } delay(ttime); if (casa > 1) casa-=1; if (blue <= 100) blue+=1; if (blue < 255 && red > 100 && green > 100) blue+=1; if (green <= 100 && red < 100 && blue >= 100 ) green+=1; analogWrite(ledgre,green); delay(10); if (green > 100 && red < 255) red+=1; analogWrite(ledred,red); delay(10); if (green < 255 && red > 100) green+=1; analogWrite(ledgre,green); delay(10); } red = 255; green = 255; blue = 255; lumstelle = 0; analogWrite(ledstelle1,lumstelle); analogWrite(ledstelle2,lumstelle); analogWrite(ledstelle3,lumstelle); analogWrite(ledstelle4,lumstelle); analogWrite(ledblu,blue); analogWrite(ledgre,green); analogWrite(ledred,red); analogWrite(ledcasa,casa); casa=1; digitalWrite (relenebula, LOW); relestate = digitalRead (galleggiante); if (relestate == HIGH) { digitalWrite (relepompa, HIGH); } delay(time); for(blue = 255; blue >=1; blue-=1) // da giorno a notte { analogWrite(ledblu,blue); analogWrite(ledgre,green); analogWrite(ledred,red); analogWrite(ledcasa,casa); delay(ttime); if (green > 150 && blue < 200) green-=1; } blue=0; for (red = 255; red >=1; red-=1) { delay(ttime); if (green >=1) green-=1; if (red < 100) delay (ttime); analogWrite(ledblu,blue); analogWrite(ledred,red); analogWrite(ledgre,green); analogWrite(ledcasa,casa); analogWrite(ledstelle1,lumstelle1); analogWrite(ledstelle2,lumstelle2); analogWrite(ledstelle3,lumstelle3); analogWrite(ledstelle4,lumstelle4); randNumber1 = random(20); randNumber2 = random(20); randNumber3 = random(20); randNumber4 = random(20); if (casa > 20) { lumstelle1 = casa -20 + randNumber1; lumstelle2 = casa -20 + randNumber2; lumstelle3 = casa -20 + randNumber3; lumstelle4 = casa -20 + randNumber4; } if (casa <=20) lumstelle = 0; if (casa < 255) casa+=1; if (red < 10) blue+=1; } green=0; red=0; analogWrite(ledblu,blue); analogWrite(ledgre,green); analogWrite(ledred,red); analogWrite(ledcasa,casa); casa=255; digitalWrite (relepompa, LOW); relestate = digitalRead (galleggiante); if (relestate == HIGH) { digitalWrite (relenebula, HIGH); } for (stelle = 1; stelle < time; stelle+=1) { randNumber1 = random(70); randNumber2 = random(70); randNumber3 = random(70); randNumber4 = random(70); lumstelle1 = 180 + randNumber1; lumstelle2 = 180 + randNumber2; lumstelle3 = 180 + randNumber3; lumstelle4 = 180 + randNumber4; analogWrite(ledstelle1,lumstelle1); analogWrite(ledstelle2,lumstelle2); analogWrite(ledstelle3,lumstelle3); analogWrite(ledstelle4,lumstelle4); delay(2); } }