Πώς και γιατί να προσθέσετε ένα ρολόι πραγματικού χρόνου στο Arduino

Πώς και γιατί να προσθέσετε ένα ρολόι πραγματικού χρόνου στο Arduino

Η διατήρηση χρόνου σε έργα Arduino δεν είναι τόσο εύκολη όσο νομίζετε: μόλις δεν υπάρχει σύνδεση υπολογιστή, το μη τροφοδοτημένο Arduino σας σταματά απλώς να λειτουργεί, συμπεριλαμβανομένου του εσωτερικού του ticker.





επιστροφή στο κλασικό gmail που λείπει

Για να διατηρήσετε το Arduino σας συγχρονισμένο με τον κόσμο γύρω του, θα χρειαστείτε αυτό που ονομάζεται «Λειτουργία ρολογιού πραγματικού χρόνου». Δείτε πώς να χρησιμοποιήσετε ένα.





Ποιο είναι το νόημα ενός ρολογιού πραγματικού χρόνου (RTC);

Ο υπολογιστής σας πιθανότατα συγχρονίζει το χρόνο του με το διαδίκτυο, αλλά εξακολουθεί να έχει ένα εσωτερικό ρολόι που συνεχίζει να λειτουργεί ακόμη και χωρίς σύνδεση στο Διαδίκτυο ή εάν η τροφοδοσία είναι απενεργοποιημένη. Όταν χρησιμοποιείτε Arduino συνδεδεμένο σε υπολογιστή, έχει πρόσβαση σε ακριβή ώρα που παρέχεται από το ρολόι του συστήματός σας. Αυτό είναι αρκετά χρήσιμο, αλλά τα περισσότερα έργα 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: μεταφορτώστε και εκτελέστε το SetTime παράδειγμα πρώτο - αυτό θα ρυθμίσει το 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 baud και παρακολουθήστε και το Arduino σας βγάζει την τρέχουσα ώρα κάθε δευτερόλεπτο. Θαυμάσιος!

Ο πιο σημαντικός κώδικας στο παράδειγμα είναι η δημιουργία ενός tmElements_t tm - αυτό α δομή ότι θα συμπληρώσουμε με την τρέχουσα ώρα. και το RTC.read (tm) συνάρτηση, η οποία λαμβάνει τον τρέχοντα χρόνο από τη μονάδα RTC, την τοποθετεί στη δική μας tm δομή, και επιστρέφει true αν όλα πήγαν καλά. Προσθέστε τον κωδικό εντοπισμού σφαλμάτων ή τον λογικό κώδικα μέσα σε αυτήν τη δήλωση 'εάν', όπως η εκτύπωση της ώρας ή η αντίδραση σε αυτήν.

μπορείτε να εγκαταστήσετε το linux σε ένα chromebook

Τώρα που ξέρετε πώς να βρείτε τον κατάλληλο χρόνο με το Arduino, μπορείτε να δοκιμάσετε να ξαναγράψετε το έργο συναγερμού ανατολής ή να δημιουργήσετε ένα ρολόι λέξεων LED - οι δυνατότητες είναι ατελείωτες! Τι θα φτιάξετε;

Συντελεστές εικόνας: Snootlab Μέσω Flickr

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Πώς να αλλάξετε την εμφάνιση και την αίσθηση της επιφάνειας εργασίας των Windows 10

Θέλετε να μάθετε πώς να κάνετε τα Windows 10 να φαίνονται καλύτερα; Χρησιμοποιήστε αυτές τις απλές προσαρμογές για να κάνετε τα Windows 10 δικά σας.

Διαβάστε Επόμενο
Σχετικά θέματα
  • DIY
  • Arduino
Σχετικά με τον Συγγραφέα Τζέιμς Μπρους(Δημοσιεύθηκαν 707 άρθρα)

Ο Τζέιμς έχει πτυχίο Τεχνητής Νοημοσύνης και διαθέτει πιστοποίηση CompTIA A+ και Network+. Όταν δεν είναι απασχολημένος ως Hardware Reviews Editor, απολαμβάνει LEGO, VR και επιτραπέζια παιχνίδια. Πριν ενταχθεί στο MakeUseOf, ήταν τεχνικός φωτισμού, καθηγητής αγγλικών και μηχανικός κέντρου δεδομένων.

Περισσότερα από τον James Bruce

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή
Κατηγορία Diy