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

Arduino - Piezo Three Button Piano: 4 Βήματα
Arduino - Piezo Three Button Piano: 4 Βήματα

Βίντεο: Arduino - Piezo Three Button Piano: 4 Βήματα

Βίντεο: Arduino - Piezo Three Button Piano: 4 Βήματα
Βίντεο: Создание автомата с помощью Micro:bit 2024, Ιούνιος
Anonim
Image
Image

Το πιάνο με τρία κουμπιά είναι ένα έργο για αρχάριους με κάποια εμπειρία χρήσης του Arduino.

Προσπάθησα ακούσια να το δημιουργήσω ενώ έπαιζα για πρώτη φορά με πιεζοηχητικό βομβητή. SOταν τόσο δυνατά! Προσπαθώντας να καταλάβω διάφορες μεθόδους για να γίνει ο βομβητής πιο αθόρυβος και δοκιμάζοντας διαφορετικές συχνότητες χρησιμοποιώντας τη λειτουργία τόνου () και noTone (), συνειδητοποίησα ότι μπορεί να είναι διασκεδαστικό να δοκιμάσω και να συνδυάσω τον πιεζοηχητικό βομβητή μαζί με τα άλλα αγαπημένα μου στοιχεία του Arduino μου. κιτ: κουμπιά και το ποτενσιόμετρο.

Τα υλικά που απαιτούνται περιλαμβάνουν:

  • 1 Arduino
  • 1 Breadboard
  • 1 καλώδιο USB
  • Jumper Wires (διάφορα χρώματα)
  • 1 330 Kilo-ohm Resistor
  • 1 Piezo Buzzer
  • 3 κουμπιά
  • 1 Ποτενσιόμετρο

Βήμα 1: Piezo Buzzer

Piezo Buzzer
Piezo Buzzer

Για να ξεκινήσετε, στήστε το πιεζό στη σανίδα του Arduino. Η μία πλευρά του (η πιο κοντή πλευρά του ποδιού) πρέπει να τρέξει στο έδαφος. Η άλλη πλευρά (η μεγαλύτερη πλευρά του ποδιού) πρέπει να συνδεθεί με μια ψηφιακή ακίδα εισόδου. Επέλεξα να το συνδέσω με το 8.

Βήμα 2: Πιέστε τα κουμπιά

Κουμπιά ώθησης
Κουμπιά ώθησης
Κουμπιά ώθησης
Κουμπιά ώθησης

Στη συνέχεια, ήρθε η ώρα να ρυθμίσετε τα κουμπιά. Όπως και το πιεζό, τα κουμπιά πρέπει να συνδεθούν στη γείωση και σε έναν ψηφιακό πείρο εισόδου.

Βήμα 3: Ποτενσιόμετρο

Ποτενσιόμετρο
Ποτενσιόμετρο
Ποτενσιόμετρο
Ποτενσιόμετρο

Το τελευταίο βήμα στη φυσική κατασκευή είναι το ποτενσιόμετρο. Τα ποτενσιόμετρα έρχονται σε μερικές διαφορετικές μορφές. Θα χρησιμοποιήσουμε το ποτενσιόμετρο ως διαχωριστή τάσης, οπότε πρέπει να συνδεθούν και τα τρία σκέλη του.

Δεξί πόδι: Αρνητική μπάρα (έδαφος)

Μεσαίο πόδι: Αναλογική καρφίτσα 0

Αριστερό πόδι: Θετική μπάρα

Βήμα 4: Κωδικός

Κατά την σύνταξη κώδικα για αυτό το έργο, αναφέρθηκα σε πληροφορίες για μερικούς συγκεκριμένους τύπους λειτουργιών:

τόνος()

