Carissimi ho cantato vittoria troppo presto
Attaccando la RTC su SDA e SLC + 5v e - GRD ad Arduino dopo qualche decina di minuti crescia nuovamente
E' attaccato anche il sensore igrometro sulla A0 e alimentato sempre da Arduino ma per questo test non lo considero nel programma
Ricordo che c'è solo il positivo dal modulo ad Arduino più le uscite dei pin.
Grazie come sempre
#include <Wire.h>
#include <RTClib.h>
int mattina=0;
int sera=1;
int pranzo=1;
int zona;
//-----rtc
// 43 rele 1 siepe
// 41 cancello
//39 rele 3 nord sinistra
//37 rele 4 fronte
//35 patio 5
//33 nord destro rel 7
// 31 nord centro rel 6
//29 piscina piccola rel8
//27 tubo piscina rel 9
//25 rele vuoto
//23 vuoto
short pinSettore1 = 41; //cancelllo
short pinSettore2 = 27; //tubo piscina
short pinSettore3 = 43 ;//siepe
short pinSettore4 = 29; //piscina piccola
short pinSettore5 = 37 ; //fronte
short pinSettore6 = 35 ; //patio
short pinSettore7 = 31; //nord centro
short pinSettore8 = 39;//nord sin
short pinSettore9 = 33;//nord dest
short pinSettore10 = 25; // servizi tubo 25
short pinSettore11 = 23; //libero
short pinSettore12 = 23; //libero
short pinSettore13 = 23; //libero
short pinSettore14 = 23; //libero
short pinSettore15 = 23; //libero
short pinSettore16 = 23; //libero
RTC_DS1307 RTC;
void setup()
{
// Set console baud rate
Serial.begin(9600);
Serial.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<inizio setup");
Serial.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<inizio setup");
Serial.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<inizio setup");
//----rtc
Wire.begin();
RTC.begin();
pinMode( pinSettore1, OUTPUT ); //pin2
pinMode( pinSettore2, OUTPUT );
pinMode( pinSettore3, OUTPUT );
pinMode( pinSettore4, OUTPUT );
pinMode( pinSettore5, OUTPUT );
pinMode( pinSettore6, OUTPUT );
pinMode( pinSettore7, OUTPUT );
pinMode( pinSettore8, OUTPUT );
pinMode( pinSettore9, OUTPUT );
pinMode( pinSettore10, OUTPUT );
pinMode( pinSettore11, OUTPUT );
pinMode( pinSettore12, OUTPUT );
pinMode( pinSettore13, OUTPUT );
pinMode( pinSettore14, OUTPUT );
pinMode( pinSettore15, OUTPUT );
pinMode( pinSettore16, OUTPUT );
all_off();
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
}
RTC.adjust(DateTime(2017, 6, 7, 12, 58, 53));
adesso();
delay(3000);
//----rtc
}//fine setup
void all_off () {
//HIGH mette tutti OFF è spento
digitalWrite( pinSettore1, HIGH );
digitalWrite( pinSettore2, HIGH );
digitalWrite( pinSettore3, HIGH );
digitalWrite( pinSettore4, HIGH );
digitalWrite( pinSettore5, HIGH );
digitalWrite( pinSettore6, HIGH );
digitalWrite( pinSettore7, HIGH );
digitalWrite( pinSettore8, HIGH );
digitalWrite( pinSettore9, HIGH );
digitalWrite( pinSettore10, HIGH );
digitalWrite( pinSettore11, HIGH );
digitalWrite( pinSettore12, HIGH );
digitalWrite( pinSettore13, HIGH );
digitalWrite( pinSettore14, HIGH );
digitalWrite( pinSettore15, HIGH );
digitalWrite( pinSettore16, HIGH );
}
void loop()
{ delay(1000);
adesso();
DateTime now = RTC.now();
int _hour = now.hour();
int _minute = now.minute();
int _secondi = now.second();
if (pranzo == 1)
{
if (_hour == 13 && _minute == 00 && _secondi ==00) {accendi(pinSettore1); Serial.println("Start irrigazione");}
if (_hour == 13 && _minute == 10 && _secondi ==00) spegni(pinSettore1);
if (_hour == 13 && _minute == 10 && _secondi ==00) {accendi(pinSettore2); Serial.println("Start settore 2");}
if (_hour == 13 && _minute == 20 && _secondi ==00) spegni(pinSettore2);
if (_hour == 13 && _minute == 20 && _secondi ==00) {accendi(pinSettore4); Serial.println("Start settore 4");}
if (_hour == 13 && _minute == 30 && _secondi ==00) spegni(pinSettore4);
if (_hour == 13 && _minute == 30 && _secondi ==00) {accendi(pinSettore5); Serial.println("Start settore 5");}
if (_hour == 13 && _minute == 40 && _secondi ==00) spegni(pinSettore5);
if (_hour == 13 && _minute == 40 && _secondi ==00) {accendi(pinSettore6); Serial.println("Start settore 6");}
if (_hour == 13 && _minute == 50 && _secondi ==00) spegni(pinSettore6);
if (_hour == 13 && _minute == 50 && _secondi ==00){accendi(pinSettore7); Serial.println("Start settore 7");}
if (_hour == 14 && _minute == 00 && _secondi ==00) spegni(pinSettore7);
if (_hour == 14 && _minute == 00 && _secondi ==00){accendi(pinSettore8); Serial.println("Start settore 8");}
if (_hour == 14 && _minute == 10 && _secondi ==00) spegni(pinSettore8);
if (_hour == 14 && _minute == 10 && _secondi ==00){accendi(pinSettore9); Serial.println("Start settore 9");}
if (_hour == 14 && _minute == 20 && _secondi ==00) spegni(pinSettore9);
if (_hour == 14 && _minute == 20 && _secondi ==00) {accendi(pinSettore10); Serial.println("Start settore 10");}
if (_hour == 14 && _minute == 30 && _secondi ==00) {spegni(pinSettore10); Serial.println("Stop irrigazione");}
}
}// fine loop
void accendi(int zona)
{ digitalWrite( zona, LOW );
}
void spegni(int zona)
{ digitalWrite( zona, HIGH );
}
void adesso()
{ DateTime now = RTC.now();
int _hour = now.hour();
int _minute = now.minute();
Serial.print("ora attuale ");
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
}//adesso
log irri.txt (204 KB)
log irri.txt (204 KB)