Kazalo:

Glasbene pravljične luči: 6 korakov (s slikami)
Glasbene pravljične luči: 6 korakov (s slikami)

Video: Glasbene pravljične luči: 6 korakov (s slikami)

Video: Glasbene pravljične luči: 6 korakov (s slikami)
Video: Abandoned American Home Holds Thousands Of Forgotten Photos! 2024, November
Anonim
Image
Image

Avtor IanCummingFollow Več avtorja:

Intervalometer Arduino
Intervalometer Arduino
Ni samo urnik
Ni samo urnik
Ne samo urnik
Ne samo urnik
Termometer z enim pikslom
Termometer z enim pikslom
Termometer z enim pikslom
Termometer z enim pikslom

O: Rad izdelujem stvari od raket do elektronike. Več o IanCummingu »

Dobrodošli vsi

Skoraj je praznična sezona in številne trgovine so začele postavljati svoje praznične okraske. Mislil sem, da je pravi čas za izdelavo glasbenih pravljičnih luči!

Korak: Uporabljeni deli

Rabljeni deli
Rabljeni deli

Uporabil bom naslednje:

  • 12 LED
  • 12 Upori, ki omejujejo tok
  • 1 ULN 2803 Darlingtonski tranzistorski niz
  • Nekaj premostitvenih žic
  • Piezo zvočnik
  • Ogledna plošča in
  • Arduino
  • Za izdelavo niza pravljičnih luči sem uporabil 5 žic iz kabla Ethernet

2. korak: Koda

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000 ms bajt nrLEDS = 4; // 4 osnovne LED diode, lahko dodate veliko vzporednih bajtnih LED = {3, 4, 5, 6}; bajtni zvočnik = 11; bajtni vzorecLength = 64; // vzorec Dolžina bajta songLength = 51; const byte song = {// Podatki Jingle Bells 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}; // Struktura je številka opombe, nato // dolžina beležke v osmem bajtnem vzorcu 8. = {// Podatkovni podatki 0b0001, 0b0010, 0b0100, 0b1000, // Biti ustrezajo Ledsom v nizu 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b110, 0b110, 0b0000 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Najprej razglasim svoje spremenljivke, zanimive pa so Song in Pattern.

  • Pesem shrani melodijo; v tem primeru gre za Jingle bells.
  • Vzorec shranjuje položaje za vklop in izklop v bitih vrednosti v matriki.

Funkcije po meri

// FUNKCIJE int noteToHz (int note) {// Pretvorimo opombo št. do Frequency float freq = 440 * (pow (1.059463094359, opomba-21)); // -21 vam daje opombo 1 pri C3 (mislim) return int (freq); // Rezultati so natančni do 1 hz} void lightLEDs (bajt PORT_X) {// Stanje nadzorne LED za (int q = 0; q

Dve funkciji, ki jo imam, bosta naslednji:

  • Izračunajte frekvenco tonske funkcije v zanki
  • vklopite ali izklopite LED diode, odvisno od vrednosti, prenesene v funkcijo

Nastavitvena funkcija

void setup () {// setup OUTPUT nožice pinMode (zvočnik, OUTPUT); za (int t = 0; t <nrLEDS; t ++) {pinMode (LED [t], OUTPUT); }}

V nastavitveni funkciji sem nastavil potrebne zatiče na IZHOD.

Funkcija zanke

void loop () {// Glasbena zanka za (int t = 0; t <songLength; t ++) {// Opombe, Dolžina in predvajanje melodije int note = noteToHz (pesem [t * 2]); int length = ((skladba [(t * 2) +1] * barTime) / 8); ton (zvočnik, opomba, dolžina - 50); // Utripajoče luči! lightLEDs (vzorec [t % patternLength]); zamuda (dolžina); } // Silence Loop int randomSilence = naključno (1000, 5000); za (int t = 0; t

V funkciji Main Loop imam 2 zanki. Zanka pesmi in zanka tišine

Zanka pesmi bo prebrala podatke iz pesmi, predvajala noto s tonsko funkcijo

Zanka pesmi bo,

  • Preberite podatke iz pesmi,
  • Nato zaženite noto s tonsko funkcijo
  • Prižgite LED diode, matriko za branje.

V zanki tišine

svetijo samo LED diode

Priključite Arduino in naložite kodo. (Nato ga odklopite)

3. korak: Zagon vezja

Zagon vezja
Zagon vezja
Zagon vezja
Zagon vezja
Zagon vezja
Zagon vezja
Zagon vezja
Zagon vezja

Začel bom z nizom luči

  • Uporabil sem žico iz kabla Ethernet in štirikrat vzporedno spajkal 3 LED, pri čemer pazim, da LED enakomerno razporedim na približno 2 metra
  • Spajal sem anodo vsake žice na eno žico.
  • Nato katodo vsake LED na 4 ločene žice. Seveda z uporom
  • Ta postopek sem ponovil 3 -krat, da sem dobil niz 12 LED in na koncu 5 žic sem dal zatiče glave

Pozitivne in ozemljene tirnice priključite na ploščo

4. korak: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Čip ULN2308 položite na ploščo

ULN2308 je čip tranzistorskega niza; iz podatkovnega lista vidim

  • Ta pin 1 je vhod, ki vklopi pin 18 "ON"
  • Pin 2 vklopi 17. Itd.
  • Pin 9 je ozemljen
  • Pin 9 čipa priključite na ozemljitveno tirnico
  • Pozitivno tirnico priključite na priključni trak, en trak nad zatičem 18. (V minuti boste videli, zakaj)
  • Priključite pin 1 čipa na pin 3 Arduina
  • 2 gre na 4
  • 3 čipa gre na 5 in
  • 4 gre na pin 6 Arduina
  • LED niz postavite na ploščo. Kjer je skupna anodna žica priključena na trak, priključen na 5 voltov. Preostali viličasti svetlobni zatiči naj bi šli na pin 18, 17, 16 in 15 čipa.

5. korak: Dodajanje zvoka

Dodajanje zvoka
Dodajanje zvoka
  • Piezo zvočnik povežite med 2 priključna traka
  • Negativni pol Piezo elementa povežite z maso in
  • Drugi konec zvočnika na pin 11

6. korak: Zaključek

Zaključek
Zaključek
Zaključek
Zaključek

Imam niz luči, ki bodo naključno predvajale zvončke in me opomnile, da je praznična sezona.

Priporočena: