Cuprins:

Lumini muzicale de zână: 6 pași (cu imagini)
Lumini muzicale de zână: 6 pași (cu imagini)

Video: Lumini muzicale de zână: 6 pași (cu imagini)

Video: Lumini muzicale de zână: 6 pași (cu imagini)
Video: BOOM KIDS - Anul Nou 2024, Noiembrie
Anonim
Image
Image

De IanCumming Urmărește mai multe de la autor:

Intervalometru Arduino
Intervalometru Arduino
Nu doar un cronometru de oră
Nu doar un cronometru de oră
Nu doar un cronometru de oră
Nu doar un cronometru de oră
Un termometru Pixel
Un termometru Pixel
Un termometru Pixel
Un termometru Pixel

Despre: Îmi place să fac lucruri de la rachete la electronice. Mai multe despre IanCumming »

Bun venit tuturor

Este aproape sezonul festiv și un număr de magazine au început să-și scoată decorațiunile festive, am crezut că este momentul potrivit pentru a construi niște lumini de zână muzicale!

Pasul 1: Piese utilizate

Piese utilizate
Piese utilizate

Voi folosi următoarele:

  • 12 LED-uri
  • 12 Rezistoare cu limitare de curent
  • 1 ULN 2803 Darlington Transistor Array
  • Unele fire Jumper
  • Un difuzor piezo
  • O pană de pâine și
  • un Arduino
  • Pentru a face șirul de lumini de zână am folosit 5 fire dintr-un cablu Ethernet

Pasul 2: Codul

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 LED-uri de bază, puteți adăuga multe led-uri paralele de octeți = {3, 4, 5, 6}; byte speaker = 11; byte patternLength = 64; // model Lungime octet melodieLungime = 51; const byte song = {// 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}; // Structura este numărul de notă apoi // Lungimea notei în modelul octetului const al 8-lea = {// Datele modelului 0b0001, 0b0010, 0b0100, 0b1000, // Biți corespunzători Leds în matrice 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b01, 0b01, 0b01, 0b01 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 011, 011, 011, 011, 011, 011, 011, 011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

În primul rând îmi declar variabilele, cele interesante fiind Song and Pattern.

  • Melodia stochează melodia; în acest caz este vorba de clopote Jingle.
  • Modelul stochează pozițiile de pornire și oprire în biții valorilor din matrice.

Funcții personalizate

// FUNCȚII int noteToHz (int note) {// Conversia unei note Nr. la Freq float freq = 440 * (pow (1.059463094359, nota-21)); // -21 îți dă nota 1 la C3 (cred) return int (freq); // Rezultatele sunt corecte pentru 1hz} LED-uri void (octet PORT_X) {// Starea LED-ului de control pentru (int q = 0; q

Cele două funcții pe care le am vor face următoarele:

  • Calculați frecvența pentru funcția de ton în buclă
  • porniți sau opriți LED-urile în funcție de valoarea transmisă funcției

Funcția de configurare

void setup () {// setup OUTPUT pin pinMode (difuzor, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (leduri [t], OUTPUT); }}

În funcția de configurare am setat pinii necesari la OUTPUT.

Funcția Loop

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Note, Lungime și redați melodia int note = noteToHz (melodie [t * 2]); lungime int = ((melodie [(t * 2) +1] * barTime) / 8); ton (difuzor, notă, lungime - 50); // Lumini intermitente! lightLED-uri (model [t% patternLength]); întârziere (lungime); } // Silence Loop int randomSilence = random (1000, 5000); pentru (int t = 0; t

Am 2 bucle în funcția Main Loop. O buclă de melodie și o buclă de tăcere

Bucla melodiei va citi datele din matricea melodiei, va reda nota folosind funcția de ton

Bucla melodiei va,

  • Citiți datele din matricea de melodii,
  • Redați nota folosind funcția de ton atunci
  • Aprindeți LED-urile, citind matricea de modele.

În bucla Silence

doar LED-urile sunt aprinse

Conectați Arduino și încărcați codul. (Apoi deconectați-l)

Pasul 3: Pornirea circuitului

Pornirea circuitului
Pornirea circuitului
Pornirea circuitului
Pornirea circuitului
Pornirea circuitului
Pornirea circuitului
Pornirea circuitului
Pornirea circuitului

Voi începe cu șirul de lumini

  • Am folosit sârmă de la un cablu Ethernet și am lipit 3 LED-uri în paralel de patru ori, asigurându-mă că spațiuzi LED-urile în mod egal pe aproximativ 2 metri
  • Am lipit Anodul fiecărui condus la un singur fir.
  • Apoi, catodul fiecărui LED la 4 fire separate. Cu un rezistor desigur
  • Am repetat acest proces de 3 ori pentru a obține un șir de 12 LED-uri și am pus știfturi la capătul celor 5 fire

Conectați șinele pozitive și de masă la panou

Pasul 4: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Așezați cipul ULN2308 pe panou

ULN2308 este un cip cu matrice de tranzistoare; din fisa tehnica pe care o pot vedea

  • Acel pin 1 este o intrare care activează pinul 18 „ON”
  • Pinul 2 pornește 17. Etc.
  • Pinul 9 este măcinat
  • Conectați pinul 9 al cipului la șina de la sol
  • Conectați șina pozitivă la o bandă terminală, o bandă deasupra pinului 18. (Veți vedea de ce într-un minut)
  • Conectați pinul 1 al cipului la pinul 3 al Arduino
  • 2 merge la 4
  • 3 din cip merge la 5 și
  • 4 merge la pinul 6 din Arduino
  • Așezați șirul de LED-uri pe panoul de verificare. În cazul în care firul anod comun este conectat la banda conectată la 5 volți. Restul pinilor luminoase de zână ar trebui să meargă la pinul 18, 17, 16 și 15 al cipului.

Pasul 5: Adăugarea de sunet

Adăugarea sunetului
Adăugarea sunetului
  • Conectați difuzorul Piezo între 2 benzi terminale
  • Conectați polul negativ al elementului piezo la sol și
  • Celălalt capăt al difuzorului la pinul 11

Pasul 6: Concluzie

Concluzie
Concluzie
Concluzie
Concluzie

Am un șir de lumini care vor reda aleatoriu clopotele pentru a-mi reaminti că este sezonul festiv.

Recomandat: