שעון זמן אמת (RTC DS3231)
ה-DS3231 הוא שבב RTC (Real Time Clock) שמחזיק תאריך ושעה מדויקים גם כשהארדואינו כבוי או מנותק, בזכות סוללת גיבוי קטנה (CR2032) שעל גבי המודול. הוא מדבר עם הארדואינו בפרוטוקול I2C, ומתאים במיוחד לפרויקטים שצריכים לדעת "מה השעה עכשיו" בלי חיבור לאינטרנט — כמו שעון מילים, לוגר נתונים עם חותמת זמן, או תזמון אירועים.
מפרט
- מתח הפעלה: 3.3V עד 5V
- תקשורת: I2C (פינים SDA ו-SCL)
- דיוק: כ-±2 דקות בשנה בלבד — הרבה יותר מדויק מרוב שבבי ה-RTC הזולים יותר
- סוללת גיבוי: CR2032, שומרת על השעה גם כשאין חשמל לארדואינו
- בונוס: כולל גם חיישן טמפרטורה פנימי
- שימושים נפוצים: שעון מילים, לוגר נתונים עם חותמת זמן, מערכות תזמון וטיימרים
חיבור
VCC ל-5V, GND ל-GND, SDA ל-A4 (בארדואינו Uno; בלוחות אחרים יש פינים ייעודיים ל-SDA/SCL), SCL ל-A5.
קוד לדוגמה
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
rtc.begin();
// מריצים פעם אחת כדי לכוון את השעון לפי זמן הקומפילציה,
// ואז מוחקים/מעירים את השורה הזו כדי שלא יתאפס בכל הפעלה
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
void loop() {
DateTime now = rtc.now();
Serial.print(now.hour());
Serial.print(":");
Serial.print(now.minute());
Serial.print(":");
Serial.println(now.second());
delay(1000);
}
* לפני השימוש יש להתקין את הספרייה "RTClib" (של Adafruit) דרך Library Manager ב-Arduino IDE.
רעיון לתרגול
לבנות שעון דיגיטלי פשוט שמדפיס את השעה ל-Serial Monitor כל שנייה, ואז לשדרג: להדליק LED אדום בשעות מסוימות (למשל "שעת שינה"), או לבנות תזכורת שמתריעה בשעה קבועה מדי יום.