Need Help for RTC trigger Relay


hello new programming maybe can me on topic.
i want trigger relay rtc3231 can tell me why not working?
please help!

here code:


#define relay_on 0  
#define relay_off 1

#define relay_1  38



#include "wire.h"
#define ds3231_i2c_address 0x68
// convert normal decimal numbers binary coded decimal
byte dectobcd(byte val)
{
return( (val/10*16) + (val%10) );
}
// convert binary coded decimal normal decimal numbers
byte bcdtodec(byte val)
{
return( (val/16*10) + (val%16) );
}
void setup()
{
wire.begin();
serial.begin(9600);
// set initial time here:
// ds3231 seconds, minutes, hours, day, date, month, year
//setds3231time(30,48,0,2,3,8,15);

digitalwrite(relay_1, relay_off);  // relay 1
pinmode(relay_1, output);  // relay 1
}
void setds3231time(byte second, byte minute, byte hour, byte dayofweek, byte
dayofmonth, byte month, byte year)
{
// sets time , date data ds3231
wire.begintransmission(ds3231_i2c_address);
wire.write(0); // set next input start @ seconds register
wire.write(dectobcd(second)); // set seconds
wire.write(dectobcd(minute)); // set minutes
wire.write(dectobcd(hour)); // set hours
wire.write(dectobcd(dayofweek)); // set day of week (1=sunday, 7=saturday)
wire.write(dectobcd(dayofmonth)); // set date (1 31)
wire.write(dectobcd(month)); // set month
wire.write(dectobcd(year)); // set year (0 99)
wire.endtransmission();
}
void readds3231time(byte *second,
byte *minute,
byte *hour,
byte *dayofweek,
byte *dayofmonth,
byte *month,
byte *year)
{
wire.begintransmission(ds3231_i2c_address);
wire.write(0); // set ds3231 register pointer 00h
wire.endtransmission();
wire.requestfrom(ds3231_i2c_address, 7);
// request 7 bytes of data ds3231 starting register 00h
*second = bcdtodec(wire.read() & 0x7f);
*minute = bcdtodec(wire.read());
*hour = bcdtodec(wire.read() & 0x3f);
*dayofweek = bcdtodec(wire.read());
*dayofmonth = bcdtodec(wire.read());
*month = bcdtodec(wire.read());
*year = bcdtodec(wire.read());
}
void displaytime()
{
byte second, minute, hour, dayofweek, dayofmonth, month, year;
// retrieve data ds3231
readds3231time(&second, &minute, &hour, &dayofweek, &dayofmonth, &month,
&year);
// send serial monitor
serial.print(hour, dec);
// convert byte variable decimal number when displayed
serial.print(":");
if (minute<10)
{
serial.print("0");
}
serial.print(minute, dec);
serial.print(":");
if (second<10)
{
serial.print("0");
}
serial.print(second, dec);
serial.print(" ");
serial.print(dayofmonth, dec);
serial.print("/");
serial.print(month, dec);
serial.print("/");
serial.print(year, dec);
serial.print(" wochentag: ");
switch(dayofweek){
case 1:
serial.println("sonntag");
break;
case 2:
serial.println("montag");
break;
case 3:
serial.println("dienstag");
break;
case 4:
serial.println("mittwoch");
break;
case 5:
serial.println("donnerstag");
break;
case 6:
serial.println("freitag");
break;
case 7:
serial.println("samstag");
break;
}
}
void loop()
{
displaytime(); // display real-time clock data on serial monitor,
delay(1000); // every second
}
void relais1() {

if (  hour()== 16)            
{
digitalwrite(relay_1, relay_on);
}

}

problem solved :)


Arduino Forum > Products > Arduino Due (Moderator: fabioc84) > Need Help for RTC trigger Relay


arduino

Comments