- Απαιτείται υλικό
- Λειτουργία αισθητήρα ήχου
- Διάγραμμα κυκλώματος αισθητήρα ήχου
- Διάγραμμα κυκλώματος μουσικής νερού
- Προγραμματισμός του Arduino Nano για Dancing Fountain
Υπάρχουν πολλές πηγές νερού που ψεκάζουν άνευ όρων νερό με μερικά ενδιαφέροντα εφέ φωτισμού. Γύρισα λοιπόν για το σχεδιασμό ενός καινοτόμου σιντριβανιού που μπορεί να ανταποκριθεί σε εξωτερική μουσική και να πασπαλίζω νερό ανάλογα με τους ρυθμούς της μουσικής. Δεν ακούγεται ενδιαφέρον;
Η βασική ιδέα αυτού του Arduino Water Fountain είναι να λάβετε είσοδο από οποιαδήποτε εξωτερική πηγή ήχου όπως κινητό, iPod, PC κ.λπ., να δοκιμάσετε τον ήχο και να τον σπάσετε σε διαφορετικά εύρη τάσης και, στη συνέχεια, χρησιμοποιήστε την έξοδο για να ενεργοποιήσετε διάφορα ρελέ. Χρησιμοποιήσαμε αρχικά μια μονάδα αισθητήρα ήχου με βάση το μικρόφωνο συμπυκνωτή για να εκτελέσουμε την πηγή ήχου για να χωρίσουμε τους ήχους σε διαφορετικά εύρη τάσης. Στη συνέχεια, η τάση θα τροφοδοτηθεί στο op-amp για να συγκρίνει το επίπεδο ήχου με ένα συγκεκριμένο όριο. Το υψηλότερο εύρος τάσης αντιστοιχεί σε ένα διακόπτη ρελέ ΟΝ που περιλαμβάνει ένα μουσικό σιντριβάνι που λειτουργεί με τους ρυθμούς και τους ρυθμούς του τραγουδιού. Εδώ χτίζουμε αυτό το Μουσικό Σιντριβάνι χρησιμοποιώντας το Arduino και τον αισθητήρα ήχου.
Απαιτείται υλικό
- Arduino Nano
- Μονάδα αισθητήρα ήχου
- Μονάδα ρελέ 12V
- Αντλία DC
- LED
- Σύνδεση καλωδίων
- Vero board ή Breadboard
Λειτουργία αισθητήρα ήχου
Η μονάδα αισθητήρα ήχου είναι μια απλή ηλεκτρονική πλακέτα με βάση το μικρόφωνο electret που χρησιμοποιείται για την ανίχνευση εξωτερικού ήχου από το περιβάλλον. Βασίζεται στον ενισχυτή ισχύος LM393 και ένα μικρόφωνο electret, μπορεί να χρησιμοποιηθεί για να ανιχνεύσει εάν υπάρχει ήχος πέρα από το καθορισμένο όριο. Η έξοδος της μονάδας είναι ένα ψηφιακό σήμα που δείχνει ότι ο ήχος είναι μεγαλύτερος ή μικρότερος από το όριο.
Το ποτενσιόμετρο μπορεί να χρησιμοποιηθεί για τη ρύθμιση της ευαισθησίας της μονάδας αισθητήρα. Η έξοδος της μονάδας είναι ΥΨΗΛΗ / ΧΑΜΗΛΗ όταν η πηγή ήχου είναι χαμηλότερη / υψηλότερη από το όριο που έχει οριστεί από το ποτενσιόμετρο. Η ίδια μονάδα αισθητήρα ήχου μπορεί επίσης να χρησιμοποιηθεί για τη μέτρηση της στάθμης του ήχου σε ντεσιμπέλ.
Διάγραμμα κυκλώματος αισθητήρα ήχου
Όπως γνωρίζουμε ότι σε μια μονάδα αισθητήρα ήχου, η βασική συσκευή εισόδου είναι το μικρόφωνο που μετατρέπει τα ηχητικά σήματα σε ηλεκτρικά σήματα. Αλλά καθώς η έξοδος ηλεκτρικού σήματος του αισθητήρα ήχου είναι τόσο μικρή σε μέγεθος που είναι πολύ δύσκολο να αναλυθεί, οπότε έχουμε χρησιμοποιήσει ένα κύκλωμα ενισχυτή τρανζίστορ NPN που θα το ενισχύσει και θα τροφοδοτήσει το σήμα εξόδου στη μη αναστρέψιμη είσοδο του Op- αμπέραζ. Εδώ το LM393 OPAMP χρησιμοποιείται ως συγκριτής που συγκρίνει το ηλεκτρικό σήμα από το μικρόφωνο και το σήμα αναφοράς που προέρχεται από το κύκλωμα διαχωριστή τάσης. Εάν το σήμα εισόδου είναι μεγαλύτερο από το σήμα αναφοράς, τότε η έξοδος του OPAMP θα είναι υψηλή και το αντίστροφο.
Μπορείτε να ακολουθήσετε τις ενότητες κυκλωμάτων Op-amp για να μάθετε περισσότερα σχετικά με τη λειτουργία της.
Διάγραμμα κυκλώματος μουσικής νερού
Όπως φαίνεται στο παραπάνω διάγραμμα κυκλώματος μουσικής κρήνης, ο αισθητήρας ήχου τροφοδοτείται με τροφοδοσία 3.3V του Arduino Nano και ο πείρος εξόδου της μονάδας αισθητήρα ήχου συνδέεται με τον αναλογικό ακροδέκτη εισόδου (A6) του Nano. Μπορείτε να χρησιμοποιήσετε οποιονδήποτε αναλογικό πείρο, αλλά φροντίστε να τον αλλάξετε στο πρόγραμμα. Η μονάδα ρελέ και η αντλία DC τροφοδοτούνται από εξωτερική τροφοδοσία 12VDC όπως φαίνεται στην εικόνα. Το σήμα εισόδου της μονάδας ρελέ συνδέεται με τον ψηφιακό ακροδέκτη εξόδου D10 του Nano. Για εφέ φωτισμού επέλεξα δύο διαφορετικά χρώματα LED και τα σύνδεσα σε δύο ψηφιακές ακίδες εξόδου (D12, D11) του Nano.
Εδώ η αντλία συνδέεται με τέτοιο τρόπο ώστε όταν δίνεται ένας υψηλός παλμός στην είσοδο της μονάδας ρελέ, η επαφή COM του ρελέ συνδέεται με την επαφή ΝΟ και το ρεύμα παίρνει μια διαδρομή κλειστού κυκλώματος για να ρέει πέρα από την αντλία προς ενεργοποιήστε τη ροή του νερού. Διαφορετικά, η αντλία θα παραμείνει απενεργοποιημένη. Οι παλμοί HIGH / LOW παράγονται από το Arduino Nano ανάλογα με την είσοδο του ήχου.
Μετά τη συγκόλληση του πλήρους κυκλώματος στο αρωματοποιείο, θα μοιάζει παρακάτω:
Εδώ χρησιμοποιήσαμε ένα πλαστικό κουτί ως δοχείο κρήνης και μίνι αντλία 5v για να λειτουργήσουμε ως σιντριβάνι, χρησιμοποιήσαμε αυτήν την αντλία στο παρελθόν σε ρομπότ πυρόσβεσης:
Προγραμματισμός του Arduino Nano για Dancing Fountain
Το πλήρες πρόγραμμα αυτού του έργου πηγής νερού Arduino δίνεται στο κάτω μέρος της σελίδας. Αλλά εδώ το εξηγώ απλώς για μέρη για καλύτερη κατανόηση:
Το πρώτο μέρος του προγράμματος είναι να δηλώσουμε τις απαραίτητες μεταβλητές για την εκχώρηση αριθμών pin που πρόκειται να χρησιμοποιήσουμε στα επόμενα μπλοκ του προγράμματος. Στη συνέχεια, ορίστε ένα σταθερό REF με μια τιμή που είναι η τιμή αναφοράς για τη μονάδα αισθητήρα ήχου. Η εκχωρημένη τιμή 700 είναι η ισοδύναμη τιμή byte του ηλεκτρικού σήματος εξόδου του αισθητήρα ήχου.
αισθητήρας int = A6; int redled = 12; int greenled = 11; int αντλία = 10; # καθορισμός REF 700
Στη λειτουργία κενής ρύθμισης χρησιμοποιήσαμε τη λειτουργία pinMode για να αντιστοιχίσουμε την κατεύθυνση δεδομένων INPUT / OUTPUT των ακίδων. Εδώ ο αισθητήρας λαμβάνεται ως INPUT και όλες οι άλλες συσκευές χρησιμοποιούνται ως OUTPUT.
άκυρη ρύθμιση () { pinMode (αισθητήρας, INPUT); pinMode (redled, OUTPUT); pinMode (πράσινο, OUTPUT); pinMode (αντλία, ΕΞΟΔΟΣ); }
Μέσα στον άπειρο βρόχο , καλείται η λειτουργία analogRead που διαβάζει την αναλογική τιμή που εισάγεται από τον πείρο του αισθητήρα και την αποθηκεύει σε μια μεταβλητή τιμή αισθητήρα .
int sensor_value = analogRead (αισθητήρας);
Στο τελικό μέρος χρησιμοποιείται ένας βρόχος if-else για τη σύγκριση του αναλογικού σήματος εισόδου με την τιμή αναφοράς. Εάν είναι μεγαλύτερη από την αναφορά, τότε σε όλους τους ακροδέκτες εξόδου δίνεται ΥΨΗΛΗ έξοδος, έτσι ώστε όλες οι λυχνίες LED και η αντλία να είναι ενεργοποιημένες, διαφορετικά όλα παραμένουν απενεργοποιημένα Εδώ έχουμε δώσει επίσης καθυστέρηση 70 χιλιοστών του δευτερολέπτου για να διαχωρίσουμε τον χρόνο ON / OFF του ρελέ.
if (sensor_value> REF) { digitalWrite (πράσινος, ΥΨΗΛΟΣ); digitalWrite (redled, HIGH); digitalWrite (αντλία, ΥΨΗΛΗ); καθυστέρηση (70) } αλλιώς { digitalWrite (greenled, LOW); digitalWrite (redled, LOW); digitalWrite (αντλία, ΧΑΜΗΛΗ); καθυστέρηση (70) }
Έτσι λειτουργεί αυτό το ελεγχόμενο από το Arduino Water Fountain, δίνεται παρακάτω πλήρης κωδικός με ένα βίντεο εργασίας.