Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Jälgi autori lisateavet:
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
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
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
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
- Ü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
Mul on valgusti, mis mängib juhuslikult helinaid ja tuletab mulle meelde, et käes on pidulik hooaeg.