Βιβλιοθήκη χρονοδιακόπτη Arduino για καθυστέρηση

Bibliotheke Chronodiakopte Arduino Gia Kathysterese



Ο χρονοδιακόπτης είναι ένα από τα βασικά στοιχεία του Arduino για τη διαχείριση εργασιών που είναι ευαίσθητες στο χρόνο. Τα χρονόμετρα του Arduino χρησιμοποιούν συνήθως τη συνάρτηση delay() για να παρέχουν καθυστέρηση ή παύση εκτέλεσης για μικρά χρονικά διαστήματα. Ωστόσο, απαιτείται ειδική βιβλιοθήκη για την καθυστέρηση των λειτουργιών για πολλαπλές εργασίες.

Αυτός ο οδηγός θα καλύψει διάφορες βιβλιοθήκες χρονοδιακόπτη Arduino για καθυστέρηση με σύντομες περιγραφές. Πριν από αυτό, ας κατανοήσουμε τον περιορισμό της συνάρτησης καθυστέρησης () Arduino.







Περιορισμοί καθυστέρησης()

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



Τότε τι να κάνουμε;



Βιβλιοθήκη χρονοδιακόπτη Arduino για καθυστέρηση κλήσεων λειτουργιών

Για να λύσετε αυτό το ζήτημα, θα πρέπει να χρησιμοποιήσετε ειδικές βιβλιοθήκες που έχουν σχεδιαστεί για την εκτέλεση καθυστέρησης. Αυτές οι βιβλιοθήκες σάς επιτρέπουν να θέσετε σε παύση ορισμένες από τις λειτουργίες του προγράμματος για κάποιο χρονικό διάστημα και να εκτελέσετε άλλες στο μεταξύ. Αυτές οι βιβλιοθήκες είναι βιβλιοθήκες χρονοδιακόπτη που δεν εμποδίζουν την εκτέλεση πολλαπλών εργασιών. Μπορούν να χρησιμοποιηθούν για την κλήση συναρτήσεων όπως και όταν απαιτείται.





Πώς να συμπεριλάβετε τη βιβλιοθήκη χρονοδιακόπτη Arduino στον κώδικα Arduino

Για να συμπεριλάβουμε τη βιβλιοθήκη χρονοδιακόπτη πρώτα πρέπει να προσθέσουμε το αρχείο zip μεταβαίνοντας στο Συμπεριλάβετε τη βιβλιοθήκη ενότητα στο Arduino IDE. Για μια λεπτομερή περιγραφή της προσθήκης βιβλιοθηκών Arduino, μπορείτε να διαβάσετε το άρθρο για πώς να εγκαταστήσετε τη βιβλιοθήκη στο Arduino IDE .

Βήμα 1

Πρώτα, θα πρέπει να κατεβάσετε τη βιβλιοθήκη χρονοδιακόπτη Arduino.



Βήμα 2

Αφού κάνετε λήψη της βιβλιοθήκης χρονοδιακόπτη, ανοίξτε το Arduino IDE και μεταβείτε στο Sketch, στη συνέχεια στο Include Library και, στη συνέχεια, κάντε κλικ στο Add ZIP Library.


Θα εμφανιστεί το Arduino «Εγκαταστάθηκε βιβλιοθήκη» στην έξοδο.

Βήμα 3

Αφού προσθέσετε τη βιβλιοθήκη ZIP στο Arduino IDE, θα εμφανιστεί στην αναπτυσσόμενη λίστα με τις επιλογές Συμπερίληψης βιβλιοθήκης στο Arduino IDE. Από εδώ περιλαμβάνονται Μετρών την ώραν βιβλιοθήκη.


Όταν συμπεριλάβετε το 'Μετρών την ώραν' βιβλιοθήκη, η οδηγία προεπεξεργαστή θα εμφανιστεί στο σκίτσο. Διαφορετικά, μπορείτε να ακολουθήσετε το βήμα 4 για να συμπεριλάβετε μη αυτόματα τη βιβλιοθήκη.

# περιλαμβάνω < Χρονόμετρο.h >

Βήμα 4

Για να συμπεριλάβετε τη Βιβλιοθήκη χρονοδιακόπτη Arduino στον κώδικα Arduino, πρέπει να χρησιμοποιήσετε το #περιλαμβάνω οδηγία μαζί με την (.η) όνομα βιβλιοθήκης χρονοδιακόπτη επέκτασης και, στη συνέχεια, δημιουργήστε ένα χρονόμετρο όπως φαίνεται παρακάτω.

#include
auto timer = timer_create_default ( ) ;


Μετά τη δημιουργία ενός χρονοδιακόπτη, πρέπει να κάνετε μια λειτουργία για να καλέσετε αυτό το χρονόμετρο. Ίσως χρειαστεί να καλέσετε το χρονόμετρο σε μια καθορισμένη χρονική στιγμή, μετά από μια μικρή καθυστέρηση ή μετά από ένα χρονικό διάστημα. Παραδείγματα κλήσης χρονομετρητών σε τέτοιες συνθήκες δίνονται παρακάτω.

Σε περίπτωση που θέλετε μια μικρή καθυστέρηση

χρονόμετρο.σε ( καθυστέρηση, λειτουργία_προς_κλήση ) ;
χρονόμετρο.σε ( καθυστέρηση, συνάρτηση_προς_κλήση, όρισμα ) ; // ή με προαιρετικό όρισμα Για λειτουργία_προς_κλήση


Σε αυτή την περίπτωση, μπορούμε να χρησιμοποιήσουμε το timer.in() λειτουργία για την εισαγωγή καθυστέρησης πριν από την κλήση μιας συγκεκριμένης συνάρτησης. Η παράμετρος καθυστέρησης αντιπροσωπεύει το χρόνο σε χιλιοστά του δευτερολέπτου που θέλουμε να περιμένουμε πριν εκτελέσουμε τον κώδικα.

Μετά την καθορισμένη καθυστέρηση, το λειτουργία_προς_κλήση θα χρησιμοποιηθεί. Μπορεί επίσης να οριστεί ένα όρισμα για να περάσει στη συνάρτηση τη στιγμή της κλήσης.

Σε περίπτωση που θέλετε να καλέσετε το χρονόμετρο σε μια συγκεκριμένη ώρα

Αυτή η λειτουργία ρυθμίζει ένα χρονόμετρο για την εκτέλεση μιας συγκεκριμένης λειτουργίας σε μια συγκεκριμένη στιγμή. Η παράμετρος χρόνος καθορίζει την ώρα κατά την οποία θα πρέπει να κληθεί η συνάρτηση. Θα μπορούσε να είναι μια συγκεκριμένη χρονική σήμανση ή μια τιμή καθυστέρησης σε χιλιοστά του δευτερολέπτου. ο λειτουργία_προς_κλήση είναι η παράμετρος της συνάρτησης που πρόκειται να εκτελεστεί μετά τη λήξη του χρονοδιακόπτη.

timer.at ( χρόνος , function_to_call ) ;
timer.at ( χρόνος , function_to_call, όρισμα ) ; // με επιχείρημα


timer.at (time, function_to_call, όρισμα) η συνάρτηση μπορεί να περάσει ένα όρισμα στη συνάρτηση που καλείται. Η παράμετρος ορίσματος θα είναι η τιμή που θα μεταβιβαστεί στη συνάρτηση.

Σε περίπτωση που θέλετε να καλέσετε το χρονόμετρο μετά από ένα χρονικό διάστημα

Σε αυτήν την περίπτωση, μπορείτε να χρησιμοποιήσετε τη συνάρτηση timer.every() για να καλέσετε επανειλημμένα μια συνάρτηση μετά από ένα συγκεκριμένο χρονικό διάστημα. Η παράμετρος διαστήματος δείχνει το χρόνο σε χιλιοστά του δευτερολέπτου μεταξύ των εκτελέσιμων χρονικών διαστημάτων.

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

χρονόμετρο.κάθε ( διάστημα, συνάρτηση_προς_κλήση ) ;
χρονόμετρο.κάθε ( διάστημα, συνάρτηση_προς_κλήση, όρισμα ) ; // Γράψτε το μεσοδιάστημά σας εδώ


Μπορείτε να μάθετε περισσότερες λεπτομέρειες σχετικά με αυτήν τη μέθοδο χρήσης βιβλιοθήκης χρονοδιακόπτη για την καθυστέρηση κλήσεων λειτουργιών μέσω του συνδέσμου Βιβλιοθήκη χρονοδιακόπτη Arduino για καθυστερήσεις λειτουργιών .

Μερικές άλλες βιβλιοθήκες για καθυστέρηση στο Arduino

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

Timer Library από τον Michael Contreras

Υπάρχει επίσης ένας συγγραφέας που έχει παράσχει τη δική του δημιουργημένη βιβλιοθήκη χρονοδιακόπτη Arduino χωρίς αποκλεισμό για την καθυστέρηση κλήσεων λειτουργιών. Έχει χρησιμοποιήσει ενσωματωμένες συναρτήσεις του Arduino όπως millis() και micros() για να εκτελεί λειτουργίες καθυστέρησης χωρίς αποκλεισμό. Ένας σύνδεσμος για τη βιβλιοθήκη του δίνεται παρακάτω:

MichaelUray Βιβλιοθήκη χρονοδιακόπτη Arduino

συμπέρασμα

Αν και η συνάρτηση delay() υπάρχει ήδη στο Arduino, δεν μπορεί να χρησιμοποιηθεί για την εκτέλεση πολλαπλών εργασιών ταυτόχρονα. Για την εκτέλεση πολλαπλών εργασιών ταυτόχρονα, έχουν δημιουργηθεί από την κοινότητα του Arduino μη αποκλειστικές βιβλιοθήκες χρονοδιακόπτη που μπορούν να χρησιμοποιηθούν όπως και όταν απαιτείται.