üzenetek

hozzászólások


DarkByte
(addikt)
Blog

Neked csak ez a fájl érdekes ami a minta projekt: [link] A lib-et egy az egyben felhasználhatod amit linkeltek.

A kódban a setup() alatti rész inicializálja a modult (beállítja rajta az időt), a loop() függvény ezután megy körbe körbe és a soros porton küldi a gépnek időnként az idő bélyeget.

Ha valami időzítőnek akarod használni a modult igazából annyi a dolgod hogy a loop-ban figyeled a modulról olvasott időt hogy túllépte-e az időpontot amikor kapcsolni kell valamit. Ha igen, akkor valamelyik digitális portra a digitalWrite függvénnyel logikai magas jelet írsz és kapcsolsz relét vagy akármit amit oda megálmodsz.

Amit írtál kódot jó szemantikailag de nem szintaktikailag.

int villany_be = 11:00;
int villany_ki = 20:00;

Ez nem jó így. Az int egy egész számot tároló típus, a 11:00 pedig nem egy szám hanem egy karaktersorozat amit a fordító nem tud értelmezni.

Ha megnézed a példa kódot az időt külön részekben kapod meg.

Time t = rtc.time();

Ez kéri el a modultól az aktuális időbélyeget, a t változóban fogod megkapni. Ezután ezen lehet elérni az órát, percet, másodpercet, dátumot: t.yr, t.mon, t.date, t.hr, t.min, t.sec

Ha pl. azt akarod elérni hogy minden nap 11 -kor kapcsoljon be, 20-kor pedig ki akkor csinálhatsz valami ilyesmit:

void setup() {
// Itt beállítod az órát úgy ahogy a példában
}

boolean villanyBekapcsolva = false;

void loop() {
Time t = rtc.time(); // Lekérjük a modultól az időt

if ((t.hr>=11 && t.hr<20) && !villanyBekapcsolva) { // 11 óra után és 20 óra előtt vagyunk és nem ég a villany?
// Ha igen, villany bekapcs
villanyBekapcsolva = true;
digitalWrite(villany_rele, HIGH);
} else if ((t.hr>=20 || t.hr <11) && villanyBekapcsolva) { // 20 óra után vagyunk vagy 11 óra előtt és ég a villany?
// Ha igen, villany kikapcs
villanyBekapcsolva = false;
digitalWrite(villany_rele, LOW);
}

delay(1000); // alszunk 1mp-et mielőtt újra figyeljük a feltételeket
}

[ Szerkesztve ]

üzenetek