Helios RTC PCF8563

Uit Helios Wiki
Ga naar: navigatie, zoeken

Deze library kan gebruikt worden om de op Helios aanwezige Real Time Clock (RTC) te gebruiken. Voor het gebruik van deze functie dienen de header files Helios_RTC_PCF8563.h en Wire.h worden toegevoegd aan de sketch. Bovendien moet Wire.begin() worden aangeroepen in de setup. Deze library beschikt over de volgende functies.

Inhoud

SetAll

Met deze functie wordt de tijd(uren, minuten seconden), dag van de week en de datum (dag, maand , jaar) in de op de Helios aanwezige RTC gezet.

Syntax

void SetAll(int h,int m,int s,int weekday,int day,int monty,int year)

Parameters

h: de uren (0 -23) die in de RTC worden gezet.

m: de minuten (0-59) die in de RTC worden gezet.

s: de seconden (0-59) die in de RTC worden gezet.

weekday: de week dag (0-6) die in de RTC wordt gezet. Hierbij staat 0 voor zondag, 1 voor maandag enz.

day: de dag van de maand (1-31) die in de RTC wordt gezet.

month: de maand (1-12) die in de RTC wordt gezet.

year: het jaartal van de huidige eeuw (0-99) die in de RTC wordt gezet.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   rtc.SetAll(0,0,0,4,6,6,13);
}

void loop()
{
   //for example read time
}

SetSmall

Met deze functie wordt het zelfde als met SetAll, behalve de weekdag in de RTC gezet.

Syntax

void SetSmall(int h,int m,int s,int day,int month,int year)

Parameters

h: de uren (0 -23) die in de RTC worden gezet.

m: de minuten (0-59) die in de RTC worden gezet.

s: de seconden (0-59) die in de RTC worden gezet.

day: de dag van de maand (1-31) die in de RTC wordt gezet.

month: de maand (1-12) die in de RTC wordt gezet.

year: het jaartal van de huidige eeuw (0-99) die in de RTC wordt gezet.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   rtc.SetAll(0,0,0,6,6,13);
}

void loop()
{
   //for example read time
}

SetTime

Deze functie zet de tijd (uren, minuten, seconden) in de RTC.

Syntax

void SetTime(int h,int m,int s)

Parameters

h: de uren (0-23) die in de RTC worden gezet.

m: de minuten (0-59) die in de RTC worden gezet.

s: de seconden (0-59) die in de RTC worden gezet.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   rtc.SetTime(0,0,0);
}

void loop()
{
   //for example read time
}

SetDate

Deze functie zet de datum (dag, maand, jaar) in de RTC.

Syntax

void SetDate(int day,int month,int year)

Parameters

day: de dag van de maand (1-31) die naar de RTC wordt gezet.

month: de maand (1-12) die naar de RTC wordt geschreven.

year: het jaartal van de huidige eeuw (0-99) die naar de RTC wordt geschreven.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   rtc.SetDate(6,6,13);
}

void loop()
{
   //for example read time
}

SetWeekday

Deze functie zet de weekdag in de RTC.

Syntax

void SetWeekday(int weekday)

Parameters

weekday: de week dag (0-6) die in de RTC wordt gezet (int). Hierbij staat 0 voor zondag, 1 voor maandag enz.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   rtc.Weekday(4);
}

void loop()
{
   //for example read time
}

ReadAll

Lees de datum, tijd en weekdag uit de RTC.

Syntax

char *ReadAll()

Parameters

Geen.

Returns

Character pointer met de tijd, datum en weekdag in het format “hh:mm:ss weekdag dd/mm/yyyy”.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   char *result;
   result= rtc.ReadAll();
   Serial.println(result); //print newline with time
   delay(1000);
}

ReadSmall

Lees de datum en tijd uit de RTC.

Syntax

char *ReadSmall()

Parameters

Geen.

Returns

Character pointer met de tijd en datum in het format “hh:mm:ss dd/mm/yyyy”.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   char *result;
   result= rtc.ReadSmall();
   Serial.println(result); //print newline with time
   delay(1000);
}

