Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Seuraa lisää tekijältä:
Tietoja: Tykkään tehdä tavaraa raketeista elektroniikkaan. Lisätietoja IanCummingista »
Tervetuloa, kaikki
Se on melkein juhla -aika ja monet kaupat ovat alkaneet laittaa juhlakoristeitaan, ajattelin, että on oikea aika rakentaa musiikillisia keijuvalaisimia!
Vaihe 1: Käytetyt osat
Käytän seuraavaa:
- 12 LEDiä
- 12 Virranrajoitusvastukset
- 1 ULN 2803 Darlingtonin transistorijärjestelmä
- Jotkut hyppyjohdot
- Pietsokaiutin
- Leipälauta ja
- ja Arduino
- Keijujen merkkijonon tekemiseen käytin 5 johtoa Ethernet -kaapelista
Vaihe 2: Koodi
// GLOBAL VARS int barTime = 1200; // 8/8 = 1000 ms tavu nrLEDS = 4; // 4 Perus -LED -valot, voit lisätä monia rinnakkaisia tavu -ledejä = {3, 4, 5, 6}; tavukaiutin = 11; tavukuvioPituus = 64; // kuvio Pituus tavu 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}; // Rakenne on muistiinpanon numero // // NoteLength in 8th 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, 0b0110 0, 0b100 1 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};
Aluksi julistan muuttujiani, mielenkiintoisia ovat laulu ja kuvio.
- Kappale tallentaa sävelen; tässä tapauksessa se on Jingle bells.
- Kuvio tallentaa päälle ja pois -asemat taulukon arvojen bitteihin.
Mukautetut toiminnot
// FUNCTIONS int noteToHz (int note) {// Muunna Note Note. taajuuden vaihtuvaan taajuuteen = 440 * (pow (1.059463094359, huomautus 21)); // -21 antaa huomautuksen 1 kohdassa C3 (mielestäni) return int (taajuus); // Tulokset ovat 1 Hz: n tarkkoja
Minulla on kaksi toimintoa, jotka toimivat seuraavasti:
- Laske silmukan äänitoiminnon taajuus
- kytke LED -valot päälle tai pois toiminnolle siirretyn arvon mukaan
Asetustoiminto
void setup () {// setup OUTPUT nastat pinMode (kaiutin, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (ledit [t], OUTPUT); }}
Asetustoiminnossa asetin tarvittavat nastat OUTPUT -asentoon.
Silmukkatoiminto
void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Muistiinpanot, pituus ja melodian toisto int note = noteToHz (kappale [t * 2]); int pituus = ((laulu [(t * 2) +1] * barTime) / 8); sävy (kaiutin, nuotti, pituus - 50); // Vilkkuvat valot! lightLED (kuvio [t % patternLength]); viive (pituus); } // Silence Loop int randomSilence = random (1000, 5000); for (int t = 0; t
Minulla on 2 silmukkaa Main Loop -toiminnossa. Laulusilmukka ja hiljaisuuslenkki
Kappalesilmukka lukee kappalemäärän tiedot, soittaa nuotin äänitoiminnolla
Laulusilmukka tulee,
- Lue tiedot kappalejoukosta,
- Soita nuotti sitten äänitoiminnolla
- Sytytä LEDit, lukutaulukko.
Hiljaisuussilmukassa
vain LEDit palavat
Liitä Arduino ja lataa koodi. (Irrota se sitten)
Vaihe 3: Piirin käynnistäminen
Aloitan valojen merkkijonolla
- Käytin Ethernet -kaapelin johtoa ja juotin kolme LEDiä rinnakkain neljä kertaa varmistaen, että LEDit sijoitettiin tasaisesti noin 2 metrin päähän
- Juotin jokaisen johdon anodin yhdeksi johtimeksi.
- Sitten kunkin LEDin katodi 4 erilliseen johtoon. Tietysti vastuksen kanssa
- Toistin tämän prosessin 3 kertaa saadakseni 12 LED -merkkijonon ja laitoin otsikkotapit 5 johtimen päähän
Liitä positiiviset ja maadoitetut kiskot leipälautaan
Vaihe 4: ULN2803
Aseta ULN2308 -siru leipälevylle
ULN2308 on transistorijärjestelmän siru; tietolomakkeesta, jonka näen
- Tämä nasta 1 on tulo, joka kytkee nastan 18 "ON"
- Nasta 2 käynnistää 17. Jne.
- Tappi 9 on maadoitettu
- Liitä sirun nasta 9 maadoituskiskoon
- Liitä positiivinen kisko riviliittimeen, yksi liuska tapin 18 yläpuolelle (näet miksi minuutin kuluttua)
- Liitä sirun nasta 1 Arduinon nastaan 3
- 2 menee 4: een
- 3 sirusta menee kohtaan 5 ja
- 4 menee Arduinon nastaan 6
- Aseta LED -merkkijono leipälevylle. Jos yhteinen anodijohto on kytketty 5 voltin liitäntään. Loput keiju kevyt nastat pitäisi mennä siru nastat 18, 17, 16 ja 15.
Vaihe 5: Äänen lisääminen
- Liitä pietsokaiutin kahden liittimen välille
- Liitä Piezo -elementin negatiivinen napa maahan ja
- Kaiuttimen toinen pää nastaan 11
Vaihe 6: Johtopäätös
Minulla on merkkijono, joka soittaa satunnaisesti soittokelloja muistuttaakseen minua siitä, että on juhla -aika.