Πίνακας περιεχομένων:

Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): 3 βήματα
Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): 3 βήματα

Βίντεο: Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): 3 βήματα

Βίντεο: Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): 3 βήματα
Βίντεο: LDmicro 20: I2C Liquid Crystal Display Resolved(Microcontroller PLC Ladder Programming with LDmicro) 2024, Νοέμβριος
Anonim
Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s)
Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s)

Αυτό το Instructable πρόκειται να σας δείξει πώς να ρυθμίσετε την ώρα σε ένα ρολόι πραγματικού χρόνου DS3231 χρησιμοποιώντας ένα Arduino και μια μικρή εφαρμογή Java που χρησιμοποιεί τη σειριακή σύνδεση του Arduino.

Η βασική λογική αυτού του προγράμματος:

1. Το Arduino στέλνει σειριακό αίτημα.

2. Το πρόγραμμα Java δείχνει ποια ημέρα/μήνα/… το arduino ζήτησε και στέλνει τα σχετικά δεδομένα πίσω.

3. Αφού συγκεντρωθούν όλες οι απαραίτητες πληροφορίες, το arduino αποθηκεύει τα δεδομένα στο DS3231.

Η μονάδα DS3231 RTC

Η μονάδα DS3231 RTC είναι μια σχετικά φθηνή μονάδα RTC με υψηλή ακρίβεια. (λίγα λεπτά το χρόνο)

Υπάρχουν διάφορες ποικιλίες των οποίων η βασική λειτουργικότητα είναι η ίδια με μικρές μόνο διαφορές.

Αναλυτική σύγκριση μπορείτε να βρείτε εδώ: Σύγκριση DS323x | maximintegrated.com

Αγοράστε DS3231: DS3231 | ebay.com

Φύλλο δεδομένων: DS3231 Φύλλο δεδομένων | maximintegrated.com

Φύλλο δεδομένων: DS1307 Φύλλο δεδομένων | maximintegrated.com

Απαιτούμενα ανταλλακτικά

1x Arduino (Nano, Uno, MEGA, κλπ.)

4x Jumper Wires

1x μονάδα DS3231 (μονάδα DS1307)

Βήμα 1: Καλωδίωση

Καλωδίωση
Καλωδίωση

Συνδέστε το DS3231 όπως φαίνεται στην παραπάνω εικόνα. Φυσικά μπορείτε να το κάνετε χωρίς τη χρήση ενός breadboard, αλλά θα είναι λίγο πιο ακατάστατο. Έχω χρησιμοποιήσει ένα Arduino Nano για επίδειξη, αλλά ένα Uno ή ένα MEGA πρέπει επίσης να λειτουργήσει. (Άλλοι μπορεί επίσης να λειτουργήσουν, αλλά είμαι τεμπέλης για να επιβεβαιώσω)

  • Arduino -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

Βήμα 2: Ο κώδικας Arduino

Ο κώδικας Arduino
Ο κώδικας Arduino

Κατεβάστε το αρχείο.ino από κάτω και ανεβάστε το στο Arduino σας (στην περίπτωσή μου ένα Nano).

Το σκίτσο χρειάζεται τις ακόλουθες βιβλιοθήκες εγκατεστημένες για να λειτουργήσει σωστά:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

Μπορείτε να βρείτε ένα σεμινάριο για το πώς να ανεβάσετε κώδικα στο arduino σας (arduino.cc).

Στο Arduino IDE βεβαιωθείτε ότι ο κωδικός υποβλήθηκε σωστά. (Ολοκλήρωση μεταφόρτωσης)

Το Arduino σας είναι τώρα έτοιμο να λάβει πληροφορίες χρόνου

Κατεβάστε τον κωδικό εδώ: DS3231TimeSync.zip (mediafire.com)

Κατεβάστε την πηγή εδώ: DS3231TimeSyncSRC.zip (mediafire.com)

Αποθετήριο GitHub: DS3213 RTC Time Sync (github.com)

Αποθετήριο Bitbucket: DS3231 RTC Time Sync (bitbucket.com)

Βήμα 3: Η εφαρμογή Java

Η εφαρμογή Java
Η εφαρμογή Java

1. Εκτελέστε το "DS3231Sync.jar" που κατεβάσατε πριν κάνοντας διπλό κλικ σε αυτό

2. Θα ανοίξει ένα μικρό παράθυρο διαλόγου που θα σας ζητά τη θύρα του arduino σας

Εάν δεν είστε βέβαιοι για τη θύρα που χρησιμοποιεί το arduino σας, ρίξτε μια ματιά στο Arduino IDE κάτω δεξιά.

(Δείτε τις εικόνες παραπάνω)

3. Ένα άλλο παράθυρο διαλόγου θα ανοίξει και θα σας ζητήσει αντιστάθμιση ζώνης ώρας

Η μετατόπιση είναι σχετική με την τοπική ώρα του υπολογιστή σας. Για να ρυθμίσετε το RTC στην τοπική ώρα, απλώς πληκτρολογήστε +00: 00.

Είναι ζωτικής σημασίας να εισαγάγετε τη ζώνη ώρας με αντιστάθμιση σε μια συγκεκριμένη μορφή!

Η γενική μορφή είναι +hh: mm ή -hh: mm. Συμπεριλάβετε πάντα κορυφαία μηδενικά!

(Π.χ.: -03: 00; -06: 00; +09: 00; +02: 30)

4. Η εφαρμογή Java θα ξεκινήσει ένα μικρό παράθυρο με έξοδο κονσόλας

Παρακολουθήστε μηνύματα επιβεβαίωσης όπως: "Ο χρόνος έχει τελειώσει"

Όταν ολοκληρωθεί η διαδικασία ρύθμισης ώρας, ο κωδικός θα εκτυπώνει την τρέχουσα ώρα στο DS3231 κάθε 5 δευτερόλεπτα. Μπορείτε να επιβεβαιώσετε ότι η ώρα έχει ρυθμιστεί σωστά.

Εάν δεν λάβετε έξοδο μετά από 20 δευτερόλεπτα, πατήστε το κουμπί επαναφοράς στο arduino σας και περιμένετε ξανά.

Εάν εξακολουθεί να μην λειτουργεί, επαληθεύστε το σκίτσο στο Arduino και/ή ανεβάστε το ξανά. (Σημαντικό: Κλείστε τη θύρα στην εφαρμογή Java πριν τη μεταφόρτωση στο Arduino. Διαφορετικά θα αποκλείσει τη σειριακή θύρα!) Στη συνέχεια, επαναφέρετε τη σύνδεση στο πρόγραμμα Java.

(Το πρόγραμμα Java χρησιμοποιεί LocalDateTime για να λάβει την τρέχουσα ημερομηνία.)

Η ώρα έχει πλέον οριστεί. Καλα να περνατε

Σίγουρα έχετε οποιοδήποτε άλυτο πρόβλημα με τον καθορισμό της ώρας, σχολιάστε παρακάτω και μοιραστείτε το log.txt (στον ίδιο φάκελο με το βάζο) μαζί μου. Ευχαριστώ πολύ!