سلام. ممنون از جوابتون.
راستش من کدهای گیت هابش رو خوب نفهمیدم. این شد که خودم نشستم فایل های کتابخونه رو خوندم و متوجه کارکردش شدم. نمونه کدمو میذارم اینجا، شاید کسی یه روزی به کارش اومد.
کد:
#include <Wire.h>
#include "ds3231.h" // https://github.com/rodan/ds3231
#include "rtc_ds3231.h"
const unsigned long interval = 1000;
unsigned long prev, now;
struct ts timestamp;
void setup() {
Serial.begin(9600);
Wire.begin();
DS3231_init(DS3231_INTCN);
timestamp.year = 2014;
timestamp.mon = 7;
timestamp.mday = 26;
timestamp.hour = 23;
timestamp.min = 37;
timestamp.sec = 40;
DS3231_set(timestamp); // تنظیم زمان
}
void loop() {
now = millis();
if (now - prev > interval) {
DS3231_get(×tamp); // گرفتن زمان
Serial.print("Time:");
String timestr = String(timestamp.hour) + ":" + String(timestamp.min) + ":" + String(timestamp.sec);
Serial.println(timestr);
Serial.print("Temp:");
Serial.println(DS3231_get_treg()); // گرفتن و چاپ دما در سریال
prev = now;
}
}
همونطور که میبینید، برای کار با زمان و تاریخ میبایستی از یه ساختار (structure) استفاده کنید. کد بسیار ساده هستش. توی setup زمان رو ست کردم و توی loop هر ثانیه یک بار اونو توی سریال چاپ میکنم.
ضمناً از دماسنج ماژول هم استفاده میکنم. علاوه بر زمان، دما رو هم نشون میدم. زیاد دقیق نیست اما خوبه. فقط یه دونه تابع هم داره که دما رو به سانتی گراد برمیگردونه.
نمونه خروجی هم به صورت زیر هستش:
کد:
Time:23:39:24
Temp:24.75
Time:23:39:25
Temp:24.75
Time:23:39:26
Temp:24.75