Hello, first i want to say that im not good in english, next i've a task from my lecturer that make a scheduling for a system, i use a relay and rtcds1307 and ofcourse arduino, but i got a problem.
in the code i use if statement for the time of schedule, at the first schdeule it doesnt work, my relay just blink and not clicked.. but on the second schdule ot the second statement it works perfectly :o i'lve lost my idea, please help me, i verry need it..
this is the code..
#include <time.h>
#include <DS1307.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "RTClib.h"
#define ONE_WIRE_BUS 5
#define saklarutama 2
#define lampuuv 3
#define pompa 4
#define pemanas 6
#define echopin 9
#define trigpin 8
#define RLY_OFF 1
#define RLY_ON 0
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors (&oneWire);
RTC_DS1307 rtc;
long duration, distance;
float Celcius = 0;
void setup() {
Serial.begin (9600);
pinMode (ONE_WIRE_BUS,INPUT);
pinMode (saklarutama,OUTPUT);
digitalWrite (saklarutama, RLY_OFF);
pinMode (lampuuv,OUTPUT);
digitalWrite (lampuuv, RLY_OFF);
pinMode (pompa,OUTPUT);
digitalWrite (pompa, RLY_OFF);
pinMode (pemanas,OUTPUT);
digitalWrite (pemanas,RLY_OFF);
pinMode (trigpin,OUTPUT);
pinMode (echopin,INPUT);
DateTime now = rtc.now();
Wire.begin();
rtc.begin();
sensors.begin();
}
void breakfeast() {
DateTime now = rtc.now();
if (now.minute()>=59&& now.minute()<= 59){
digitalWrite(saklarutama,LOW);
Serial.println ("SYSTEM ON");
if(distance >5) digitalWrite (lampuuv, LOW);
else if (distance <5) digitalWrite (lampuuv,HIGH);
if(Celcius < 28)
{
digitalWrite (pemanas,LOW);
}
else if (Celcius >30)
{
digitalWrite (pemanas,HIGH);
}
}
else {
digitalWrite (saklarutama,HIGH);
digitalWrite(lampuuv,HIGH);
digitalWrite(pemanas,HIGH);
Serial.println ("SYSTEM OFF");
}
}
void lunch() {
DateTime now = rtc.now();
if (now.minute()>=57 && now.minute()<= 57){
digitalWrite(saklarutama,LOW);
Serial.println ("SYSTEM ON");
if(distance >5) digitalWrite (lampuuv, LOW);
else if (distance <5) digitalWrite (lampuuv,HIGH);
if(Celcius < 28)
{
digitalWrite (pemanas,LOW);
}
else if (Celcius >30)
{
digitalWrite (pemanas,HIGH);
}
}
else {
digitalWrite (saklarutama,HIGH);
digitalWrite(lampuuv,HIGH);
digitalWrite(pemanas,HIGH);
Serial.println ("SYSTEM OFF");
}
}
void loop() {
sensors.requestTemperatures();
Celcius = sensors.getTempCByIndex(0);
Serial.print ("Suhu = ");
Serial.println (Celcius);
delay (300);
//jarak
digitalWrite(trigpin,LOW);
delayMicroseconds (2);
digitalWrite(trigpin,HIGH);
delayMicroseconds (10);
duration=pulseIn (echopin,HIGH);
distance = duration/58.2;
delay(300);
Serial.print("jarak = ");
Serial.println(distance);
//waktu
DateTime now = rtc.now();
int tahun=now.year();
Serial.print ("waktu = ");
Serial.print(tahun);
Serial.print("/");
Serial.print(now.month(),DEC);
Serial.print("/");
Serial.print(now.day(),DEC);
Serial.print("|");
Serial.print(now.hour(),DEC);
Serial.print(":");
Serial.print(now.minute(),DEC);
Serial.print(":");
Serial.print(now.second(),DEC);
Serial.println(" ");
Serial.println(" ");
delay(300);
//LampuUV
breakfeast();
lunch();
//if (now.minute()>=58 && now.minute()<= 58){
// digitalWrite(saklarutama,LOW);
// Serial.println ("SYSTEM ON");
// if(distance >5) digitalWrite (lampuuv, LOW);
// else if (distance <5) digitalWrite (lampuuv,HIGH);
// if(Celcius < 28)
// {
// digitalWrite (pemanas,LOW);
// }
// else if (Celcius >30)
// {
// digitalWrite (pemanas,HIGH);
// }
//}
//else {
// digitalWrite (saklarutama,HIGH);
// digitalWrite(lampuuv,HIGH);
// digitalWrite(pemanas,HIGH);
// Serial.println ("SYSTEM OFF");
//}
//
// if (now.minute()>= 36 &&now.minute ()<= 28)
//{
// digitalWrite(saklarutama,LOW);
// Serial.println ("SYSTEM ON");
// if(distance >5) digitalWrite (lampuuv, LOW);
// else if (distance <5) digitalWrite (lampuuv,HIGH);
// if(Celcius < 28)
// {
// digitalWrite (pemanas,LOW);
// }
// else if (Celcius >30)
// {
// digitalWrite (pemanas,HIGH);
// }
//}else {
//
// digitalWrite (saklarutama,HIGH);
// digitalWrite(lampuuv,HIGH);
// digitalWrite(pemanas,HIGH);
// Serial.println("SYSTEM OFF");
//
//}
}