norr@manorshi.com         +86-519-89185720
1
Κέντρο Ειδήσεων

Πώς να χρησιμοποιήσετε τον αισθητήρα υπερήχων με το Arduino;

Προβολές: 164     Συγγραφέας: Grace Ώρα δημοσίευσης: 26-07-2021 Προέλευση: Τοποθεσία

κουμπί κοινής χρήσης facebook
κουμπί κοινής χρήσης twitter
κουμπί κοινής χρήσης γραμμής
κουμπί κοινής χρήσης wechat
κουμπί κοινής χρήσης linkedin
κουμπί κοινής χρήσης pinterest
κουμπί κοινής χρήσης whatsapp
κουμπί κοινής χρήσης kakao
Κουμπί κοινής χρήσης snapchat
κουμπί κοινής χρήσης τηλεγραφήματος
κοινοποιήστε αυτό το κουμπί κοινής χρήσης

Πώς να χρησιμοποιήσετε τον αισθητήρα υπερήχων με το Arduino: Οδηγός HC-SR04

Ο Ο αισθητήρας υπερήχων HC-SR04 είναι μια από τις πιο δημοφιλείς μονάδες μέτρησης απόστασης για έργα Arduino. Χρησιμοποιείται ευρέως σε ρομπότ αποφυγής εμποδίων, αισθητήρες στάθμευσης, ανίχνευση στάθμης, έξυπνους κάδους απορριμμάτων, μετρητές απόστασης και άλλες εφαρμογές ανίχνευσης χωρίς επαφή.

Η μονάδα εκπέμπει υπερηχητικά κύματα 40 kHz μέσω ενός πομπού. Όταν το ηχητικό κύμα συναντά ένα αντικείμενο, αυτό αντανακλάται πίσω στον δέκτη. Μετρώντας τον χρόνο ηχούς και χρησιμοποιώντας την ταχύτητα του ήχου, το Arduino μπορεί να υπολογίσει την απόσταση μεταξύ του αισθητήρα και του αντικειμένου.

Μονάδα αισθητήρα υπερήχων HC-SR04 για μέτρηση απόστασης Arduino

HC-SR04 Βασικές τεχνικές παράμετροι

Παράμετρος Αξία
Τυπική τάση λειτουργίας 5V DC
Στατικό ρεύμα λειτουργίας Λιγότερο από 5 mA σε ορισμένες εκδόσεις μονάδων
Συχνότητα λειτουργίας Υπερηχητικό κύμα 40 kHz
Απόσταση ανίχνευσης Κοινή περιοχή: 2 cm έως 400 cm. ορισμένες εκδόσεις προσαρμοσμένες στο κέρδος ενδέχεται να υποστηρίζουν μεγαλύτερη εμβέλεια.
Γωνία ανίχνευσης Συνήθως μέσα σε 15 βαθμούς? ορισμένες εκδόσεις με υψηλότερο κέρδος μπορεί να φτάσουν περίπου τους 30 βαθμούς.
Ακρίβεια Έως περίπου 0,3 cm υπό κατάλληλες συνθήκες δοκιμής
Τυφλή ζώνη Ελάχιστη απόσταση μέτρησης περίπου 2 cm

HC-SR04 Pin Περιγραφή

Η μονάδα υπερήχων HC-SR04 έχει τέσσερις ακίδες: VCC, TRIG, ECHO και GND. Το Arduino στέλνει έναν σύντομο παλμό ενεργοποίησης στον ακροδέκτη TRIG και, στη συνέχεια, διαβάζει τον παλμό επιστροφής από τον ακροδέκτη ECHO.

HC-SR04 Pin Σύνδεση Arduino Λειτουργία
VCC 5V Τροφοδοτικό για τη μονάδα υπερήχων.
ΚΟΜΨΟΣ Ψηφιακή ακίδα 9 Είσοδος ενεργοποίησης. Το Arduino εφαρμόζει έναν παλμό 10 us για να ξεκινήσει η εμβέλεια.
ΗΧΩ Ψηφιακή ακίδα 10 Έξοδος ηχούς. Το Arduino διαβάζει το πλάτος παλμού για να υπολογίσει την απόσταση.
GND GND Σύνδεση εδάφους.

HC-SR04 pinout αισθητήρα υπερήχων VCC TRIG ECHO GND

Αρχή λειτουργίας του αισθητήρα υπερήχων HC-SR04

Το HC-SR04 λειτουργεί με μέτρηση χρόνου πτήσης. Το Arduino στέλνει ένα σήμα ενεργοποίησης υψηλού επιπέδου τουλάχιστον 10 μικροδευτερόλεπτων στον ακροδέκτη TRIG. Στη συνέχεια, η μονάδα στέλνει αυτόματα οκτώ υπερηχητικούς παλμούς 40 kHz και περιμένει την ανακλώμενη ηχώ.

Όταν ανιχνευτεί το ανακλώμενο υπερηχητικό σήμα, η ακίδα ECHO εξάγει έναν παλμό υψηλού επιπέδου. Η διάρκεια αυτού του παλμού είναι ο χρόνος διαδρομής μετ' επιστροφής του υπερηχητικού κύματος.

Απόσταση = Χρόνος υψηλού επιπέδου ηχούς × Ταχύτητα ήχου / 2

Στον κώδικα Arduino, ο κοινός απλοποιημένος τύπος είναι:

Απόσταση σε cm = διάρκεια × 0,0343 / 2

Αρχή λειτουργίας της μονάδας υπερήχων HC-SR04 χρόνου πτήσης

Διάγραμμα χρονισμού μονάδας υπερήχων HC-SR04

Η διαδικασία χρονισμού είναι απλή: Το Arduino διατηρεί το TRIG χαμηλά για λίγο, στέλνει έναν υψηλό παλμό 10 us και μετά επαναφέρει το TRIG στο χαμηλό. Το HC-SR04 στέλνει μια ριπή υπερήχων και ρυθμίζει την ECHO ψηλά μέχρι να επιστρέψει το ανακλώμενο σήμα ή να τελειώσει το χρονικό διάστημα της μέτρησης.

Για να αποφύγετε ασταθείς μετρήσεις, αφήστε μια μικρή καθυστέρηση μεταξύ των μετρήσεων. Ένας κύκλος μέτρησης περίπου 60ms χρησιμοποιείται συνήθως, έτσι ώστε η προηγούμενη υπερηχητική ηχώ να έχει χρόνο να εξαφανιστεί πριν από την επόμενη σκανδάλη.

Βασικά στοιχεία προγραμματισμού Arduino: Λειτουργία pulseIn

Η συνάρτηση Arduino pulseIn() χρησιμοποιείται για τη μέτρηση του χρόνου που μια ψηφιακή ακίδα παραμένει ΥΨΗΛΗ ή ΧΑΜΗΛΗ. Για το HC-SR04, το Arduino χρησιμοποιεί pulseIn(echoPin, HIGH) για να διαβάσει το πλάτος παλμού υψηλού επιπέδου από τον ακροδέκτη ECHO.

Σύνταξη Εννοια
pulseIn(καρφίτσα, τιμή) Διαβάζει τη διάρκεια ενός ΥΨΗΛΟΥ ή ΧΑΜΗΛΟΥ παλμού.
pulseIn (pin, τιμή, timeout) Διαβάζει τον παλμό με τιμή χρονικού ορίου σε μικροδευτερόλεπτα.

Συνιστάται η χρήση χρονικού ορίου. Εάν δεν επιστραφεί ηχώ, η συνάρτηση μπορεί να σταματήσει την αναμονή και να επιστρέψει 0 αντί να μπλοκάρει το πρόγραμμα για πολύ μεγάλο χρονικό διάστημα.

Πλακέτα Arduino που χρησιμοποιείται με αισθητήρα απόστασης υπερήχων HC-SR04

Πώς να συνδέσετε τον αισθητήρα υπερήχων HC-SR04 στο Arduino

Η καλωδίωση είναι απλή. Συνδέστε το VCC σε 5V, το GND στο GND, το TRIG σε έναν ακροδέκτη ψηφιακής εξόδου Arduino και το ECHO σε έναν ακροδέκτη ψηφιακής εισόδου Arduino. Το παρακάτω παράδειγμα χρησιμοποιεί Arduino Uno, TRIG στον ακροδέκτη 9 και ECHO στον ακροδέκτη 10.

Διάγραμμα καλωδίωσης breadboard Arduino Uno για αισθητήρα υπερήχων HC-SR04

Αισθητήρας υπερήχων HC-SR04 Κωδικός Arduino

