- Απαιτούμενο υλικό
- Διάγραμμα κυκλώματος χρονομέτρου αντίστροφης μέτρησης Arduino
- Arduino Countdown Timer Code και Επεξήγηση
Ο χρονοδιακόπτης είναι ένας τύπος ρολογιού που χρησιμοποιείται για τη μέτρηση των χρονικών διαστημάτων. Υπάρχουν δύο τύποι χρονοδιακόπτη, αυτό που μετράει πάνω από το μηδέν, για τη μέτρηση του χρόνου που παρήλθε, που ονομάζεται ως χρονόμετρο. Και, το δεύτερο μετράει από μια καθορισμένη χρονική διάρκεια που παρέχεται από τον χρήστη, που ονομάζεται γενικά ως χρονόμετρο αντίστροφης μέτρησης.
Εδώ, σε αυτό το σεμινάριο θα σας δείξουμε πώς να κάνετε ένα χρονόμετρο αντίστροφης μέτρησης χρησιμοποιώντας το Arduino. Εδώ δεν χρησιμοποιούμε καμία ενότητα Real Time Clock (RTC) για να πάρουμε τον χρόνο. Η διάρκεια του χρόνου παρέχεται από τον χρήστη με τη βοήθεια του πληκτρολογίου και 16x2 LCD. Και όταν ο χρονοδιακόπτης φτάσει στο Μηδέν, θα παράγεται ήχος ειδοποίησης με τη βοήθεια του Buzzer.
Απαιτούμενο υλικό
- Arduino UNO
- LCD 16 * 2
- Πληκτρολόγιο 4 * 4 matrix
- Βομβητής
- Κουμπί
- Ποτενσιόμετρο (10k)
- Αντίσταση (10k, 100 ohm)
- Σύνδεση καλωδίων
Διάγραμμα κυκλώματος χρονομέτρου αντίστροφης μέτρησης Arduino
Το Arduino Uno χρησιμοποιείται εδώ ως κύριος ελεγκτής. Ένα πληκτρολόγιο χρησιμοποιείται για τροφοδοσία της χρονικής διάρκειας και ένα LCD 16 * 2 για την εμφάνιση της αντίστροφης μέτρησης. Το κουμπί χρησιμοποιείται για να ξεκινήσει η ώρα. Δείτε εδώ πώς να συνδέσετε το πληκτρολόγιο 4x4 με Arduino και 16x2 LCD με το Arduino.
Arduino Countdown Timer Code και Επεξήγηση
Ο πλήρης κωδικός χρονοδιακόπτη Arduino δίνεται στο τέλος αυτού του έργου.
Σε αυτόν τον κώδικα παρακάτω, προετοιμάζουμε βιβλιοθήκες για πληκτρολόγιο και LCD και τις μεταβλητές που χρησιμοποιούνται στον κώδικα.
#περιλαμβάνω
Τώρα, στον παρακάτω κώδικα αρχικοποιούμε το όχι. σειρών και στηλών για τον ορισμό του πίνακα για το πληκτρολόγιο.
const byte ROWS = 4; // Τέσσερις σειρές const byte COLS = 4; // Τρεις στήλες πλήκτρα char = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', ' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};
Για τη σύνδεση του πληκτρολογίου 4 * 4 με το Arduino πρέπει να ορίσουμε τις ακίδες για τις σειρές και τις στήλες. Έτσι στον παρακάτω κώδικα έχουμε ορίσει καρφίτσες για το πληκτρολόγιο, καθώς και LCD 16x2.
byte rowPins = {6, 7, 8, 9}; // Συνδέστε το πληκτρολόγιο ROW0, ROW1, ROW2 και ROW3 σε αυτές τις καρφίτσες Arduino byte colPins = {10, 11, 12, 13}; // Συνδέστε το πληκτρολόγιο COL0, COL1 και COL2 σε t LiquidCrystal lcd (A0, A1, 5, 4, 3, 2); // Δημιουργεί ένα αντικείμενο LC. Παράμετροι: (rs, enabled, d4, d5, d6, d7)
Ο παρακάτω κωδικός χρησιμοποιείται για την κατασκευή του πληκτρολογίου, Πληκτρολόγιο kpd = Πληκτρολόγιο (makeKeymap (πλήκτρα), rowPins, colPins, ROWS, COLS);
Στον κωδικό λειτουργίας void setFeedingTime () , αφού πατήσουμε το κουμπί, μπορούμε να εισαγάγουμε την ώρα για το χρονοδιακόπτη και μετά μετά την εισαγωγή της χρονικής διάρκειας του χρονοδιακόπτη, πρέπει να πατήσουμε το πλήκτρο D για να ξεκινήσουμε την αντίστροφη μέτρηση.
void setFeedingTime () {feed = true; int i = 0; lcd.clear (); lcd.setCursor (0,0); lcd.print ("Ορισμός χρόνου σίτισης"); lcd.clear (); lcd.print ("HH: MM: SS"); lcd.setCursor (0,1); ενώ (1) {key = kpd.getKey (); char j; if (κλειδί! = NO_KEY) {lcd.setCursor (j, 1); lcd.print (κλειδί); r = κλειδί-48; i ++; j ++; εάν (j == 2 - j == 5) {lcd.print (":"); j ++; } καθυστέρηση (500) } εάν (κλειδί == 'D') {κλειδί = 0; Διακοπή; }} lcd.clear (); }
Στη λειτουργία κενής ρύθμισης () , έχουμε αρχικοποιήσει την οθόνη LCD και την σειριακή επικοινωνία, και ορίσαμε τους ακροδέκτες ως INPUT και OUTPUT στον παρακάτω κώδικα.
άκυρη ρύθμιση () {lcd.begin (16,2); Serial.begin (9600); pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A3, INPUT); pinMode (A4, OUTPUT); }
Η εργασία αυτού του χρονοδιακόπτη αντίστροφης μέτρησης Arduino είναι απλή αλλά ο κώδικας είναι λίγο περίπλοκος. Ο κώδικας εξηγείται από τα σχόλια στον κώδικα.
Αρχικά, θα εκτυπώσει το "Arduino Timer" στην οθόνη LCD μέχρι να πατήσετε το κουμπί. Μόλις πατήσετε το κουμπί, θα σας ζητήσει να εισαγάγετε τη διάρκεια αντίστροφης μέτρησης καλώντας τη λειτουργία " setFeedingTime " Στη συνέχεια, μπορείτε να εισαγάγετε τη διάρκεια του χρόνου με τη βοήθεια του πληκτρολογίου. Στη συνέχεια, πρέπει να πατήσετε "D" για να εξοικονομήσετε χρόνο και να ξεκινήσετε το χρονόμετρο αντίστροφης μέτρησης. Εδώ στη συνάρτηση void loop () , κάναμε κάποιον υπολογισμό για να μειώσουμε το χρόνο δευτερόλεπτο και να δείξουμε τις σωστές τιμές Hour, Minutes and Seconds (HH: MM: SS) σύμφωνα με τον υπόλοιπο χρόνο. Όλος ο κώδικας εξηγείται καλά από σχόλια. Μπορείτε να δείτε τον πλήρη κώδικα και το βίντεο επίδειξης παρακάτω.
Καθώς ο χρονοδιακόπτης φτάνει στο μηδέν, ο βομβητής αρχίζει να ηχεί και ηχεί μόνο 100 φορές (σύμφωνα με τον κωδικό). Για να σταματήσετε το βομβητή, πατήστε και κρατήστε πατημένο το κουμπί. Μπορείτε να χρησιμοποιήσετε το Πλήκτρο ανά πάσα στιγμή για να σταματήσετε το χρονόμετρο μεταξύ της μέτρησης.