noTone () (Δεν κατέληξα να το χρησιμοποιήσω. Αντ 'αυτού, έθεσα τη συχνότητα στο "0".)

χάρτης()

Μια άλλη υπέροχη αναφορά για τους πρώτους χρήστες των Piezo Buzzers μπορείτε να βρείτε εδώ. Παρόλο που η ιδέα της αλλαγής του ήχου του πιεζοηλεκτρικού βομβητή φαίνεται απλή, μπορεί να είναι κάπως συντριπτική στην αρχή!

Η λειτουργία τόνου () μπορεί να χωριστεί σε τρία μέρη:

  1. Καρφίτσα (η καρφίτσα στην οποία είναι συνδεδεμένος ο πιεζοηχητικός βομβητής)
  2. Συχνότητα (η συχνότητα του ήχου σε hertz)
  3. Διάρκεια (η διάρκεια του ήχου που δίνεται σε χιλιοστά του δευτερολέπτου)

Βασικά, μοιάζει με αυτό: τόνος (καρφίτσα, συχνότητα, διάρκεια). Το τρίτο συστατικό (διάρκεια) είναι προαιρετικό, ενώ τα άλλα δύο είναι απαραίτητα για τη λειτουργία του βομβητή. Το συστατικό "συχνότητα" της λειτουργίας τόνου είναι αυτό που μπορεί να θεωρηθεί ως "ο ήχος" που παράγεται από τον βομβητή.

Θα παρατηρήσετε επίσης ότι ο κώδικας διαθέτει δύο άλλα κομμάτια κώδικα. Υπάρχουν ορισμένες δηλώσεις εάν/αλλιώς για να πείτε στο Arduino τι πρέπει να κάνει εάν πατηθούν διαφορετικά κουμπιά καθώς και να το ρυθμίσετε με "συχνότητα = 0" σε περιπτώσεις που δεν πατάτε κανένα από τα κουμπιά. Μέσα στις προτάσεις if/else, οι συναρτήσεις map () χρησιμοποιούνται για τη χαρτογράφηση της κλίμακας του ποτενσιόμετρου σε ένα σύνολο συχνοτήτων. Αυτά μπορούν να αλλάξουν! Παίξτε με διαφορετικές τιμές συχνότητας για να δείτε τους διαφορετικούς ήχους που μπορείτε να πάρετε από το πιεζό.

Ελέγξτε τον κώδικα που χρησιμοποίησα για να δημιουργήσω το πιάνο με τρία κουμπιά εδώ ή ελέγξτε παρακάτω.

int piezoPin = 8; // Ρύθμιση pin συνδεδεμένη στο Piezo.

int sensorPin = 0; // Ρύθμιση πείρου συνδεδεμένου στον αισθητήρα (το ποτενσιόμετρο). int sensorValue = 0;

κουμπί int1 = 5; // Ρυθμίστε τις ακίδες εισόδου που είναι συνδεδεμένες στα κουμπιά.

κουμπί int2 = 4; κουμπί int3 = 3;

int συχνότητα = 0;

const int delayTime = 500; // Ορίστε μια σταθερά για τη μεταβλητή του χρόνου καθυστέρησης στη συνάρτηση τόνου ().

void setup () {

pinMode (κουμπί1, INPUT_PULLUP); pinMode (κουμπί2, INPUT_PULLUP); pinMode (κουμπί3, INPUT_PULLUP); }

void loop () {

sensorValue = analogRead (sensorPin); // Διαβάστε τον αισθητήρα. // Χαρτογραφήστε τις διαφορετικές τιμές του ποτενσιόμετρου σε ένα σύνολο συχνοτήτων για καθένα από τα τρία κουμπιά. if (digitalRead (button1) == LOW) {frequency = map (sensorValue, 0, 1023, 400, 499); } else if (digitalRead (button2) == LOW) {frequency = map (sensorValue, 0, 1023, 500, 599); } else if (digitalRead (button3) == LOW) {frequency = map (sensorValue, 0, 1023, 600, 699); } else {συχνότητα = 0; } τόνος (piezoPin, συχνότητα, delayTime); // Ρυθμίστε τις λειτουργίες τόνου () με μεταβλητές. }

Συνιστάται: