#include <virtuabotixRTC.h>
int solenoidPin = 9;
int solenoidPin2 = 10;
int CLK_PIN=8;
int DAT_PIN=7;
int RST_PIN=6;
int manualbuton=2;
int stopbuton=3;
int butondurum;
int butondurum2;
int greenled=4;
int redled=5;
int istenensaat=19;
int istenensaat2=20;
int sayac=0;
int sayac2=0;
virtuabotixRTC myRTC(CLK_PIN, DAT_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
pinMode(solenoidPin, OUTPUT);
pinMode(solenoidPin2, OUTPUT);
pinMode(manualbuton, INPUT_PULLUP);
pinMode(stopbuton, INPUT_PULLUP);
pinMode(greenled, OUTPUT);
pinMode(redled, OUTPUT);
myRTC.setDS1302Time(0,04, 18, 1, 22, 6, 2020); //Kodu yükle sonra kaldır tekrar yükle.
}
void loop() {
myRTC.updateTime();
Serial.print(myRTC.hours);
Serial.print(":");
Serial.print(myRTC.minutes);
Serial.print(":");
Serial.print(myRTC.seconds);
Serial.print(" ");
Serial.print(sayac);
Serial.print(" ");
Serial.println(sayac2);
butondurum=digitalRead(manualbuton);
if(butondurum == 0)
{
delay(10);
while(digitalRead(manualbuton) == 0)
{
digitalRead(manualbuton);
}
sayac++;
}
butondurum2=digitalRead(stopbuton);
if(butondurum2 == 0)
{
delay(10);
while(digitalRead(stopbuton) == 0)
{
digitalRead(stopbuton);
}
sayac2++;
}
switch(sayac)
{
case 1:
if(sayac == 1)
{
digitalWrite(solenoidPin, HIGH);
digitalWrite(solenoidPin2, HIGH);
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
}
break;
case 2:
if(sayac == 2 || sayac == 0)
{
digitalWrite(solenoidPin, LOW);
digitalWrite(solenoidPin2, LOW);
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
sayac = 0;
}
break;
}
if(myRTC.dayofweek == 1 || myRTC.dayofweek == 3 || myRTC.dayofweek == 5 || myRTC.dayofweek == 7)
{
if(myRTC.hours == istenensaat && myRTC.minutes == 45 && myRTC.seconds == 0)
{
digitalWrite(solenoidPin, HIGH);
}
if(myRTC.hours == 20 && myRTC.minutes == 0 && myRTC.seconds ==0)
{
digitalWrite(solenoidPin, LOW);
}
if(myRTC.hours == istenensaat2 && myRTC.minutes == 1 && myRTC.seconds ==0)
{
digitalWrite(solenoidPin2, HIGH);
}
if(myRTC.hours == 20 && myRTC.minutes == 16 && myRTC.seconds == 0)
{
digitalWrite(solenoidPin2, LOW);
}
switch(sayac2)
{
case 1:
if(sayac2 == 1)
{
digitalWrite(solenoidPin, LOW);
digitalWrite(solenoidPin2, LOW);
digitalWrite(redled, HIGH);
digitalWrite(greenled, HIGH);
}
break;
case 2:
if(sayac2 == 2)
{
sayac2=0;
digitalWrite(redled, LOW);
}
break;
}
}
if(sayac !=1 && sayac2 !=1)
{
digitalWrite(greenled, HIGH);
}
}