כיצד ומדוע להוסיף שעון בזמן אמת ל- Arduino

כיצד ומדוע להוסיף שעון בזמן אמת ל- Arduino

שמירה על זמן בפרויקטים של Arduino אינה קלה כפי שאתה עשוי לחשוב: ברגע שחיבור המחשב אינו קיים, ה- Arduino שלך ללא כוח פשוט מפסיק לפעול, כולל הטיקר הפנימי שלו.





תאריך שחרור של אייפד פרו דור רביעי

על מנת לשמור על הסנכרון של הארדואינו עם העולם סביבו, תזדקק למה שנקרא 'מודול שעון בזמן אמת'. להלן אופן השימוש באחד.





מה הטעם בשעון בזמן אמת (RTC)?

סביר להניח שהמחשב שלך מסנכרן את זמנו עם האינטרנט, אך עדיין יש לו שעון פנימי הממשיך לפעול גם ללא חיבור לאינטרנט או כיבוי החשמל. כאשר אתה משתמש ב- Arduino המחובר למחשב, יש לו גישה לשעה מדויקת שמספק שעון המערכת שלך. זה די שימושי, אבל רוב הפרויקטים של Arduino מיועדים לשימוש הרחק ממחשב - בשלב זה, בכל פעם שהחשמל ינותק מהחשמל או שהארדואינו יופעל מחדש, לא יהיה לו מושג מה השעה. השעון הפנימי יתאפס ויתחיל לספור שוב מאפס בפעם הבאה שהוא מופעל.





אם לפרויקט שלך יש קשר לצורך הזמן - כגון שעון המעורר של אור הלילה שלי ושעת הזריחה - ברור שזו תהיה בעיה. בפרויקט זה, התחלנו לעקוף את הבעיה על ידי הגדרה ידנית של השעה בכל לילה בצורה גסה למדי - המשתמש היה לוחץ על כפתור האיפוס רגע לפני שהם הולכים לישון, ומספק סנכרון זמן ידני. ברור שזה לא פתרון אידיאלי לזמן רב.

מודול RTC הוא חלק נוסף של מעגלים הדורשים סוללת מטבע קטנה, אשר ממשיכה לספור את הזמן גם כאשר ה- Arduino שלך כבוי. לאחר שהוגדר פעם אחת - זה ישמור על הזמן הזה לכל חיי הסוללה, בדרך כלל שנה טובה בערך.



TinyRTC

ה- RTC הפופולרי ביותר עבור Arduino נקרא TinyRTC וניתן לרכוש אותו בסביבות 5- $ 10 $ ב- eBay. סביר להניח שתצטרך לספק סוללה משלך (לא חוקי לשלוח אותם לחו'ל למקומות רבים), וכמה כותרות (הסיכות הנכנסות לחורים, שתצטרך להלחם בעצמך).

זהו המודול שיש לי:





יש לו אפילו חיישן טמפרטורה מובנה, אם כי הסוללה תחזיק יותר זמן אם אינך משתמש בו.

מספר החורים על הדבר הזה נראה די מפחיד, אבל אתה צריך רק ארבעה מהם; GND, VCC, SCL ו- SDA - ניתן להשתמש בסיכות הרלוונטיות משני צדי מודול ה- RTC. אתה מדבר עם השעון באמצעות פרוטוקול I2C כלומר, משתמשים רק בשני סיכות - אחת ל'שעון '(שעון נתוני תקשורת טוריים, אין קשר לזמן) ואחת לנתונים. למעשה, אתה אפילו שרשרת עד 121 התקני I2C על אותם שני סיכות - בדוק דף Adafruit זה למבחר התקני I2C אחרים שתוכל להוסיף, כי יש הרבה!





מתחילים

חבר את מודול TinyRTC שלך לפי התרשים שלהלן - אין צורך בקו ה- DS הוורוד, מכיוון שזהו עבור חיישן הטמפרטורה.

לאחר מכן, הורד את זְמַן ו DS1307RTC ספריות והנח את התיקיות שהתקבלו ב /ספריות תיקייה.

צא והפעל מחדש את סביבת Arduino כדי לטעון בספריות ודוגמאות.

תמצא שתי דוגמאות בתפריט DS1307RTC: העלה והפעל את זמן מוגדר דוגמה ראשונה - פעולה זו תקבע את ה- RTC לשעה הנכונה. הקוד האמיתי לא שווה פירוט, רק דע שאתה צריך להריץ אותו פעם אחת כדי לבצע את סנכרון הזמן הראשוני.

לאחר מכן, הסתכל על השימוש בדוגמא עם ReadTest .

של מי המספר הזה בחינם

#include
#include
#include
void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println('DS1307RTC Read Test');
Serial.println('-------------------');
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
Serial.print('Ok, Time = ');
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print(', Date (D/M/Y) = ');
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println('The DS1307 is stopped. Please run the SetTime');
Serial.println('example to initialize the time and begin running.');
Serial.println();
} else {
Serial.println('DS1307 read error! Please check the circuitry.');
Serial.println();
}
delay(9000);
}
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number <10) {
Serial.write('0');
}
Serial.print(number);
}

שים לב שכללנו גם את הליבה Wire.h ספרייה - זה מגיע עם Arduino ומשמש לתקשורת באמצעות I2C. העלה את הקוד, פתח את הקונסולה הטורית ב -9600 באוד וצפה והארדואינו שלך פלט את השעה הנוכחית בכל שנייה. נִפלָא!

הקוד החשוב ביותר בדוגמה הוא יצירת a tmElements_t tm - זה מִבְנֶה שנאכלס עם הזמן הנוכחי; וה RTC.read (tm) הפונקציה, שמקבלת את הזמן הנוכחי ממודול ה- RTC, מכניסה אותו לאתר שלנו tm המבנה, וחוזר נכון אם הכל הלך כשורה. הוסף את קוד הבאג או ההיגיון שלך בתוך המשפט 'אם', כגון הדפסת הזמן או תגובה אליו.

כיצד להפעיל את הדברים כמנהל

עכשיו שאתה יודע איך להשיג את הזמן הנכון עם Arduino, תוכל לנסות לשכתב את פרויקט אזעקת הזריחה או ליצור שעון מילים LED - האפשרויות הן אינסופיות! מה תכין?

זיכויים לתמונות: Snootlab דרך פליקר

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל כיצד לשנות את המראה והתחושה של שולחן העבודה של Windows 10

רוצה לדעת כיצד לגרום ל- Windows 10 להיראות טוב יותר? השתמש בהתאמות אישיות פשוטות אלה כדי להפוך את Windows 10 לשלך.

קרא הבא
נושאים קשורים
  • עשה זאת בעצמך
  • ארדואינו
על הסופר ג'יימס ברוס(707 מאמרים פורסמו)

לג'יימס תואר ראשון בבינה מלאכותית והוא מוסמך CompTIA A+ ו- Network+. כשהוא לא עסוק כעורך ביקורות חומרה, הוא נהנה מ- LEGO, VR ומשחקי לוח. לפני שהצטרף ל- MakeUseOf, הוא היה טכנאי תאורה, מורה לאנגלית ומהנדס מרכז נתונים.

עוד מאת ג'יימס ברוס

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה