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

Μουσικά φώτα νεράιδας: 6 βήματα (με εικόνες)
Μουσικά φώτα νεράιδας: 6 βήματα (με εικόνες)

Βίντεο: Μουσικά φώτα νεράιδας: 6 βήματα (με εικόνες)

Βίντεο: Μουσικά φώτα νεράιδας: 6 βήματα (με εικόνες)
Βίντεο: Manos - Παραλία (Official Video Clip) 2024, Ιούλιος
Anonim
Image
Image

Από τον IanCumming Ακολουθήστε περισσότερα από τον συγγραφέα:

Μεσοδιάμετρο Arduino
Μεσοδιάμετρο Arduino
Όχι μόνο ένα χρονόμετρο μιας ώρας
Όχι μόνο ένα χρονόμετρο μιας ώρας
Όχι μόνο ένα χρονόμετρο μιας ώρας
Όχι μόνο ένα χρονόμετρο μιας ώρας
Θερμόμετρο One Pixel
Θερμόμετρο One Pixel
Θερμόμετρο One Pixel
Θερμόμετρο One Pixel

Σχετικά: Μου αρέσει να φτιάχνω πράγματα από ρουκέτες έως ηλεκτρονικά. Περισσότερα για το IanCumming »

Καλώς ορίσατε όλοι

Είναι σχεδόν η εορταστική περίοδος και πολλά καταστήματα έχουν αρχίσει να βγάζουν τις γιορτινές τους διακοσμήσεις, σκέφτηκα ότι είναι η κατάλληλη στιγμή για να φτιάξουμε μερικά μουσικά φώτα!

Βήμα 1: Μέρη που χρησιμοποιούνται

Μέρη που χρησιμοποιούνται
Μέρη που χρησιμοποιούνται

Θα χρησιμοποιήσω τα εξής:

  • 12 LED
  • 12 Αντίσταση περιορισμού ρεύματος
  • 1 ULN 2803 Darlington Transistor Array
  • Μερικά καλώδια βραχυκυκλωτήρων
  • Ένα πίεζο ηχείο
  • Ένα Breadboard και
  • ένα Arduino
  • Για να φτιάξω τη σειρά των φώτων νεράιδων χρησιμοποίησα 5 καλώδια από ένα καλώδιο Ethernet

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

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LED βάσης, Μπορείτε να προσθέσετε πολλά παράλληλα led byte = {3, 4, 5, 6}; byte ηχείο = 11; byte patternLength = 64; // μοτίβο Μήκος byte τραγούδιLength = 51; const byte τραγούδι = {// Jingle Bells Data 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 3, 30, 1, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 29, 2, 27, 2, 27, 2, 29, 2, 27, 4, 32, 4, 29, 2, 29, 2, 29, 4, 29, 2, 29, 2, 29, 4, 29, 2, 32, 2, 25, 3, 27, 1, 29, 8, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 29, 2, 29, 2, 29, 1, 29, 1, 32, 2, 32, 2, 30, 2, 27, 2, 25, 8}; // Η δομή είναι Σημείωση αριθμού στη συνέχεια // Σημείωση μήκους στο πρότυπο const byte του 8ου = {// Δεδομένα μοτίβου 0b0001, 0b0010, 0b0100, 0b1000, // Bits corrispond to Leds in Array 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Αρχικά δηλώνω τις μεταβλητές μου, με τις πιο ενδιαφέρουσες να είναι το Song and Pattern.

  • Το τραγούδι αποθηκεύει τη μελωδία. σε αυτή την περίπτωση είναι Jingle bells.
  • Το μοτίβο αποθηκεύει θέσεις ενεργοποίησης και απενεργοποίησης στα δυαδικά ψηφία των τιμών του πίνακα.

Προσαρμοσμένες λειτουργίες

// FUNCTIONS int noteToHz (int note) {// Μετατροπή σημείωσης αριθ. έως Frequency float freq = 440 * (pow (1.059463094359, note-21)); // -21 σας δίνει τη σημείωση 1 στο C3 (νομίζω) return int (freq). // Τα αποτελέσματα είναι ακριβή σε 1hz} άδειες λυχνίες LED (byte PORT_X) {// Έλεγχος κατάστασης LED για (int q = 0; q

Οι δύο λειτουργίες που έχω θα κάνουν τα εξής:

  • Υπολογίστε τη συχνότητα για τη λειτουργία τόνου στον βρόχο
  • ανάβετε ή απενεργοποιείτε τα LED ανάλογα με την τιμή που μεταβιβάζεται στη λειτουργία

Λειτουργία εγκατάστασης

void setup () {// setup OUTPUT pin pin pinMode (ηχείο, OUTPUT); για (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

Στη λειτουργία ρύθμισης έθεσα τις καρφίτσες που απαιτούνται σε OUTPUT.

Λειτουργία βρόχου

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Σημειώσεις, Διάρκεια και αναπαραγωγή της μελωδίας int note = noteToHz (τραγούδι [t * 2]); int μήκος = ((τραγούδι [(t * 2) +1] * barTime) / 8); τόνος (ηχείο, σημείωση, μήκος - 50). // Φώτα που αναβοσβήνουν! lightLEDs (μοτίβο [t % patternLength]); καθυστέρηση (μήκος)? } // Silence Loop int randomSilence = random (1000, 5000); για (int t = 0; t

Έχω 2 βρόχους στη συνάρτηση Κύριος βρόχος. Ένας βρόχος τραγουδιού και ένας βρόχος σιωπής

Ο βρόχος τραγουδιού θα διαβάσει τα δεδομένα από τη σειρά τραγουδιών, θα παίξει τη νότα χρησιμοποιώντας τη λειτουργία τόνου

Ο βρόχος του τραγουδιού θα

  • Διαβάστε τα δεδομένα από τη σειρά τραγουδιών,
  • Στη συνέχεια, αναπαράγετε τη νότα χρησιμοποιώντας τη λειτουργία τόνου
  • Φωτίστε τον πίνακα μοτίβου ανάγνωσης των LED.

Στο βρόχο Σιωπή

ανάβουν μόνο τα LED

Συνδέστε το Arduino και ανεβάστε τον κωδικό. (Τότε αποσυνδέστε το)

Βήμα 3: Εκκίνηση του κυκλώματος

Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος
Εκκίνηση του Κυκλώματος

Θα ξεκινήσω με τη σειρά των φώτων

  • Χρησιμοποίησα σύρμα από καλώδιο Ethernet και κόλλησα 3 LED παράλληλα τέσσερις φορές, φροντίζοντας να χωρίσω ομοιόμορφα τα LED σε απόσταση περίπου 2 μέτρων
  • Συγκόλλησα την άνοδο του κάθε led σε ένα μόνο καλώδιο.
  • Στη συνέχεια, η κάθοδος κάθε LED σε 4 ξεχωριστά καλώδια. Με αντίσταση φυσικά
  • Επανέλαβα αυτή τη διαδικασία 3 φορές για να πάρω μια σειρά από 12 LED και έβαλα ακίδες κεφαλίδας στο τέλος των 5 καλωδίων

Συνδέστε τις θετικές και τις αλεσμένες ράγες στο breadboard

Βήμα 4: Το ULN2803

Το ULN2803
Το ULN2803
Το ULN2803
Το ULN2803
Το ULN2803
Το ULN2803

Τοποθετήστε το τσιπ ULN2308 στην σανίδα ψωμιού

Το ULN2308 είναι ένα τσιπ συστοιχίας τρανζίστορ. από το φύλλο δεδομένων που μπορώ να δω

  • Αυτός ο πείρος 1 είναι μια είσοδος που γυρίζει τον πείρο 18 "ON"
  • Η καρφίτσα 2 ενεργοποιείται 17. Και τα λοιπά.
  • Ο πείρος 9 είναι αλεσμένος
  • Συνδέστε τον πείρο 9 του τσιπ στη ράγα γείωσης
  • Συνδέστε τη θετική ράγα σε μια τερματική ταινία, μία ταινία πάνω από τον πείρο 18. (Θα δείτε γιατί σε ένα λεπτό)
  • Συνδέστε τον πείρο 1 του τσιπ με τον πείρο 3 του Arduino
  • 2 πηγαίνει στο 4
  • 3 του τσιπ πηγαίνει στο 5 και
  • 4 πηγαίνει στην καρφίτσα 6 του Arduino
  • Τοποθετήστε το κορδόνι LED στη σανίδα ψωμιού. Όπου το κοινό καλώδιο ανόδου συνδέεται με τη λωρίδα συνδεδεμένη στα 5 βολτ. Οι υπόλοιπες καρφίτσες των νεράιδων πρέπει να πάνε στην ακίδα 18, 17, 16 και 15 του τσιπ.

Βήμα 5: Προσθήκη ήχου

Προσθήκη ήχου
Προσθήκη ήχου
  • Συνδέστε το ηχείο Piezo μεταξύ 2 λωρίδων ακροδεκτών
  • Συνδέστε τον αρνητικό πόλο του στοιχείου Piezo στη γείωση και
  • Το άλλο άκρο του ηχείου στο pin 11

Βήμα 6: Συμπέρασμα

συμπέρασμα
συμπέρασμα
συμπέρασμα
συμπέρασμα

Έχω μια σειρά από φωτιστικά που θα παίξουν τυχαία jingle bells για να μου θυμίσουν ότι είναι η εορταστική περίοδος.

Συνιστάται: