Talaan ng mga Nilalaman:

Musical Fairy Lights: 6 Mga Hakbang (na may Mga Larawan)
Musical Fairy Lights: 6 Mga Hakbang (na may Mga Larawan)

Video: Musical Fairy Lights: 6 Mga Hakbang (na may Mga Larawan)

Video: Musical Fairy Lights: 6 Mga Hakbang (na may Mga Larawan)
Video: I work at the Private Museum for the Rich and Famous. Horror stories. Horror. 2024, Hulyo
Anonim
Image
Image

Sa pamamagitan ng IanCummingMasunod Dagdag ng may-akda:

Arduino Intervalometer
Arduino Intervalometer
Hindi Lang Isang Oras na Timer
Hindi Lang Isang Oras na Timer
Hindi Lang Isang Oras na Timer
Hindi Lang Isang Oras na Timer
Isang Pixel Thermometer
Isang Pixel Thermometer
Isang Pixel Thermometer
Isang Pixel Thermometer

Tungkol sa: Gusto kong gumawa ng mga bagay-bagay mula sa mga rocket hanggang sa electronics. Karagdagang Tungkol sa IanCumming »

Maligayang Pagdating sa Lahat

Ito ay halos panahon ng pagdiriwang at ang bilang ng mga tindahan ay nagsimulang maglagay ng kanilang maligaya na dekorasyon, naisip ko na ito ay tungkol sa tamang oras upang bumuo ng ilang mga musikal na engkantada ilaw!

Hakbang 1: Mga Ginamit na Bahagi

Mga Ginamit na Bahagi
Mga Ginamit na Bahagi

Gagamitin ko ang sumusunod:

  • 12 LED's
  • 12 Kasalukuyang nililimitahan ang Mga Resistor
  • 1 ULN 2803 Darlington Transistor Array
  • Ilang Mga Jumper Wires
  • Isang piezo Speaker
  • Isang Breadboard at
  • isang Arduino
  • Upang makagawa ng string ng mga ilaw ng engkanto gumamit ako ng 5 mga wire mula sa isang Ethernet cable

Hakbang 2: Ang Code

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms byte nrLEDS = 4; // 4 Base LEDs, Maaari kang magdagdag ng maraming mga parallel byte leds = {3, 4, 5, 6}; byte speaker = 11; byte patternLength = 64; // pattern Haba byte songLength = 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}; // The Structure is Note Number then // NoteLength in 8th's const byte pattern = {// Pattern Data 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, 010, 0b, 0b, 0b, 0b, 0 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011, 0b0010 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Una kong idineklara ang aking mga variable, ang mga kawili-wili sa pagiging Song at pattern.

  • Iniimbak ng kanta ang tono; sa kasong ito ay ang Jingle bells.
  • Ang pattern ay nag-iimbak sa at off posisyon sa mga piraso ng mga halaga sa array.

Mga Pasadyang Pag-andar

// FUNCTIONS int noteToHz (int note) {// convert a Note Nr. sa Frequency float freq = 440 * (pow (1.059463094359, note-21)); // -21 ay nagbibigay sa iyo ng tala 1 sa C3 (Sa Palagay Ko) ibalik ang int (freq); // Ang mga resulta ay tumpak sa 1hz} void lightLEDs (byte PORT_X) {// Control LED's State para sa (int q = 0; q

Ang dalawang pagpapaandar na mayroon ako ay gagawin ang sumusunod:

  • Kalkulahin ang dalas para sa paggana ng tono sa loop
  • i-on o i-off ang LED depende sa halagang ipinasa sa pagpapaandar

Pag-andar ng Pag-setup

void setup () {// setup OUTPUT pin pinMode (speaker, OUTPUT); para sa (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

Sa pag-andar ng pag-setup itinakda ko ang mga pin na kinakailangan upang OUTPUT.

Pag-andar ng Loop

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Mga Tala, Haba at i-play ang melody int note = noteToHz (kanta [t * 2]); int haba = ((kanta [(t * 2) +1] * barTime) / 8); tono (nagsasalita, tala, haba - 50); // Flashing Light! lightLEDs (pattern [t% patternLength]); antala (haba); } // Silence Loop int randomSilence = random (1000, 5000); para sa (int t = 0; t

Mayroon akong 2 mga loop sa pagpapaandar ng Main Loop. Isang loop ng kanta at isang loop ng katahimikan

Basahin ng loop ng kanta ang data mula sa hanay ng kanta, i-play ang tala gamit ang pagpapaandar ng tono

Ang loop ng kanta ay,

  • Basahin ang data mula sa hanay ng kanta,
  • Patugtugin ang tala gamit ang pag-andar ng tono pagkatapos
  • Magaan ang LED, magbasa ng pattern ng array.

Sa Silence loop

ang mga LED lamang ang naiilawan

I-plug ang Arduino at i-upload ang code. (Pagkatapos i-unplug ito)

Hakbang 3: Pagsisimula ng Circuit

Simula ng Circuit
Simula ng Circuit
Simula ng Circuit
Simula ng Circuit
Simula ng Circuit
Simula ng Circuit
Simula ng Circuit
Simula ng Circuit

Magsisimula na ako sa mga string ng ilaw

  • Gumamit ako ng kawad mula sa isang Ethernet cable at soldered 3 LED's sa parallel na apat na beses, tinitiyak na mailagay nang pantay ang LED sa halos 2 metro
  • Inhinang ko ang Anode ng bawat isa na humantong sa isang solong kawad.
  • Pagkatapos ang Cathode ng bawat LED sa 4 na magkakahiwalay na mga wire. Sa isang resistor syempre
  • Inulit ko ang prosesong ito ng 3 beses upang makakuha ng isang string ng 12 LED's at inilagay ko ang mga pin ng header sa dulo ng 5 wires

Ikonekta ang Positive at ground rails sa breadboard

Hakbang 4: Ang ULN2803

Ang ULN2803
Ang ULN2803
Ang ULN2803
Ang ULN2803
Ang ULN2803
Ang ULN2803

Ilagay ang ULN2308 Chip sa breadboard

Ang ULN2308 ay isang transistor array chip; mula sa data sheet na nakikita ko

  • Ang pin na 1 ay isang input na magpapasara sa 18 "PIN"
  • Ang Pin 2 ay nagiging 17. Atbp
  • Ang Pin 9 ay ground
  • Ikonekta ang Pin 9 ng maliit na tilad sa ground rail
  • Ikonekta ang positibong riles sa isang terminal strip, isang strip sa itaas ng pin 18. (Makikita mo kung bakit sa isang minuto)
  • Ikonekta ang pin 1 ng maliit na tilad sa pin 3 ng Arduino
  • 2 napupunta sa 4
  • 3 ng maliit na tilad ay pupunta sa 5 at
  • 4 ang papunta sa pin 6 ng Arduino
  • Ilagay ang LED string sa breadboard. Kung saan ang karaniwang anode wire ay konektado sa strip na konektado sa 5 volts. Ang natitirang mga fairy light pin ay dapat pumunta sa pin 18, 17, 16 at 15 ng maliit na tilad.

Hakbang 5: Pagdaragdag ng Tunog

Pagdaragdag ng Tunog
Pagdaragdag ng Tunog
  • Ikonekta ang Piezo Speaker sa pagitan ng 2 terminal strips
  • Ikonekta ang negatibong poste ng elemento ng Piezo sa lupa at
  • Ang kabilang dulo ng nagsasalita sa pin 11

Hakbang 6: Konklusyon

Konklusyon
Konklusyon
Konklusyon
Konklusyon

Mayroon akong isang string ng ilaw na sapalarang maglalaro ng mga kampanilya ng jingle upang ipaalala sa akin na ito ay ang maligaya na panahon.

Inirerekumendang: