Καλησπέρα εραστές σπιτικό! Σήμερα θα συγκεντρώσουμε ένα απλό εύρος ζώνης Arduino Pro Mini. Η συσκευή μπορεί να μετρήσει απόσταση από 2 έως 400 cm. Το σφάλμα αυτής της συσκευής είναι μόλις +/- 1-5 cm, ανάλογα με τη μετρούμενη απόσταση.
Εργαλεία και υλικά
-Arduino Pro mini
Αισθητήρα HC-04
- Δείκτης στο tm1637
-Wire (έχω - MGTF 0,12)
-Προγραμματιστής
-Πλαστικό περίβλημα
-Li-on μπαταρία
-Μικρός διακόπτης
- Πίνακας φόρτισης στο TP4056
Superglue
-Απορροφητικό σίδερο
-Διακόπτης
Rosin
Τρυπάνια, τρυπάνια κ.λπ.
Βήμα πρώτο: Σχήμα:
Σύμφωνα με το σχέδιο, όλα είναι απλά, χωρίς προσθήκες.
Βήμα δεύτερο: Προετοιμασία περίπτωσης:
Αρχικά δοκιμάζουμε τον αισθητήρα και τρυπάμε δύο τρύπες για 15 mm.
Στη συνέχεια, δημιουργήστε μια τρύπα για ένα βύσμα micro-usb με τρυπάνι 3-3,5 mm.
Επιλέγουμε ένα τρυπάνι για τη διάμετρο του διακόπτη και τρυπάνι.
Στο καπάκι κάνουμε ένα "παράθυρο" για τον δείκτη επτά τμημάτων (στη φωτογραφία χωρίς επεξεργασία) και τελειώνουμε όλες τις παρατυπίες με ένα αρχείο.
Βήμα τρίτο: Firmware:
Στο σκίτσο, επισημαίνονται οι μεταβλητές που μπορούν να προσαρμοστούν για τον εαυτό σας. Όλος ο κώδικας σχολιάζεται.
#include // βιβλιοθήκες για εργασία
#include
// ------------- Για να ρυθμίσετε τις παραμέτρους --------------------------------- --------------------------------
bool Long = 0; // 0 - μετράτε το μήκος από τον αισθητήρα
// 1 - μετρήστε το μήκος από το τοίχωμα του περιβλήματος, το οποίο είναι απέναντι από τον αισθητήρα
unsigned int corpus = 10; // απόσταση από τον αισθητήρα στον αντίθετο τοίχο (σε εκατοστά)
#define CLK 2 // pin to connect
#define DIO 3
#define TRIG 4
#define ECHO 5
// ------------------------------------------------ ----------------------------------------------
unsigned int impulse = 0; // μεταβλητές για τον υπολογισμό
unsigned int sm = 0;
GyverTM1637 disp (CLK, DIO).
άκυρη ρύθμιση () {
pinMode (TRIG, OUTPUT); // να οριστεί ως έξοδος
pinMode (ECHO, είσοδος); // να οριστεί ως είσοδος
διαφωνία (7); // φωτεινότητα 0-7
disp.point (0); // απενεργοποιήστε το παχύ έντερο
disp.clear (); // καθαρίστε την ένδειξη
}}
void loop () {
ψηφιακή καταγραφή (TRIG, HIGH); // τροφοδοτήστε 5 βολτ
καθυστέρησηMicroseconds (10); // καθυστέρηση 10 μικροδευτερολέπτων
ψηφιακή καταγραφή (TRIG, LOW); // εξυπηρετήστε 0
impulse = παλμόςIn (ECHO, ΥΨΗΛΟ); // μετρά το μήκος παλμού
sm = παλμός / 58; // μετατρέψτε σε εκατοστά
αν (Long == 1) {// ελέγξτε τις ρυθμίσεις
sm = sm + corpus;
}}
αν (sm <= 2) {// μηδενικές τιμές ψευδούς τιμής
sm = 1;
}}
αν (sm> = 405) {
sm = 1;
}}
int ακέραιος = sm / 10;
int δεκαδικός = sm% 10;
δεκαδικό = δεκαδικό * 10;
disp.displayClock (ακέραιο, δεκαδικό); // output to indicator
καθυστέρηση (300); // καθυστέρηση 0,3 sec. μεταξύ της τιμής εξόδου
}}
Στη συνέχεια, συνδέστε τον προγραμματιστή και αναβοσβήνει το MK.
Βήμα 4: Συνέλευση:
Δεδομένου ότι η συσκευή λειτουργεί με μπαταρία, δεν χρειαζόμαστε επιπλέον χρέωση. Επομένως, στον πίνακα Arduino, συνδέουμε τα LED και το κουμπί επαναφοράς (για να μειώσουμε το μέγεθος).
Συνδέστε την μπαταρία στο σώμα με την πρόσθετη κόλλα. Κόλλησα την πλακέτα φόρτισης της μπαταρίας, εγκαταστήσαμε το διακόπτη και τα συγκολλήσαμε σύμφωνα με το σχέδιο.
Βάζουμε τον αισθητήρα στην θήκη και τα κολλάμε όλα σύμφωνα με το σχήμα. Πρώτα υπήρχε μια ιδέα να κολλήσουμε το χαρτόνι στην ταινία διπλής όψης, αλλά στη συνέχεια αποφασίσαμε να την κολλήσουμε πάνω στο superglue.
Βήμα 5: Δοκιμή:
Σημείωση: Ο τέταρτος τομέας θα εμφανίζει πάντα το 0. Αυτό σημαίνει ότι το τελευταίο τμήμα δεν είναι άδειο. Αποδεικνύεται αν η ανάγνωση είναι 270, τότε αυτό σημαίνει ότι η απόσταση είναι 27 cm.
Βεβαίως, η μαρτυρία μπορεί να επαληθευτεί με τον κυβερνήτη.