böyle bir şema buldum bu şekilde sisteme 1 adet daha röle ekleyerek yapabilirmiyim
kodları bu şekilde
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6,7,8);
int rolePin = 9;
//Başlatma saati giriniz.
String saat1 = "14";
String dakika1 = "37";
String saniye1 = "00";
//Durdurma saati giriniz.
String saat2 = "14";
String dakika2 = "37";
String saniye2 = "15";
void setup()
{
myRTC.setDS1302Time(00,35,14,0,18,10,2020);
/* Saniye, Dakika, Saat, 0, Gün, Ay, Yıl
Bu kod satırına şu anki saat ve tarih bilgisini girip yükleme yaparak
modülümüzün girdiğimiz bu saat ve tarihten itibaren başlayarak gerçek zamanlı
olarak çalışmasını sağlıyoruz. Daha sonra bu kod satırını silip tekrar
yükleme yapacağız. Eğer bu kod satırını silmezseniz Arduino her
çalıştırıldığında bu saat ve tarih bilgisiyle çalışmaya başlar. */
lcd.init();
lcd.backlight();
pinMode(rolePin, OUTPUT);
}
void loop()
{
myRTC.updateTime();
String saat = (String)myRTC.hours;
String dakika = (String)myRTC.minutes;
String saniye = (String)myRTC.seconds;
if(saat.length()==1)
{
saat = "0" + saat;
}
if(dakika.length()==1)
{
dakika = "0" + dakika;
}
if(saniye.length()==1)
{
saniye = "0" + saniye;
}
String zaman = saat + dakika + saniye;
if(saat1.length()==1)
{
saat1 = "0" + saat1;
}
if(dakika1.length()==1)
{
dakika1 = "0" + dakika1;
}
if(saniye1.length()==1)
{
saniye1 = "0" + saniye1;
}
String zaman1 = saat1 + dakika1 + saniye1;
if(saat2.length()==1)
{
saat2 = "0" + saat2;
}
if(dakika2.length()==1)
{
dakika2 = "0" + dakika2;
}
if(saniye2.length()==1)
{
saniye2 = "0" + saniye2;
}
String zaman2 = saat2 + dakika2 + saniye2;
lcd.setCursor(0,0);
lcd.print(" SAAT> ");
lcd.print(saat);
lcd.print(":");
lcd.print(dakika);
lcd.print(":");
lcd.print(saniye);
lcd.setCursor(0,1);
if( zaman.toInt() <= zaman1.toInt() )
{
lcd.print("BASLAT> ");
lcd.print(saat1 +":"+ dakika1 +":"+ saniye1);
}
if( zaman.toInt() <= zaman2.toInt() )
{
lcd.print("DURDUR> ");
lcd.print(saat2 +":"+ dakika2 +":"+ saniye2);
}
if( zaman.toInt() > zaman2.toInt() )
{
lcd.print("BASLAT> ");
lcd.print(saat1 +":"+ dakika1 +":"+ saniye1);
}
if( zaman.toInt() >= zaman1.toInt() and zaman.toInt() < zaman2.toInt())
{
digitalWrite(rolePin, LOW);
}
else
{
digitalWrite(rolePin, HIGH);
}
delay(1000);
}