תוכן עניינים:

הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): 3 שלבים
הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): 3 שלבים

וִידֵאוֹ: הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): 3 שלבים

וִידֵאוֹ: הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות): 3 שלבים
וִידֵאוֹ: בקר התחלה-עצירה אוטומטי עם שעון זמן אמת DS3231 2024, יולי
Anonim
הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות)
הגדרת ה- RTC DS3231 (שעון בזמן אמת) בצורה מדויקת, מהירה ואוטומטית באמצעות ג'אווה (+-1 שניות)

מדריך זה יראה לך כיצד להגדיר את השעה על שעון בזמן אמת DS3231 באמצעות Arduino ויישום Java קטן המשתמש בחיבור הטורי של Arduino.

ההיגיון הבסיסי של תוכנית זו:

1. הארדואינו שולח בקשה סדרתית.

2. תוכנית הג'אווה בוחנת איזה יום/חודש/… הארדואינו ביקש ושולחת את הנתונים הרלוונטיים בחזרה.

3. לאחר שנאסף כל המידע הדרוש הארדואינו מאחסן את הנתונים ב- DS3231.

מודול RTC DS3231

מודול RTC DS3231 הוא מודול RTC זול יחסית עם דיוק גבוה. (כמה דקות בשנה)

ישנם זנים שונים שהפונקציונליות הבסיסית שלהם זהה עם הבדלים קלים בלבד.

השוואה מפורטת ניתן למצוא כאן: השוואה DS323x | maximintegrated.com

קנה DS3231: DS3231 | ebay.com

גליון נתונים: DS3231 גליון נתונים | maximintegrated.com

גליון נתונים: DS1307 גליון נתונים | maximintegrated.com

דרושים חלקים

1x ארדואינו (ננו, אונו, MEGA וכו ')

4x חוטי מגשר

מודול DS3231 1x (מודול DS1307)

שלב 1: חיווט

תִיוּל
תִיוּל

חברו את ה- DS3231 כפי שמוצג בתמונה למעלה. כמובן שאתה יכול לעשות את זה ללא שימוש בלוח לחם, אבל זה יהיה קצת יותר מבולגן. השתמשתי ב- Arduino Nano להדגמה אבל Uno או MEGA אמורים לעבוד גם כן. (אחרים עשויים גם לעבוד אבל אני מתעצל לאשר)

  • ארדואינו -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

שלב 2: קוד הארדואינו

קוד הארדואינו
קוד הארדואינו

הורד את קובץ ה-ino מלמטה והעלה אותו ל- Arduino שלך (במקרה שלי ננו).

הסקיצה צריכה את הספריות הבאות המותקנות כדי לעבוד כראוי:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

ניתן למצוא כאן הדרכה כיצד להעלות קוד לארדואינו שלך (arduino.cc).

ב IDE Arduino ודא שהקוד נשלח כהלכה. (הסתיימה ההעלאה)

ה- Arduino שלך מוכן כעת לקבל מידע על זמן

הורד את הקוד כאן: DS3231TimeSync.zip (mediafire.com)

הורד את המקור כאן: DS3231TimeSyncSRC.zip (mediafire.com)

מאגר GitHub: סנכרון זמן RTC DS3213 (github.com)

מאגר Bitbucket: סנכרון זמן RTC DS3231 (bitbucket.com)

שלב 3: יישום Java

יישום Java
יישום Java

1. הפעל את "DS3231Sync.jar" שהורדת קודם על ידי לחיצה כפולה עליו

2. תיפתח דיאלוג קטן המבקש ממך את יציאת הארדואינו שלך

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

(ראה תמונות למעלה)

3. תיבת דו -שיח נוספת תיפתח ותבקש ממך לקזז אזור זמן

הקיזוז הוא יחסית לזמן המקומי של המחשב שלך. כדי להגדיר את ה- RTC לשעה המקומית שלך פשוט הזן +00: 00.

קריטי שתזין את קיזוז אזור הזמן בפורמט ספציפי!

הפורמט הכללי הוא +hh: mm או -hh: mm. כלול תמיד אפסים מובילים!

(למשל: -03: 00; -06: 00; +09: 00; +02: 30)

4. יישום הג'אווה יפעיל חלון קטן עם פלט קונסולה

עקוב אחר הודעות אישור כמו: "הזמן מוגמר הסתיים"

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

אם לא תקבל פלט לאחר ~ 20, לחץ על כפתור האיפוס בארדואינו והמתן שוב.

אם זה עדיין לא עובד, אמת את הסקיצה על הארדואינו ו/או העלה אותו שוב. (חשוב: סגור את הפורט ביישום Java לפני העלאה ל- Arduino; אחרת הוא יחסום את היציאה הטורית!) לאחר מכן אפס את החיבור בתוכנית Java.

(תוכנית Java משתמשת ב- LocalDateTime כדי לקבל את התאריך הנוכחי.)

השעה נקבעה כעת. תעשה חיים

אם תהיה לך בעיה בלתי פתירה בקביעת השעה אנא הגיב למטה ושתף אותי ב- log.txt שלך (באותה תיקייה של הצנצנת). תודה רבה!