Vidím v tom programe pár chýb a preto si nemyslím, že sa ti vôbec skompiloval... Chýba ti tam operátor (bodka).
Taktiež tam používaš triedu a voláš do nej funkciu, to predsa nemôže fungovať.
Funkcia sa volá na vytvorený objekt - v tvojom prípade rtc.
Kód: Vybrat vše
DS3231 begin();
zmeniť podľa tvojho programu na
rtc.begin();
Čo sa týka úprav pre výpis času na UART...
Výpis v sekundovom intervale, neviem akú knižnicu využívaš, teda funkcie môžu byť aj iné v prípade tvojej knižnice...
Ako príklad vychádzam z:
https://github.com/jarzebski/Arduino-DS3231/ asi nejpoužívanejšia DS3231 knižnica.
Kód: Vybrat vše
// do globálnych premenných nad setup()
unsigned long cas2 = 0;
//do loop()
if (millis() - cas2 >= 1000){
cas2 = millis();
datumCas = rtc.getDateTime();
Serial.println(rtc.dateFormat("d-m-Y H:i:s", datumCas)); //mozno naformatovat vystup aj iny...
}
Pre nastavenie času sú v podstate 3 spôsoby (ak to podporuje knižnica)
Takýto sketch by si mal nahrať iba raz a potom tvoj pôvodný program, ktorý už len používa čas z RTC.
Ak tento fragment kódu použiješ v setupe, alebo loope(), bude sa ti čas prepisovať pri každom štarte Arduina, alebo za jeho behu.
Tým pádom by si nikdy nemal aktuálny čas z RTC modulu, lebo by si ho stále nastavoval...
Kód: Vybrat vše
// Set sketch compiling time
rtc.setDateTime(__DATE__, __TIME__); //cas kompilacie sketchu a datum kompilacie - systemovy cas tvojho počítača
// Set from UNIX timestamp
// rtc.setDateTime(1397408400); //pocet sekund od 1. Januara 1970
// Manual (YYYY, MM, DD, HH, II, SS)
// rtc.setDateTime(2014, 4, 13, 19, 21, 00);