» Ηλεκτρονικά » Arduino »Πολύ ακριβής μετρητής υπερήχων

Πολύ ακριβής μετρητής υπερήχων



Αυτός ο υπερηχητικός εύρος ζώνης HC-SR04 έχει ενισχυθεί με τον αισθητήρα θερμοκρασίας LM35.

Από το σχολείο μπορείτε να θυμηθείτε ότι η ταχύτητα του ήχου εξαρτάται από την πυκνότητα του αέρα και η πυκνότητα του αέρα εξαρτάται από τη θερμοκρασία.
Θα υπολογίσουμε τη θερμοκρασία χρησιμοποιώντας αυτόν τον τύπο
temp2 = (temp / 1023,0) * 5,0 * 1000/10;

Όπου temp2 είναι η τελική τιμή θερμοκρασίας μετά τον τύπο,
Και όπου temp είναι η ακατέργαστη τιμή από τον αισθητήρα.

Τι χρειαζόμαστε:
  • Υπερηχητικός μετρητής HC-SR04
  • Arduino
  • Breadboard
  • Jumpers
  • Θερμοστάτης LM35 (αισθητήρας θερμοκρασίας)


Λάβετε υπόψη ότι το HC-SR04 διατίθεται σε δύο μορφές -
Εδώ έχω ένα καλό και σταθερά μέτρα απόσταση.
Και οι δύο μετρητές από 4 έως 400 cm.
Powered by 3.3 to 5 v


Καταρχήν, το χτυπάμε όλα σε ένα πινέλο.

Υπερηχητικός αισθητήρας:
  • GND - gnd
  • Echo - 3 ακίδες
  • Trig - 2 ακίδες
  • Vcc - 5v

Θερμίστορ LM35:
  • 1 - 5v
  • 2 - Α0
  • 3 - GND

Πολύ ακριβής μετρητής υπερήχων

Θα πρέπει να είναι έτσι:

Στη συνέχεια συμπληρώνουμε το σκίτσο.
Λήψη βιβλιοθήκης για αισθητήρα HC-SR04 -
καινούργιο_hc-sr04.zip [299.69 Kb] (λήψεις: 207)

Κατεβάστε το σκίτσο -
sketch_mar23f.zip [338 b] (λήψεις: 157)

#include  // συνδέστε τη βιβλιοθήκη για να εργαστείτε με τον υπερηχητικό αισθητήρα HC-SR04
(2,3); // δηλώνουν τις επαφές Trig και Echo
int temp = 0; // ακατέργαστη θερμοκρασία
float temp2 = 0; // έτοιμη τιμή θερμοκρασίας

void setup () {// εκτέλεση 1 φορά
  Serial.begin (9600); // ξεκινήστε την οθόνη θύρας
  pinMode (A0, είσοδος); // δηλώνει την επαφή A0 ως είσοδο
}}

void loop () {// επαναλαμβάνει έναν άπειρο αριθμό φορές
  temp = analogRead (A0); // διαβάσετε την τιμή της επαφής A0 και ορίστε τη μεταβλητή θερμοκρασία σε αυτήν
  temp2 = (temp / 1023,0) * 5,0 * 1000/10; // υπολογίζει την ακατέργαστη τιμή σύμφωνα με τον τύπο για να πάρει την τελική τιμή θερμοκρασίας
  Serial.println (hcsr.distance (temp2)); // γράψτε το έτοιμο εύρος στην οθόνη θύρας
  καθυστέρηση (1000). // καθυστέρηση 1 δευτερολέπτου
}}

Και εδώ είναι ένα σκίτσο για μια οθόνη LCD-
Κατεβάστε το σκίτσο -
sketch_mar23f-1.zip [861 b] (λήψεις: 139)


#include  // συνδέστε τη βιβλιοθήκη για να εργαστείτε με τον υπερηχητικό αισθητήρα HC-SR04
#include  // συνδέστε τη βιβλιοθήκη για να λειτουργήσει με την οθόνη στο δίαυλο I2C

LiquidCrystal_I2C lcd (0χ27, 16,2). // denote (διεύθυνση, στήλες, γραμμές)
(2,3); // δηλώνουν τις επαφές Trig και Echo

int temp = 0; // ακατέργαστη θερμοκρασία
float temp2 = 0; // έτοιμη τιμή θερμοκρασίας

void setup () {// εκτέλεση 1 φορά
  lcd.init (); // αρχικοποιήστε την οθόνη
  lcd.backlight (); // ενεργοποιήστε τον οπίσθιο φωτισμό της οθόνης
  pinMode (A0, είσοδος); // δηλώνει την επαφή A0 ως είσοδο
}}

void loop () {// επαναλαμβάνει έναν άπειρο αριθμό φορές
  temp = analogRead (A0); // διαβάσετε την τιμή της επαφής A0 και ορίστε τη μεταβλητή θερμοκρασία σε αυτήν
  temp2 = (temp / 1023,0) * 5,0 * 1000/10; // υπολογίζει την ακατέργαστη τιμή σύμφωνα με τον τύπο για να πάρει την τελική τιμή θερμοκρασίας
  lcd.setCursor (2, 0). // τοποθετήστε το δρομέα σε 2 στήλες και 0 σειρές
  lcd.print (temp2); // γράψτε την απόσταση
  lcd.setCursor (5,0); // τοποθετήστε το δρομέα στην 5η στήλη και στην 0η σειρά
  lcd.print ("cm"). // γράψτε cm
  καθυστέρηση (1000). // καθυστέρηση 1 δευτερολέπτου
}}


Γράψτε σχόλια και ερωτήσεις, θα απαντήσω σε όλα!
10
10
10

Προσθέστε ένα σχόλιο

    • χαμόγελοχαμογελάειxaxaΕντάξειdontknowyahoonea
      αφεντικόξυστάανόητοςναιναι-ναιεπιθετικήμυστικό
      Συγγνώμηχορόςdance2dance3συγχώρησηβοήθειαποτά
      σταματήστεφίλουςκαλόgoodgoodσφυρίχτρασυρρέουνγλώσσα
      καπνόςπαλαμάκιαcrayδηλώστεαπογοητευτικήdon-t_mentionκατεβάστε
      θερμότηταςirefulγέλιο1mdaσυνάντησηmoskingαρνητική
      not_iποπ κορντιμωρίαδιαβάστετρομάξτεφοβίζειαναζήτηση
      χλευάζωthank_youαυτόto_clueumnikοξείασυμφωνώ
      κακόbeeeblack_eyeblum3ρουζκαυχηθείτεπλήξη
      λογοκρισίαευχαρίστησηsecret2απειλήσουννίκηyusun_bespectacled
      shokrespektlolπροβλέπουνκαλωσορίστεkrutoyya_za
      ya_dobryiβοηθόςne_huliganne_othodifludαπαγόρευσηκοντά
13 σχόλια
Επισκέπτης Αλέξανδρος
Από πού προέρχεται αυτός ο τύπος:
temp2 = (temp / 1023,0) * 5,0 * 1000/10
Μπορείτε να μου πείτε λεπτομερέστερα, από πού προέρχονται αυτές οι αξίες;
Θα ήθελα επίσης να προσθέσω το σημείο 4. Μην χρησιμοποιείτε για μετρήσεις, μόνο για συσκευές αυτοματισμού!
Καταλαβαίνω (κρίνοντας από τις παραπάνω παραμέτρους) ότι οι οδηγίες για κάτι τέτοιο φαίνονται κάτι τέτοιο:
1. Πιάστε το HC-SR04 στο αριστερό σας χέρι και το Atoruchka ή το δείκτη στα δεξιά σας.
2. Εκτιμήστε την απόσταση με το μάτι και γράψτε την προς τα κάτω.
3. Βάλτε το HC-SR04 πίσω στο κουτί.
Εντάξει
Απόσπασμα: "Χαρακτηριστικά του υπερηχητικού μετρητή HC-SR04
Εύρος μέτρησης: από 2 cm έως 400 cm.
Ακρίβεια μέτρησης: ± 1 cm (σε μέγιστη απόσταση ± 3 cm).

Ερώτηση: Πώς "βαρύ" είναι η διόρθωση θερμοκρασίας στο συνολικό σφάλμα;
Πιστεύω ότι το σπιτικό προϊόν δεν εφαρμόστηκε, δεν υπάρχει φωτογραφία της τελικής συσκευής και της λειτουργίας της.
Θεωρώ αυτό το σπιτικό προϊόν ως "παιδικό", αλλά το άρθρο δεν δείχνει ή μασάει πώς να συνδέει την οθόνη. Για αρχάριους, οι χώροι μας είναι ασαφείς, αλλά οι έμπειροι δεν το χρειάζονται. Μασήστε και δείτε όλα τα σπιτικά.
Απόσπασμα: Αντόν Μάρτυαν
Στην πραγματικότητα, διαφέρουν όχι μόνο στην επιγραφή αλλά και στην ακρίβεια!

Σύμφωνα με την τεκμηρίωση ή ήρθατε σε αυτό;
Ο συγγραφέας
Στην πραγματικότητα, διαφέρουν όχι μόνο στην επιγραφή αλλά και στην ακρίβεια!
Αλλά αυτό δεν είναι αρκετό ??? αφεντικό Για παράδειγμα, δεν μου αρέσει επίσης όταν τα σημάδια γράφονται κάτω από μισό μέτρο !!! χαμογελάει dontknow
Και γιατί είναι ακόμα κακό, εκτός από το ύψος της σήμανσης;
Ο συγγραφέας
Το κακό είναι η επιγραφή HC-SR04 0,5 cm χαμηλότερη
Πολύ ακριβής
Και ποια είναι η ακρίβεια; Τι χρησιμοποιήθηκε ως αναφορά; Ποιο είναι το σφάλμα θερμοκρασίας;
Λάβετε υπόψη ότι το HC-SR04 διατίθεται σε δύο μορφές -
Έχω ένα καλό
Και ποιο νομίζετε ότι είναι κακό;
Θα σας πω από την δική μου εμπειρία ότι ένας υπερηχητικός εύρος ζώνης, όπως η "ανέπαφη ρουλέτα" είναι μια περιποίηση!
Το ένα βρίσκεται ξαφνικά ως περιττό ...
Και όχι λόγω της ανεπαρκούς ακρίβειας, αλλά επειδή μπορούν να μετρήσουν μόνο την απόσταση σε ένα αρκετά μεγάλο τοίχο από συμπαγές υλικό ... Αλλά στον οπίσθιο τοίχο μιας θέσης σε αυτό το τείχος - δεν υπάρχει τρόπος! Και δεν θα λειτουργήσει αν αυτός ο τοίχος είναι γεμάτος με έπιπλα και άλλα πράγματα και υπάρχει μόνο ένα μικρό "παράθυρο" απαλλαγμένο από ακαταστασία ... (Στην περίπτωση αυτή, είναι ευκολότερο να μην απελευθερωθεί ο τοίχος από όλα αυτά, αλλά απλώς να χρησιμοποιείτε κανονική ρουλέτα).
Και πάλι, δοκιμάστε να μετρήσετε την απόσταση από ένα στρόφαλο που οδηγείται στο έδαφος !!!

Και στο θερμοκήπιο;)))
Και στον τοίχο που καλύπτεται με ύφασμα;)))
Και στην πρόσοψη, ήδη επικολλημένη με ορυκτές μαλλί πλάκες, αλλά ακόμα χωρίς την τελική επίστρωση;))))
Και πριν από κάθε ένα από τα δέκα δοκάρια διατεταγμένα σε μια σειρά;
Και από τον τοίχο μέχρι το τέλος του σκάφους ήδη καρφωμένο στην οροφή για να κόψει το απαιτούμενο μήκος και να κλείσει αυτή την "τρύπα" ???

Κανένα από τα παραπάνω δεν θα λειτουργήσει για σας !!!

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

Εν ολίγοις, το έριξα στο ράφι πριν από μερικά χρόνια και, θυμόμαστε την παροιμία για το "φευγαλέα που πληρώνει δύο φορές", αποφάσισα ότι πρέπει να αγοράσω ένα λέιζερ ....

Σας συμβουλεύουμε να διαβάσετε:

Κάντε το για το smartphone ...