Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Καλωδίωση
- Βήμα 2: Ο κώδικας
- Βήμα 3: Σχηματικό (Αυτό δεν είναι πραγματικά ένα βήμα)
Βίντεο: Ρολόι ακριβείας: 3 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Όλοι χρειαζόμαστε ρολόγια, οπότε γιατί να μην φτιάξετε το δικό σας σε αυτό το διδακτικό, θα σας δείξω πώς να φτιάξετε ένα ρολόι ακριβείας μόλις ρυθμίσετε θα παρακολουθεί αυτόματα την τρέχουσα ώρα στο παρασκήνιο όλων. Ενώ χρειάζεται μόνο πολύ λίγα εφόδια και μηδενικές συγκολλήσεις.
Προμήθειες
Πρώτον, θα χρειαστείτε ένα Arduino, αλλά οποιοδήποτε Arduino θα λειτουργήσει
Στη συνέχεια, θα χρειαστείτε μια σειρά από γενικά καλώδια βραχυκυκλωτήρων.
2 διακόπτες 12mm Sparkfun Pushbutton
Ένα παραδοσιακό Breadboard
και οθόνη LCD 1602 16 ακίδων
Βήμα 1: Καλωδίωση
Για να λειτουργήσει αυτό το ρολόι, πρέπει να το συνδέσετε με έναν πολύ συγκεκριμένο τρόπο, αλλιώς θα έχετε έναν σωρό τυχαίους αριθμούς στην οθόνη και όχι τον χρόνο.
Βήμα 2: Ο κώδικας
Δεδομένου ότι δεν χρησιμοποιούμε RTC, ο κώδικας θα είναι λίγο μακρύς, αλλά ευτυχώς έκανα όλη τη σκληρή δουλειά για εσάς και τον παρείχα εδώ.
Απλώς αντιγράψτε και επικολλήστε αυτό είτε στο Arduino IDE είτε στο web Editor.
#include "LiquidCrystal.h"
// Αυτό ορίζει την καλωδίωση LCD στο DIGITALpins const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
// Digitalηφιακή ρύθμιση αντίστασης LCD int cs = 9; // ακίδα 9 για αντίθεση PWM const int contrast = 100; // προεπιλεγμένη αντίθεση
// η αρχική εμφάνιση ώρας είναι 12:59:45 μμ int h = 12; int m = 59; int s = 45; int σημαία = 1; //ΜΕΤΑ ΜΕΣΗΜΒΡΙΑΣ
// Κουμπιά ρύθμισης ώρας κουμπί int1; κουμπί int2;
// Ορισμός καρφιτσών για Κουμπιά ρύθμισης ώρας int hs = 0; // καρφίτσα 0 για Ρύθμιση ώρας int ms = 1; // καρφίτσα 1 για Ρύθμιση λεπτών
// Χρόνος λήξης οπίσθιου φωτισμού const int Time_light = 150; int bl_TO = Time_light; // Backlight Time-Out int bl = 10; // PIN οπίσθιου φωτισμού const int backlight = 120; // όχι περισσότερο από 7mA !!!
// Για ακριβή ανάγνωση ώρας, χρησιμοποιήστε το Arduino Real Time Clock και όχι απλώς καθυστερήστε () το static uint32_t last_time, now = 0; // RTC
void setup () {lcd.begin (16, 2); pinMode (hs, INPUT_PULLUP); // αποφυγή εξωτερικών αντιστάσεων Pullup για Button 1 pinMode (ms, INPUT_PULLUP); // και Button 2 analogWrite (cs, contrast); // Adjust Contrast VO analogWrite (bl, backlight); // Turn στο Backlight now = millis (); // διαβάστε την αρχική τιμή RTC}
void loop () {lcd.begin (16, 2); // κάθε δευτερόλεπτο // Ενημέρωση οθόνης LCD // Εκτύπωση ώρας σε ώρα, λεπτό, δευτ. + μμ/μμ lcd.setCursor (0, 0); lcd.print ("Time"); εάν (h <10) lcd.print ("0"); // πάντα 2 ψηφία lcd.print (h), lcd.print (":"); εάν (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); if (s <10) lcd.print ("0"); lcd.print (s);
if (σημαία == 0) lcd.print ("AM"); εάν (σημαία == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // για τη γραμμή 2 lcd.print ("Ρολόι ακριβείας");
// βελτιωμένη αντικατάσταση καθυστέρησης (1000) // Πολύ καλύτερη ακρίβεια, όχι περισσότερο εξαρτώμενη από τον χρόνο εκτέλεσης του βρόχου
για (int i = 0; i <5; i ++) // κάντε 5 φορές βρόχο 200ms, για ταχύτερη απόκριση κουμπιού {
while ((now-last_time) <200) // delay200ms {now = millis (); } // εσωτερικός βρόχος 200ms last_time = τώρα; // προετοιμασία για τον επόμενο βρόχο
// διαβάστε το κουμπί ρύθμισης κουμπιών1 = digitalRead (hs); // κουμπί ανάγνωσης κουμπιών2 = digitalRead (ms);
// Χρόνος λήξης οπίσθιου φωτισμού bl_TO--; if (bl_TO == 0) {analogWrite (bl, 0); // Backlight OFF bl_TO ++; } // Πατήστε οποιοδήποτε για να ενεργοποιήσετε το Backlight if (((button1 == 0) | (button2 == 0)) & (bl_TO == 1)) {bl_TO = Time_light; analogWrite (bl, οπίσθιος φωτισμός); // περιμένετε μέχρι να απελευθερωθεί το κουμπί ενώ ((button1 == 0) | (button2 == 0)) {button1 = digitalRead (hs); // κουμπιά ανάγνωσης κουμπί2 = digitalRead (ms); }} else // Κουμπί διεργασίας 1 ή κουμπί 2 όταν πατηθεί ενώ ο οπίσθιος φωτισμός είναι ενεργοποιημένος {if (button1 == 0) {h = h+1; bl_TO = Time_light; analogWrite (bl, οπίσθιος φωτισμός); }
εάν (κουμπί2 == 0) {s = 0; m = m+1; bl_TO = Time_light; analogWrite (bl, οπίσθιος φωτισμός); }
/* ---- διαχείριση δευτερολέπτων, λεπτών, ωρών π.μ./μ.μ. υπερχείλισης ----*/if (s == 60) {s = 0; m = m+1; } if (m == 60) {m = 0; h = h+1; } if (h == 13) {h = 1; σημαία = σημαία+1; εάν (σημαία == 2) σημαία = 0; }
if ((button1 == 0) | (button2 == 0)) // Ενημέρωση οθόνης αν πατηθεί το κουμπί ρύθμισης ώρας {// Ενημέρωση οθόνης LCD // Εκτύπωση ώρας σε ώρα, λεπτό, δευτ. + μμ/μμ lcd.setCursor (0, 0); lcd.print ("Time"); εάν (h <10) lcd.print ("0"); // πάντα 2 ψηφία lcd.print (h), lcd.print (":"); εάν (m <10) lcd.print ("0"); lcd.print (m); lcd.print (":"); if (s <10) lcd.print ("0"); lcd.print (s);
εάν (σημαία == 0) lcd.print ("ΠΜ"); εάν (σημαία == 1) lcd.print ("PM"); lcd.setCursor (0, 1); // για τη γραμμή 2 lcd.print ("Ρολόι ακριβείας"); }
} // τέλος αν αλλιώς} // τέλος για
// εξωτερικός βρόχος 1000ms
s = s+1; // αύξηση δευτ. καταμέτρηση // ---- διαχείριση δευτερολέπτων, λεπτών, ωρών π.μ./μ.μ. υπερχείλισης ---- εάν (s == 60) {s = 0; m = m+1; } if (m == 60) {m = 0; h = h+1; } if (h == 13) {h = 1; σημαία = σημαία+1; εάν (σημαία == 2) σημαία = 0; }
// Βρόχος τέλος}
Βήμα 3: Σχηματικό (Αυτό δεν είναι πραγματικά ένα βήμα)
Αν κάποιος που διαβάζει αυτό είναι τεχνολόγος εδώ είναι επίσης σχηματικός, μπορείτε να το δείτε τρελαμένος.
Απολαύστε και διασκεδάστε και κυρίως μείνετε φρέσκοι.
Συνιστάται:
Πώς να φτιάξετε αναλογικό ρολόι & ψηφιακό ρολόι με led led χρησιμοποιώντας το Arduino: 3 βήματα
Πώς να φτιάξετε αναλογικό ρολόι & ψηφιακό ρολόι με Led Strip χρησιμοποιώντας Arduino: Σήμερα θα φτιάξουμε ένα αναλογικό ρολόι & Digitalηφιακό ρολόι με Led Strip και μονάδα MAX7219 Dot με Arduino. Θα διορθώσει την ώρα με την τοπική ζώνη ώρας. Το αναλογικό ρολόι μπορεί να χρησιμοποιήσει μια μεγαλύτερη λωρίδα LED, ώστε να μπορεί να κρεμαστεί στον τοίχο για να γίνει τέχνη
Ρολόι συνταξιοδότησης / Καταμέτρηση / Ρολόι Dn: 4 βήματα (με εικόνες)
Ρολόι συνταξιοδότησης / Count Up / Dn Clock: Είχα μερικές από αυτές τις οθόνες 8x8 LED με κουκκίδες στο συρτάρι και σκεφτόμουν τι να κάνω με αυτές. Εμπνευσμένο από άλλες οδηγίες, μου ήρθε η ιδέα να δημιουργήσω μια οθόνη αντίστροφης μέτρησης/ανύψωσης για να μετράω αντίστροφα σε μια μελλοντική ημερομηνία/ώρα και αν ο στόχος είναι
Απομακρυσμένη καταγραφή δεδομένων υψηλής ακρίβειας χρησιμοποιώντας πολύμετρο/Arduino/pfodApp: 10 βήματα (με εικόνες)
Απομακρυσμένη καταγραφή δεδομένων υψηλής ακρίβειας με χρήση πολύμετρου/Arduino/pfodApp: Ενημερώθηκε στις 26 Απριλίου 2017 Αναθεωρημένο κύκλωμα και πλακέτα για χρήση με μετρητές USB 4000ZC. Δεν απαιτείται κωδικοποίηση Android. Αυτό το διδακτικό σας δείχνει πώς έχετε πρόσβαση σε ένα ευρύ φάσμα μετρήσεων υψηλής ακρίβειας από το Arduino σας και επίσης αποστείλετε τις από απόσταση για καταγραφή και
Πείραμα διόρθωσης ακριβείας: 11 βήματα
Ένα πείραμα διόρθωσης ακριβείας: Έχω κάνει πρόσφατα ένα πείραμα σε ένα κύκλωμα διόρθωσης ακριβείας και έβγαλα κάποια πρόχειρα συμπεράσματα. Λαμβάνοντας υπόψη ότι το κύκλωμα ανορθωτή ακριβείας είναι ένα κοινό κύκλωμα, τα αποτελέσματα αυτού του πειράματος μπορούν να παρέχουν κάποιες πληροφορίες αναφοράς. Το e
Ελεγκτής θερμοκρασίας υψηλής ακρίβειας: 6 βήματα (με εικόνες)
Υψηλής ακρίβειας ελεγκτής θερμοκρασίας: Στην επιστήμη και στον κόσμο της μηχανικής, η παρακολούθηση της θερμοκρασίας (όπως η κίνηση των ατόμων στη θερμοδυναμική) είναι μια από τις θεμελιώδεις φυσικές παραμέτρους που πρέπει να λάβετε υπόψη σχεδόν παντού, ξεκινώντας από τη βιολογία των κυττάρων έως τον πυραύλο σκληρού καυσίμου