Το ακόλουθο τυπικό πρόγραμμα Arduino στέλνει έναν παλμό σκανδάλης 10 us, διαβάζει το πλάτος παλμού ECHO, υπολογίζει την απόσταση σε εκατοστά και εκτυπώνει το αποτέλεσμα στη Σειριακή οθόνη.

const int trigPin = 9; const int echoPin = 10; μεγάλη διάρκεια? απόσταση επίπλευσηςCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite (trigPin, LOW);   duration = pulseIn(echoPin, HIGH, 30000);   if (διάρκεια == 0) { Serial.println('Εκτός εύρους');   } else { distanceCm = διάρκεια * 0,0343 / 2;     Serial.print('Απόσταση: ');     Serial.print(distanceCm);     Serial.println(' cm');   } καθυστέρηση(60); }

Εάν δείτε τιμές απόστασης στη σειριακή οθόνη, ο αισθητήρας υπερήχων HC-SR04 και η καλωδίωση Arduino λειτουργούν σωστά. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε τα δεδομένα απόστασης για ανίχνευση εμποδίων, έλεγχο κίνησης ρομπότ, αυτόματες πόρτες, υπενθυμίσεις στάθμευσης ή έργα στάθμης υγρού.

Πρόγραμμα εμβέλειας αισθητήρα υπερήχων Arduino HC-SR04

Πώς να βελτιώσετε την ακρίβεια μέτρησης HC-SR04

  • Διατηρήστε το μετρούμενο αντικείμενο εντός του συνιστώμενου εύρους απόστασης και έξω από την τυφλή ζώνη των 2 cm.

  • Χρησιμοποιήστε μια επίπεδη και συμπαγή επιφάνεια στόχο για καλύτερη αντανάκλαση υπερήχων.

  • Αποφύγετε τη μέτρηση μαλακών, υπό γωνία, πορωδών ή ηχοαπορροφητικών υλικών.

  • Χρησιμοποιήστε ένα σταθερό τροφοδοτικό 5 V και διατηρήστε την καλωδίωση σύντομη και ασφαλή.

  • Προσθέστε ένα χρονικό όριο στο pulseIn() για να αποτρέψετε το παρατεταμένο μπλοκάρισμα όταν δεν επιστρέφει ηχώ.

  • Μέσος όρος ή διάμεσος-φιλτράρετε πολλές μετρήσεις για μείωση του θορύβου.

  • Για μεγαλύτερη ακρίβεια, αντισταθμίστε τη θερμοκρασία επειδή η ταχύτητα του ήχου αλλάζει με τη θερμοκρασία του αέρα.

Κοινές εφαρμογές των έργων αισθητήρων υπερήχων Arduino

Εφαρμογή Πώς χρησιμοποιείται το HC-SR04
Ρομπότ αποφυγής εμποδίων Ανιχνεύει κοντινά αντικείμενα και βοηθά το ρομπότ να αλλάξει κατεύθυνση.
Αισθητήρας απόστασης στάθμευσης Μετρά την απόσταση μεταξύ του οχήματος και ενός εμποδίου.
Ανίχνευση στάθμης υγρού Μετρά την απόσταση από τον αισθητήρα στην επιφάνεια του υγρού χωρίς επαφή.
Έξυπνος κάδος απορριμμάτων Ανιχνεύει ένα κοντινό χέρι ή αντικείμενο και ενεργοποιεί το αυτόματο άνοιγμα του καπακιού.

Περίληψη

Για να χρησιμοποιήσετε έναν αισθητήρα υπερήχων HC-SR04 με το Arduino, συνδέστε το VCC σε 5V, το GND στο GND, το TRIG σε μια ψηφιακή ακίδα εξόδου και το ECHO σε μια ψηφιακή ακίδα εισόδου. Στείλτε έναν παλμό σκανδάλης 10 us, διαβάστε τη διάρκεια της ηχούς με το pulseIn() και υπολογίστε την απόσταση με τον τύπο χρόνου πτήσης.

Το HC-SR04 είναι φθηνό, εύκολο στη χρήση και κατάλληλο για πολλά έργα μέτρησης απόστασης Arduino. Για καλύτερα αποτελέσματα, δώστε προσοχή στην επιφάνεια στόχο, τη γωνία μέτρησης, την τυφλή ζώνη, τη σταθερή ισχύ, το χειρισμό χρονικού ορίου και τα εφέ θερμοκρασίας.

Συχνές ερωτήσεις σχετικά με τον αισθητήρα υπερήχων HC-SR04 Arduino

Πώς λειτουργεί ο αισθητήρας υπερήχων HC-SR04 με το Arduino;

Το Arduino στέλνει έναν παλμό 10us στον ακροδέκτη TRIG. Το HC-SR04 εκπέμπει οκτώ υπερηχητικούς παλμούς 40 kHz και θέτει τον ακροδέκτη ECHO ψηλά μέχρι να επιστρέψει ο ανακλώμενος ήχος. Το Arduino μετρά αυτόν τον χρόνο παλμού και υπολογίζει την απόσταση.

Ποια είναι η φόρμουλα απόστασης για έργα HC-SR04 Arduino;

Ο τύπος είναι απόσταση = διάρκεια × ταχύτητα ήχου / 2. Σε εκατοστά, ένας κοινός τύπος Arduino είναι απόστασηCm = διάρκεια × 0,0343 / 2, όπου η διάρκεια μετριέται σε μικροδευτερόλεπτα.

Γιατί διαιρούμε το αποτέλεσμα του αισθητήρα υπερήχων με το 2;

Ο μετρούμενος χρόνος ηχούς είναι ο χρόνος μετ' επιστροφής από τον αισθητήρα στο αντικείμενο και πίσω στον αισθητήρα. Η διαίρεση με το 2 δίνει τη μονόδρομη απόσταση μεταξύ του αισθητήρα και του αντικειμένου.

Ποιες ακίδες Arduino πρέπει να χρησιμοποιήσω για TRIG και ECHO;

Μπορείτε να χρησιμοποιήσετε τις περισσότερες ψηφιακές ακίδες Arduino. Σε πολλά παραδείγματα, το TRIG συνδέεται στον ψηφιακό ακροδέκτη 9 και το ECHO στον ψηφιακό ακροδέκτη 10. Ο κωδικός πρέπει να ταιριάζει με τους ακροδέκτες που χρησιμοποιούνται στην καλωδίωση.

Γιατί ο αισθητήρας υπερήχων HC-SR04 μου επιστρέφει μηδενικές ή τυχαίες τιμές;

Οι συνήθεις αιτίες περιλαμβάνουν χαλαρή καλωδίωση, ασταθή ισχύ 5 V, λανθασμένους αριθμούς ακίδων TRIG ή ECHO, έλλειψη αντικειμένου εντός εμβέλειας, γωνιακές επιφάνειες στόχου, μαλακά υλικά, μπλοκαρισμένες κεφαλές αισθητήρων ή κανένα χρονικό όριο στη λειτουργία pulseIn().

Ποια είναι η τυφλή ζώνη του αισθητήρα υπερήχων HC-SR04;

Η τυφλή ζώνη είναι η ελάχιστη απόσταση όπου η μονάδα δεν μπορεί να μετρήσει αξιόπιστα. Για το HC-SR04, η τυφλή ζώνη είναι συνήθως περίπου 2 cm. Αντικείμενα πιο κοντά από αυτό μπορεί να παράγουν ασταθείς μετρήσεις.

Μπορεί το HC-SR04 να μετρήσει τη στάθμη του νερού με το Arduino;

Ναι, το HC-SR04 μπορεί να χρησιμοποιηθεί για απλά έργα στάθμης νερού χωρίς επαφή, εάν ο αισθητήρας προστατεύεται από την υγρασία και είναι τοποθετημένος πάνω από την επιφάνεια του υγρού. Για υγρές, εξωτερικές ή βιομηχανικές δεξαμενές, συνιστάται αδιάβροχος αισθητήρας υπερήχων.

Πώς μπορώ να κάνω πιο σταθερές τις μετρήσεις του αισθητήρα υπερήχων Arduino;

Χρησιμοποιήστε σταθερό τροφοδοτικό, διατηρήστε τον αισθητήρα κάθετα στον στόχο, αποφύγετε τις μαλακές ή γωνιασμένες επιφάνειες, προσθέστε το χρονικό όριο pulseIn, πραγματοποιήστε πολλαπλές μετρήσεις, χρησιμοποιήστε μέσο φιλτράρισμα και αφήστε περίπου 60 ms μεταξύ των μετρήσεων.

Πίνακας Περιεχομένων