Αυτός ο υπερηχητικός εύρος ζώνης 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 -
Κατεβάστε το σκίτσο -
#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-
Κατεβάστε το σκίτσο -
#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 δευτερολέπτου
}}
Γράψτε σχόλια και ερωτήσεις, θα απαντήσω σε όλα!