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

Μηχανή θορύβου Arduino: 4 βήματα
Μηχανή θορύβου Arduino: 4 βήματα

Βίντεο: Μηχανή θορύβου Arduino: 4 βήματα

Βίντεο: Μηχανή θορύβου Arduino: 4 βήματα
Βίντεο: Arduino Μεταβολή της ταχύτητας περιστροφής του σερβοκινητήρα με ποτενσιόμετρο 2024, Ιούλιος
Anonim
Μηχανή θορύβου Arduino
Μηχανή θορύβου Arduino
Μηχανή θορύβου Arduino
Μηχανή θορύβου Arduino
Μηχανή θορύβου Arduino
Μηχανή θορύβου Arduino

Βρήκα ένα μικροσκοπικό ηχείο ενώ γκρέμιζα ένα παλιό Τ. Κ. για ανακύκλωση και σκέφτηκα να δω πώς ακούγεται χρησιμοποιώντας τη λειτουργία Arduino Tone (). Ξεκίνησα με ένα ποτενσιόμετρο 10Ω για να ελέγξω το βήμα και άρχισα να κάνω θόρυβο. Η συνάρτηση Tone () χρησιμοποιεί ένα απλό μοτίβο παλμού. Ενεργοποιεί και απενεργοποιεί τον ήχο σε διαφορετικές συχνότητες σε τετράγωνο κύμα. Είχα δύο άλλα ποτενσιόμετρα γύρω, οπότε τα πρόσθεσα και τα χρησιμοποίησα για να ελέγξω τη διάρκεια του τόνου. Ένα για τον έλεγχο του μήκους του ήχου και ένα για τον έλεγχο του σιωπηλού χώρου μεταξύ των τόνων. Βασικά χρησιμοποιεί άλλο τετράγωνο μοτίβο κυμάτων, αλλά σε πολύ χαμηλότερη συχνότητα. Μπορείτε να επιτύχετε μια καλή ποικιλία θορύβου με αυτό το κύκλωμα. Λειτουργεί καλά και με έναν πιεζοηχητικό ήχο, αλλά δεν έχει την απόκριση μπάσων ενός ηχείου.

Βήμα 1: Μέρη που θα χρειαστείτε

Arduino Uno

Καλώδια Breadboard και jumper

1 Μικρό ηχείο ή βομβητής Piezo

1 Διακόπτης κουμπιού

3 Ποτενσιόμετρα 10Ω

1 αντίσταση 22Ω

1 αντίσταση 10kΩ

Βήμα 2: Δημιουργήστε το κύκλωμα

Κατασκευάστε το κύκλωμα
Κατασκευάστε το κύκλωμα

Συνδέστε το breadboard στην καρφίτσα Arduino 5V και στο GND. Τοποθετήστε το διακόπτη Pushbutton στα δεξιά ή αριστερά του breadboard και συνδέστε το με 5V και γείωση χρησιμοποιώντας την αντίσταση 10kΩ. Συνδέστε ένα καλώδιο από το κύκλωμα διακοπτών στην ακίδα 2 στο Arduino σας.

Στην άλλη πλευρά του breadboard ρυθμίστε το κύκλωμα ηχείων/πιεζοσταθμού στα 5v και γειώστε χρησιμοποιώντας την αντίσταση 220Ω. Αυτή η αντίσταση ελέγχει το ρεύμα ελέγχοντας έτσι την ένταση. μπορείτε να δοκιμάσετε διαφορετικές αντιστάσεις εδώ για υψηλότερη ή χαμηλότερη ένταση.

Τοποθετήστε τα ποτενσιόμετρα σας στο κέντρο της σανίδας, δίνοντας αρκετό χώρο για να παίζετε με τα πόμολα. Κάθε κατσαρόλα θα πρέπει να συνδεθεί με 5V και γείωση και οι κεντρικοί ακροδέκτες σε κάθε έναν να συνδεθούν με αναλογικούς πείρους A0, A1 και A2

Βήμα 3: Ο κώδικας

Το ποτενσιόμετρο ή το δοχείο είναι μια μεταβλητή αντίσταση η οποία όταν συνδεθεί σε ένα Arduino θα επιστρέψει μια τιμή μεταξύ 0 και 1023. Θα χρησιμοποιήσουμε τη συνάρτηση map () για να αλλάξουμε αυτές τις τιμές ώστε να ταιριάζουν στις δικές μας ανάγκες. Η συνάρτηση map () παίρνει πέντε επιχειρήματα και στην περίπτωσή μας πρέπει να επανατοποθετήσουμε το εύρος μεταξύ 220 και 2200 για να παράγουμε έναν λογικό ακουστικό ήχο.

Η λειτουργία μοιάζει κάπως έτσι:

χάρτης (κατσαρόλα, 0, 1023, 220, 2200).

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

Noise_Machine.ino

/* Μηχανή θορύβου που χρησιμοποιεί τρία ποτενσιόμετρα συνδεδεμένα σε αναλογικές εισόδους
και πιεζό ή μικρό ηχείο. Ένα κουμπί ενεργοποιεί τον θόρυβο, τα ποτενσιόμετρα
ελέγξτε το βήμα χρησιμοποιώντας τη λειτουργία Arduino tone () και δύο καθυστερήσεις
τιμές που ελέγχουν το μήκος κάθε τόνου και το μήκος μεταξύ
κάθε τόνος. Τα ποτενσιόμετρα δίνουν αναλογικές τιμές που αλλάζουν
χρησιμοποιώντας τη λειτουργία χάρτη () σε μεγαλύτερες ή μικρότερες περιοχές που ταιριάζουν με εσάς
μουσικά γούστα.
Αυτός ο κωδικός είναι δημόσιος τομέας.
Ματ Τόμας 2019-04-05
*/
κουμπί περιορισμούPin = 2; // Κουμπί πίεσης 2
σταθερό ηχείο = 9; // Ηχείο ή πιεζό στην καρφίτσα 9
int buttonState = 0; // Μεταβλητές για το κουμπί
int potZero; // και ποτενσιόμετρα
int potOne;
int potTwo;
voidsetup () {
pinMode (9, OUTPUT); // Καρφίτσα εξόδου ηχείου/πίεζο
}
voidloop () {
buttonState = digitalRead (buttonPin); // Διαβάστε την κατάσταση του κουμπιού
potZero = analogRead (A0); // Μεταβλητές για την ανάγνωση των αναλογικών τιμών
potOne = analogRead (A1);
potTwo = analogRead (A2);
int htz = χάρτης (potZero, 0, 1023, 0, 8800); // Χαρτογραφήστε τις αναλογικές ενδείξεις
int high = χάρτης (potOne, 0, 1023, 0, 100); // νέα εύρη αριθμών και δημιουργία
int low = map (potTwo, 0, 1023, 0, 100); // νέες μεταβλητές
εάν (buttonState == Υ HIGHΗΛΗ) {// Εάν πατηθεί το κουμπί…
τόνος (ηχείο, htz)? // Ο ήχος ενεργοποιείται
καθυστέρηση (υψηλή)? // Μήκος τόνου
noTone (ηχείο); // Χωρίς ήχο
καθυστέρηση (χαμηλή)? // Χρόνος μέχρι τον επόμενο τόνο
} αλλο {
noTone (ηχείο); // Χωρίς τόνο αν αφήσετε το κουμπί
}
}

προβολή rawNoise_Machine.ino που φιλοξενείται με ❤ από το GitHub

Βήμα 4: Το τέλος

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

Συνιστάται: