arduino εντολή pulseIn()

Εντολή pulseIn()

Περιγραφή

Με την εντολή pulseIn() μπορείτε να μετρήσετε τον χρόνο που θα μεσολαβήσει ώστε ένας παλμός για να αλλάξει η κατάσταση (HIGH, LOW) ενός pin.

Η συνάρτηση δέχεται 2 ή τρία ορίσματα. Διαβάζει την κατάσταση ενός pin η οποία μπορεί να είναι είτε HIGH είτε LOW και επιστρέφει τον χρόνο που μεσολάβησε για να αλλάξει κατάσταση. Αν δοθεί και χρόνος timeout, η συνάρτηση επιστρέφει 0 στην περίπτωση που παρέλθει ο χρόνος αναμονής και η κατάσταση δεν αλλάξει.


Παράδειγμα χρήσης

Για παράδειγμα αν μία τιμή σε ένα pin είναι HIGH, η εντολή pulsePin() περιμένει να διαβάσει την τιμή HIGH και στην συνέχεια ξεκινάει την χρονομέτρηση και περιμένει να αλλάξει κατάσταση το pin σε LOW ώστε να σταματήσει την χρονομέτρηση.

Επιστρέφει σε microseconds τον χρόνο που πέρασε ή επιστρέφει 0 στην περίπτωση που έχουμε δώσει timeout και ο χρόνος που πέρασε χωρίς να αλλάξει η κατάσταση του pin είναι μεγαλύτερος από το timeout.

Ο χρονισμός της συνάρτησης έχει προσδιοριστεί εμπειρικά και πολύ πιθανό να προκύψουν σφάλματα σε μεγαλύτερης διάρκειας παλμούς. Η συνιστώμενη λειτουργία είναι από 10microseconds έως 3 λεπτά.

Σύνταξη

pulseIn(pin, κατάσταση, [timeout])

pin: Το pin που εξετάζουμε

κατάσταση: Η αρχική κατάσταση του pin (HIGH ή LOW)

timeout: προαιρετικά, ο χρόνος μέσα στον οποίο περιμένουμε να αλλάξει η κατάσταση. Αν παρέλθει αυτός ο χρόνος τότε η συνάρτηση επιστρέφει 0.

Επιστρέφει τον χρόνο σε microseconds η 0 στην περίπτωση που χρησιμοποιούμε timeout.

Παράδειγμα με κώδικα




Το παρακάτω πρόγραμμα μετράει το χρόνο που μεσολαβεί από την έναρξη του προγράμματος έως τη στιγμή που θα τοποθετήσουμε στο pin 6 5 volt. Στη συνέχεια μας εκτυπώνει στη σειριακή θύρα (εργαλεία –> παρακολούθηση σειριακής) τον χρόνο σε microsecond.

int pin = 6; unsigned long duration; 
void setup() 
{ 
  pinMode(pin, INPUT); //ορίζουμε το pin 6 ως είσοδο *είναι LOW από προεπιλογή
  Serial.begin(9600);
} 
void loop() 
{ 
duration = pulseIn(pin, HIGH); // Θα βάλουμε ένα καλώδιο από τα 5V του arduino στο pin 6, 
Serial.println("time elapsed"+duration); στη συνέχεια θα εκτυπωθεί στη σειριακή θύρα
}
Επιστροφή στη λίστα εντολών
Δεκέμβριος 24, 2018

0 Απαντήσεις στο "arduino εντολή pulseIn()"

    Αφήστε ένα μήνυμα

    Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

    Σχεδιασμός © GetCert. Με επιφύλαξη παντός δικαιώματος.

    Αυτό είναι ένα δοκιμαστικό κατάστημα για δοκιμαστικούς σκοπούς — καμία παραγγελία δεν θα ολοκληρωθεί. Απόρριψη