ReadTime

Lees de tijd uit de RTC.

Syntax

char *ReadTime()

Parameters

Geen.

Returns

Character pointer met de tijd in het format “hh:mm:ss”

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   char *result;
   result= rtc.ReadTime;
   Serial.println(result); //print newline with time
   delay(1000);
}

ReadDate

Lees de datum uit de RTC.

Syntax

char *ReadDate()

Parameters

Geen.

Returns

Character pointer met de datum in het format “dd/mm/yyyy”.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   char *result;
   result= rtc.ReadDate;
   Serial.println(result); //print newline with date
   delay(1000);
}

GetSeconds

Lees de seconden uit de RTC.

Syntax

int GetSeconds()

Parameters

Geen.

Returns

De seconden.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   int result = rtc.GetSeconds;
   Serial.println(result); //print newline with seconds
   delay(1000);
}

GetMinutes

Lees de minuten uit de RTC.

Syntax

int GetMinutes()

Parameters

Geen.

Returns

De minuten.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   int result = rtc.GetMinutes;
   Serial.println(result); //print newline with Minutes
   delay(1000);
}

GetHours

Lees de uren uit de RTC.

Syntax

int GetHours()

Parameters

Geen.

Returns

De uren.

Example

#include <Wire.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
}

void loop()
{
   int result = rtc.GetHours;
   Serial.println(result); //print newline with Hours
   delay(1000);
}

SetAlarmDaily

Met deze functie wordt de alarmfunctie van de RTC ingesteld op een dagelijks herhaling. Bij een alarm geeft de RTC een interrupt en word de alarmflag in het controll_status_2 geset, deze moet in software worden gecleared.

Syntax

void SetAlarmDaily(int hours,int minutes)

Parameters

hours: het uur (0-23) waarop het alarm moet afgaan.

minutes: de minuten (0-59) waarop het alarm moet afgaan.

Het alarm alleen af als uren en minuten beide gelijk zijn met de ingestelde parameters.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetAll(0,0,0,4,6,6,13);
   rtc.SetAlarmDaily(0,3); //alarm every day at 0:03
   if(rtc.GetMinutes() < 3){
      Helios.Off(); //when disable switch is high, on 00:03 Helios switch back on
   }
}

void loop()
{
  //put code here
}

SetAlarmWeekly

Met deze functie wordt de alarmfunctie van de RTC ingesteld op een weekelijkse herhaling. Bij een alarm geeft de RTC een interrupt en word de alarmflag in het controll_status_2 geset, deze moet in software worden gecleared.

Syntax

void SetAlarmWeekly(int hours,int minutes, int weekday)

Parameters

hours: het uur (0-23) waarop het alarm moet afgaan.

minutes: de minuten (0-59) waarop het alarm moet afgaan.

weekday: de weekdag (0-6) waarop het alarm af moet gaan.

Het alarm alleen af als uren, minuten en de weekdag allemaal gelijk zijn met de ingestelde parameters.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetAll(0,0,0,4,6,6,13);
   rtc.SetAlarmWeekly(0,3,4); //alarm Thursdays at 0:03
   if(rtc.GetMinutes() < 3){
      Helios.Off(); //when disable switch is high, on 00:03 Helios switch back on
   }
}

void loop()
{
  //put code here
}

SetAlarmMonthly

Met deze functie wordt de alarmfunctie van de RTC ingesteld op een maandelijke herhaling. Bij een alarm geeft de RTC een interrupt en word de alarmflag in het controll_status_2 geset, deze moet in software worden gecleared.

Syntax

void SetAlarmMonthly(int hours, int minutes, int day)

Parameters

Hours: het uur (0 tot en met 23) waarop het alarm moet afgaan.

Minutes: de minuten (0 tot en met 59) waarop het alarm moet afgaan.

Month: de dag van de maand (1 tot en met 31) waarop het alarm af moet gaan.

