Arduino és a DS3231 óra modul

Korábban szükségem volt egy olyan vezérlésre ami bekapcsol egy lámpát 16:58-kor majd 20:30-kor kikapcsolja azt.Sok tutorialt elolvastam erről a témáról.A legmegfelelőbbnek a Rinky-Dink Electronics  oldalán publikált könyvtárat találtam.[LINK]

A modul I2C  rendszeren keresztül kommunikál az Arduino-val.
Nekem a lentebb látható kódot sikerült összehoznom.

#include <DS3231.h>
DS3231 rtc(SDA, SCL);
int rele = 1;
//fordított logika
void setup()
{
Serial.begin(115200);
rtc.begin();
pinMode(rele, OUTPUT);
digitalWrite(rele, HIGH);

}

void loop()
{
String ora = rtc.getTimeStr(); //ora stringbe lekerdezem az idot ora,perc,masodpercben
int ora_alak = ora.substring(0,2).toInt(); //itt elkezdem darabolni a stringet, itt megkaptam az orat
int perc_alak = ora.substring(3,5).toInt();//itt pedig a percet
//igya mar konnyebb muveleteket vegezni vele.
/*Serial.println(ora_alak);
Serial.println(perc_alak);
delay (1000);*/
//reggel
if (ora_alak == 16 && perc_alak == 11) {
digitalWrite(rele, LOW);
}

if (ora_alak == 20 && perc_alak == 23) {
digitalWrite(rele, HIGH);
}
//reggel

//este
if (ora_alak == 05 && perc_alak == 31) {
digitalWrite(rele, LOW);
}

if (ora_alak == 06 && perc_alak == 56) {
digitalWrite(rele, HIGH);
}
//este
}
This entry was posted in Arduino and tagged , . Bookmark the permalink.

2 Responses to Arduino és a DS3231 óra modul

  1. steveefzr says:

    Üdv!

    Van nekem is egy RTC-s projektem amiben naponta változó ki-be kapcsolási időpontokat kellett megadni.Ott áramszünet után is az esedékes állapotba kellett kerülnie a kimeneteknek.Ezt így oldottam meg:
    Az RTC időt és a be-ki kapcsolási időpontokat átszámítottam így:
    ido = t.hour + (t.min + t.sec / 60.0 ) / 60.0;
    Kapcsolási feltételeknél pedig ilyesmi:
    ido >= bekapcsidőpont && ido <= kikapcsidőpont
    Így egy esetleges áramszünet után megnézi az RTC idejét,ha nagyobb mint a be vagy kikapcsolási időpont ergo "elhaladt felette az óra" akkor is be vagy kikapcsol amint megkapja a tápot.Lehet akár több órás áramkimaradás is,mivel az átszámításnál benne van az órák és percek száma is.

    Gondoltam hasznos lehet valakinek. 🙂

  2. balazs says:

    Huuuu, ez nagyon jó ötlet!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez a weboldal az Akismet szolgáltatását használja a spam kiszűrésére. Tudjunk meg többet arról, hogyan dolgozzák fel a hozzászólásunk adatait..