Sisukord:

Muusikalised haldjatuled: 6 sammu (piltidega)
Muusikalised haldjatuled: 6 sammu (piltidega)

Video: Muusikalised haldjatuled: 6 sammu (piltidega)

Video: Muusikalised haldjatuled: 6 sammu (piltidega)
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, November
Anonim
Image
Image

Jälgi autori lisateavet:

Arduino intervalomeeter
Arduino intervalomeeter
Mitte ainult tunni taimer
Mitte ainult tunni taimer
Mitte ainult tunni taimer
Mitte ainult tunni taimer
Üks Pixeli termomeeter
Üks Pixeli termomeeter
Üks Pixeli termomeeter
Üks Pixeli termomeeter

Teave: Mulle meeldib teha asju raketitest elektroonikani. Lisateave IanCummingi kohta »

Tere tulemast kõigile

Peagi on käes pidulik hooaeg ja mitmed poed on hakanud oma pidulikke kaunistusi välja panema, mõtlesin, et on õige aeg muusikaliste muinastulede ehitamiseks!

Samm: kasutatud osad

Kasutatud osad
Kasutatud osad

Ma kasutan järgmist:

  • 12 LED -i
  • 12 Voolut piiravad takistid
  • 1 ULN 2803 Darlingtoni transistorimassiiv
  • Mõned hüppajad
  • Piesokõlar
  • Leibalaud ja
  • ja Arduino
  • Haldjatulede tegemiseks kasutasin Etherneti kaablist 5 juhtmest

2. samm: kood

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000 ms bait nrLEDS = 4; // 4 Baas -valgusdioodi, saate lisada palju paralleelseid bait -LED -e = {3, 4, 5, 6}; bait kõlar = 11; baidimusterPikkus = 64; // muster Pikkus bait songLength = 51; const byte song = {// Jingle Bellsi andmed 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}; // Struktuur on märkuse number siis // NoteLength kaheksanda konstrukt -baidimustris = {// Mustri andmed 0b0001, 0b0010, 0b0100, 0b1000, // Bits korrigeerib massiivi 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0110, 0b1010, 0b1010 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b1010, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Kõigepealt kuulutan välja oma muutujad, huvitavamad on laul ja muster.

  • Laul salvestab viisi; sel juhul on see Jingle bells.
  • Muster salvestab massiivi väärtuste bitti sisse ja välja lülitatud positsioonid.

Kohandatud funktsioonid

// FUNKTSIOONID int noteToHz (int note) {// Teisenda märk nr. kuni sageduse ujuki sagedus = 440 * (pow (1.059463094359, märkus-21)); // -21 annab teile märkuse C3 (ma arvan) return int (sagedus); // Tulemused on täpsed 1 Hz} tühja valguse LED -id (bait PORT_X) {// Juhtige LED -i olekut (int q = 0; q

Mul on kaks funktsiooni, mis toimivad järgmiselt.

  • Arvutage silmuse toonifunktsiooni sagedus
  • lülitage valgusdioodid sisse või välja sõltuvalt funktsioonile edastatud väärtusest

Seadistusfunktsioon

void setup () {// setup OUTPUT nööpnõelad pinMode (kõlar, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (ledid [t], OUTPUT); }}

Seadistusfunktsioonis seadsin nõutavad tihvtid väljundiks.

Loop funktsioon

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Märkmed, pikkus ja meloodia esitamine int note = noteToHz (lugu [t * 2]); int pikkus = ((laul [(t * 2) +1] * barTime) / 8); toon (kõneleja, noot, pikkus - 50); // Vilkuvad tuled! lightLED -id (muster [t % patternLength]); viivitus (pikkus); } // Silence Loop int randomSilence = juhuslik (1000, 5000); jaoks (int t = 0; t

Peasilmuse funktsioonis on mul 2 silmust. Lauluahel ja vaikimissilm

Lauluahel loeb lugusid massiivist, esitab noodi toonifunktsiooni abil

Lauluahel saab,

  • Lugege laulu massiivi andmeid,
  • Seejärel esitage noot toonitooniga
  • Süttige LED -id, lugege mustrite massiivi.

Vaikusilmus

põlevad ainult LED -id

Ühendage Arduino ja laadige kood üles. (Seejärel ühendage see vooluvõrgust lahti)

Samm: vooluringi käivitamine

Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine
Ringraja käivitamine

Alustan tulede nööriga

  • Kasutasin Etherneti kaabli juhet ja jootsin neli LED -i paralleelselt neli korda, veendudes, et LED -id paigutatakse ühtlaselt umbes 2 meetri kaugusele
  • Jootsin iga anoodi ühe juhtme juurde.
  • Seejärel katood iga LED 4 eraldi juhtmed. Muidugi takistiga
  • Kordasin seda protsessi 3 korda, et saada 12 LED -i jada ja panin 5 juhtme otsa päisepoldid

Ühendage positiivsed ja jahvatatud rööpad leivaplaadiga

Samm: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Asetage ULN2308 kiip leivaplaadile

ULN2308 on transistorimassiivi kiip; andmelehelt näen

  • See tihvt 1 on sisend, mis lülitab tihvti 18 sisse
  • Pin 2 lülitab sisse 17. Jne.
  • Tihvt 9 on maandatud
  • Ühendage kiibi tihvt 9 maapinnaga
  • Ühendage positiivne rööp klemmliistuga, üks riba tihvti 18 kohal. (Näete, miks minuti pärast)
  • Ühendage kiibi tihvt 1 Arduino tihvtiga 3
  • 2 läheb 4 -le
  • 3 kiibist läheb 5 ja
  • 4 läheb Arduino tihvtile 6
  • Asetage LED -string leivaplaadile. Kus tavaline anoodtraat on ühendatud ribaga, mis on ühendatud 5 voltiga. Ülejäänud haldjastugi tihvtid peaksid minema kiibi tihvtidele 18, 17, 16 ja 15.

Samm: heli lisamine

Heli lisamine
Heli lisamine
  • Ühendage piesokõlar kahe klemmliistu vahele
  • Ühendage Piezo elemendi negatiivne poolus maandusega ja
  • Kõlari teine ots tihvti 11 külge

6. samm: järeldus

Järeldus
Järeldus
Järeldus
Järeldus

Mul on valgusti, mis mängib juhuslikult helinaid ja tuletab mulle meelde, et käes on pidulik hooaeg.

Soovitan: