Περιγραφή
Διαβάζει είτε την υψηλή είτε την χαμηλή τιμή του παλμού ενός ακροδέκτη. Για παράδειγμα, εάν η τιμή είναι η HIGH (υψηλή), τότε η pulseIn() περιμένει τον ακροδέκτη να πάει στην τιμή HIGH (υψηλή). Στην συνέχεια ξεκινάει να μετράει και περιμένει τον ακροδέκτη να πάει στην τιμή LOW (χαμηλή) και ύστερα από αυτό σταματάει να μετράει. Αμέσως μετά επιστρέφει την διάρκεια του παλμού σε μικρά του δευτερολέπτου ή το 0 εάν δεν έχει ληφθεί ολοκληρωμένος παλμός εντός του χρονικού ορίου.
Η διάρκεια αυτής της συνάρτησης έχει προσδιοριστεί εμπειρικά και κατά πάσα πιθανότητα θα εμφανίσει σφάλματα στους μικρότερους παλμούς. Λειτουργεί σε παλμούς που έχουν διάρκεια από 10 μικρά του δευτερολέπτου έως 3 λεπτά. Επίσης σημειώστε ότι εάν ο ακροδέκτης βρίσκεται ήδη στην υψηλή τιμή όταν καλείται η συνάρτηση, τότε θα περιμένει τον ακροδέκτη να πάει πρώτα στην χαμηλή τιμή και μετά στην υψηλή πριν αρχίσει να μετράει. Σημειωτέον ότι αυτή η ρουτίνα μπορεί να χρησιμοποιηθεί μόνο εάν τα σήματα διακοπής είναι ενεργοποιημένα. Επιπλέον, η υψηλότερη απόδοση επιτυγχάνεται με μικρές διακοπές.
Σύνταξη
pulseIn(ακροδέκτης, τιμή)
pulseIn(ακροδέκτης, τιμή, λήξη χρόνου)
Παράμετροι
ακροδέκτης: ο αριθμός του ακροδέκτη στον οποίο θέλετε να γίνει η ανάγνωση του παλμού (ακέραιος).
τιμή: ο τύπος ανάγνωσης του παλμού, δηλαδή είτε η υψηλή είτε η χαμηλή τιμή του (ακέραιος).
λήξη χρόνου (προαιρετικό): ο αριθμός των μικρών του δευτερολέπτου που περιμένει έως ότου να ολοκληρωθεί ο παλμός. Σε περίπτωση που δεν ληφθεί ένας ολοκληρωμένος παλμός εντός του χρονικού ορίου, τότε η συνάρτηση θα επιστρέψει το 0. Ως προεπιλογή είναι το ένα δευτερόλεπτο (ανυπόγραφος long).
Επιστρέφει
Την διάρκεια του παλμού σε μικρά του δευτερολέπτου ή το 0 εάν δεν έχει ολοκληρωθεί ένας παλμός πριν από το χρονικό όριο (ανυπόγραφος long).
Παράδειγμα
int pin = 7;
unsigned long duration;
void setup()
{
pinMode(pin, INPUT);
}
void loop()
{
duration = pulseIn(pin, HIGH);
}
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
