שעון זמן אמת מבוסס Arduino זה הוא שעון דיגיטלי להצגת זמן אמת באמצעות RTC IC DS1307 שעובד על פרוטוקול I2C. השעון בזמן אמת אומר שהוא פועל גם לאחר הפסקת חשמל. כאשר מתחבר לחשמל מחדש, הוא מציג את הזמן האמיתי שאינו תלוי בזמן ובמשך הזמן שהיה במצב כבוי. בפרויקט שעון מעורר זה של Arduino השתמשנו במודול LCD בגודל 16x2 כדי להציג את השעה בפורמט "שעה, דקה, שניות, תאריך, חודש ושנה". בנוסף מתווספת אפשרות אזעקה ונוכל להגדיר את זמן האזעקה. ברגע שזמן האזעקה הוא נשמר ב- EEPROM הפנימי של ארדואינו, הוא נשאר שמור גם לאחר איפוס או תקלה בחשמל. בדרך כלל משתמשים בשעונים בזמן אמת במחשבים, בבתים, במשרדים ובמכשירי האלקטרוניקה שלנו כדי לעדכן אותם בזמן אמת.
פרוטוקול I2C הוא שיטה לחיבור שני התקנים או יותר המשתמשים בשני חוטים למערכת אחת, ולכן נקרא פרוטוקול זה גם כפרוטוקול דו חוטי. באמצעותו ניתן לתקשר 127 מכשירים למכשיר או מעבד יחיד. רוב מכשירי I2C פועלים בתדר של 100 קילו-הרץ.
צעדים עבור מאסטר לכתיבת נתונים לעבד (מצב קבלת עבדים)
- שולח תנאי START לעבד.
- שולח כתובת עבד לעבד.
- שלח סיבית כתיבה (0) לעבד.
- קיבל קצת ACK מהעבד
- שולח מילה לכתובת לעבד.
- קיבל קצת ACK מהעבד
- שולח נתונים לעבד.
- קיבל קצת ACK מהעבד.
- ואחרון שולח תנאי STOP לעבד.
צעדים לקריאת נתונים מעבד למורה (מצב העברת עבדים)
- שולח תנאי START לעבד.
- שולח כתובת עבד לעבד.
- שלח סיבית קריאה (1) לעבד.
- קיבל קצת ACK מהעבד
- נתונים שהתקבלו מהעבד
- קיבל קצת ACK מהעבד.
- שולח תנאי STOP לעבד.
כדי לבנות שעון דיגיטלי מבוסס RTC DS1307 IC , השתמשנו כאן ב- Arduino Pro Mini, אך ניתן גם להשתמש בכל דגם Arduino אחר כגון Arduino Uno או Arduino Nano. יחד עם לוח ה- Arduino, DS1307 RTC IC, השתמשנו במודול LCD 16x2 כדי להציג את השעה והתאריך, מתנד קריסטל, ווסת מתח 7805, זמזם ומעט טרנזיסטורים ונגדים.
תרשים מעגל ותיאור
במעגל שעון דיגיטלי מבוסס Arduino זה, השתמשנו בשלושה מרכיבים עיקריים שהם IC DS1307, Arduino Pro Mini Board ומודול LCD 16x2.
כאן נעשה שימוש בארדואינו לקריאת זמן מ- ds1307 ולהצגתו על LCD 16x2. DS1307 שולח זמן / תאריך באמצעות שתי שורות ל- arduino. זמזם משמש גם לחיווי אזעקה, שמצפצף כאשר מופעלת האזעקה. תרשים בלוקים מוצג להלן כדי להבין את פעולתו של שעון זמן אמת זה.
כפי שניתן לראות בתרשים המעגל, סיכת שבב DS1307 SDA ו- SCL מחוברים לסיכות ארדואינו SDA ו- SCL עם נגע משיכה המחזיק בערך ברירת המחדל HIGH בקווי נתונים ושעון. מתנד גביש 32.768KHz מחובר עם שבב DS1307 ליצירת עיכוב שני 1 מדויק, וסוללת וולט 3 גם מחוברת סיכת 3 rd (BAT) של DS1307 אשר שומר זמן רץ אחרי כישלון חשמל. LCD 16x2 מחובר לארדואינו במצב 4 סיביות. סיכת בקרה RS, RW ו- En מחוברים ישירות לסיכה ארדואינו 2, GND ו- 3. וסיכת נתונים D0-D7 מחוברת ל -4, 5, 6, 7 של ארדואינו. זמזם מחובר לסיכה ארדואינו מספר 13 דרך טרנזיסטור NPN BC547 ובסיסו יש נגד של 1 k.
שלושה לחצנים כלומר, INC ו- Next משמשים להגדרת האזעקה לסיכה 12, 11 ו -10 של arduino במצב נמוך פעיל. כאשר אנו לוחצים על סט, מצב הגדרת האזעקה מופעל ועכשיו עלינו להגדיר אזעקה באמצעות לחצן INC וכפתור הבא משמש למעבר לספרה. הגדרת לוח הלוח השלם של שעון זמן אמת זה עם אזעקה מוצגת בתמונה למטה. אתה יכול גם לבדוק הדרכה מפורטת על שעון מעורר דיגיטלי עם מיקרו בקר AVR.
תיאור התוכנית
כדי לתכנת שעון זמן אמת זה, השתמשנו בכמה ספריות להפקת זמן / תאריך מ- DS1307 ולהצגה על גבי LCD, המפורטות להלן:
ואתחול של RTC, LCD ופלט קלט מבוצעים בלולאת ההתקנה.
שאר דברים כמו זמן קריאה, הגדרת אזעקה מתבצע בסעיף לולאה בטלה.