Het alarm alleen af als uren, minuten en de dag allemaal gelijk zijn met de ingestelde parameters.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetAll(0,0,0,4,6,6,13);
   rtc.SetAlarmMonthly(0,3,6); //alarm the 6th day of the month at 0:03
   if(rtc.GetMinutes() < 3){
      Helios.Off(); //when disable switch is high, on 00:03 Helios switch back on
   }
}

void loop()
{
  //put code here
}

ReadAlarmFlag

Leest de alarmflag in het controll_status_2 register, bij true is er een alarm afgegaan.

Syntax

boolean ReadAlarmFlag()

Parameters

Geen.

Returns

Status van de alarmflag.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetAll(0,0,0,4,6,6,13);
   rtc.SetAlarmWeekly(0,3,4); //alarm at Thursdays 0:03
}

void loop()
{
   if(rtc.ReadAlarmFlag()){ //check for alarm
      rtc.DisableAlarm(); //reset alarmflag and disable alarm
      Serial.println("Alarm!!");
   }
}

ResetAlarm

Reset de alarmflag. De alarmflag wordt geset bij een alarm. De instellingen veranderen niet en het alarm blijf ingesteld.

Syntax

void ResetAlarm()

Parameters

Geen.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetAll(0,0,50,4,6,6,13);
   rtc.SetAlarmDaily(0,1); //alarm at 0:01
}

void loop()
{
   if(rtc.ReadAlarmFlag()){
      rtc.ResetAlarm();
      rtc.SetTime(0,0,50);
      Serial.println("Alarm!!");
   }
}

DisableAlarm

Reset de alarmflag en schakel de alarm fucntie uit.

Syntax

void DisableAlarm()

Parameters

Geen.

Returns

Geen.

Example

Zie ReadAlarmFlag.

SetTimer

Met deze functie kan de timerfunctie van de RTC worden ingesteld. De timerfunctie geeft een alarm als de waarde in het coundown register 0 is. Bij een timeralarm geeft de RTC een interrupt en word de timerflag in het controll_status_2 geset, deze moet in software worden gecleared.

Syntax

void SetTimer(int minutes)

Parameters

minutes: na hoeveel minuten (1-255) de RTC een timeralarm geeft.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetTimer(1); //timer alarm in one minute
}

void loop()
{
   if(rtc.ReadTimerFlag()){
      rtc.ResetTimer();
      Serial.println("Timer alarm!!");
   }
}

ReadTimerFlag

Leest de timerflag in het controll_status_2 register, bij true heeft de timer een alarm gegeven.

Syntax

boolean ReadTimerFlag()

Parameters

Geen.

Returns

Status van de timerflag.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetTimer(1); //timer alarm in one minute
}

void loop()
{
   if(rtc.ReadTimerFlag()){
      rtc.ResetTimer(); //reset timerflag
      Serial.println("Timer alarm!!");
   }
}

ResetTimer

Reset de timerflag. De timerflag wordt geset bij een timeralarm. De instellingen veranderen niet en de timerfunctie blijft ingeschakeld.

Syntax

void ResetTimer()

Parameters

Geen.

Returns

Geen.

Example

Zie SetTimer en ReadTimerFlag.

DisableTimer

Reset de timerflag en schakel de timerfucntie uit.

Syntax

void DisableTimer()

Parameters

Geen.

Returns

Geen.

Example

#include <Wire.h>
#include <Helios.h>
#include <Helios_RTC_PCF8563.h>
Helios_RTC_PCF8563 rtc;

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   rtc.SetTimer(1); //timer alarm in one minute
}

void loop()
{
   if(rtc.ReadTimerFlag()){
      rtc.DisableTimer(); //reset timerflag and disable timer function
      Serial.println("Timer alarm!!");
   }
}
Persoonlijke instellingen
Naamruimten

Varianten
Handelingen
Navigatie
Hulpmiddelen

"Arduino" is een trademark van het Arduino team.
"Helios" is a design ©2013 by KITT Engineering