Turinys:

Muzikinės pasakų šviesos: 6 žingsniai (su nuotraukomis)
Muzikinės pasakų šviesos: 6 žingsniai (su nuotraukomis)

Video: Muzikinės pasakų šviesos: 6 žingsniai (su nuotraukomis)

Video: Muzikinės pasakų šviesos: 6 žingsniai (su nuotraukomis)
Video: 10 НАСТОЯЩИХ СТРАШНЫХ ПАРАНОРМАЛЬНЫХ ИСТОРИЙ ИЗ ЯПОНИИ... 2024, Liepa
Anonim
Image
Image

Sekite daugiau autoriaus:

„Arduino“intervalas
„Arduino“intervalas
Ne tik valandos laikmatis
Ne tik valandos laikmatis
Ne tik valandos laikmatis
Ne tik valandos laikmatis
Vienas pikselių termometras
Vienas pikselių termometras
Vienas pikselių termometras
Vienas pikselių termometras

Apie: Man patinka gaminti daiktus nuo raketų iki elektronikos. Daugiau apie IanCumming »

Sveiki visi

Jau beveik šventinis laikotarpis ir daugybė parduotuvių pradėjo dėti šventines dekoracijas, pagalvojau, kad atėjo tinkamas laikas pastatyti muzikines pasakų lemputes!

1 žingsnis: Naudotos dalys

Naudotos dalys
Naudotos dalys

Aš naudosiu šiuos dalykus:

  • 12 šviesos diodų
  • 12 Srovės ribojimo rezistoriai
  • 1 ULN 2803 Darlingtono tranzistorių matrica
  • Kai kurie trumpieji laidai
  • Pjezo garsiakalbis
  • Duonos lenta ir
  • ir Arduino
  • Norėdami sukurti pasakų šviesų eilutę, naudoju 5 laidus iš eterneto kabelio

2 žingsnis: kodas

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000 ms baitas nrLEDS = 4; // 4 baziniai šviesos diodai, galite pridėti daugybę lygiagrečių baitų lempučių = {3, 4, 5, 6}; baitų garsiakalbis = 11; baitų modelisLength = 64; // modelio ilgio baitų dainaLength = 51; const baitų daina = {// „Jingle Bells“duomenys 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}; // Struktūra yra pastabos numeris tada // NoteLength 8 -ojo konstituoto baitų šablone = {// Šablono duomenys 0b0001, 0b0010, 0b0100, 0b1000, // Bits corrispond to Leds in a 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, 0b1010, 0b1010 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b00b, 0b0011, 0b0011, 0b0011, 0b0011, 0b0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Pirmiausia paskelbiu savo kintamuosius, įdomiausi yra daina ir modelis.

  • Daina išsaugo melodiją; šiuo atveju tai yra Jingle Bells.
  • Šablonas saugo įjungimo ir išjungimo pozicijas masyvo verčių bituose.

Individualizuotos funkcijos

// FUNKCIJOS int noteToHz (int note) {// Konvertuoti pastabą Nr. iki dažnio plūdės dažnis = 440 * (pow (1.059463094359, 21 pastaba)); // -21 suteikia jums 1 pastabą C3 (manau) return int (freq); // Rezultatai tikslūs iki 1 Hz} tuštumos šviesos diodai (baitas PORT_X) {// Valdymo šviesos diodo būsena (int q = 0; q

Dvi funkcijos, kurias turiu, atliks šiuos veiksmus:

  • Apskaičiuokite tonų funkcijos dažnį cikle
  • įjunkite arba išjunkite šviesos diodus, priklausomai nuo funkcijai perduotos vertės

Sąrankos funkcija

void setup () {// sąranka OUTPUT smeigtukai pinMode (garsiakalbis, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (šviesos diodai [t], OUTPUT); }}

Nustatymo funkcijoje aš nustatiau reikiamus kaiščius į OUTPUT.

Kilpos funkcija

void loop () {// Muzikos ciklas (int t = 0; t <songLength; t ++) {// Pastabos, ilgis ir melodijos atkūrimas int note = noteToHz (daina [t * 2]); int ilgis = ((daina [(t * 2) +1] * barTime) / 8); tonas (garsiakalbis, nata, ilgis - 50); // Žybsinčios šviesos! lightLEDs (modelis [t % patternLength]); vėlavimas (ilgis); } // Silence Loop int randomSilence = atsitiktinis (1000, 5000); už (int t = 0; t

Pagrindinės kilpos funkcijoje turiu 2 kilpas. Dainų kilpa ir tylos kilpa

Dainų ciklas skaitys duomenis iš dainų masyvo, groja nata naudojant tono funkciją

Dainų kilpa bus,

  • Perskaitykite duomenis iš dainų masyvo,
  • Tada paleiskite natą naudodami tonų funkciją
  • Įsižiebkite šviesos diodus, skaitykite modelių masyvą.

Tylos cikle

šviečia tik šviesos diodai

Prijunkite „Arduino“ir įkelkite kodą. (Tada atjunkite)

3 žingsnis: grandinės paleidimas

Grandinės pradžia
Grandinės pradžia
Grandinės pradžia
Grandinės pradžia
Grandinės pradžia
Grandinės pradžia
Grandinės pradžia
Grandinės pradžia

Pradėsiu nuo šviesų virtinės

  • Aš naudoju laidą iš eterneto kabelio ir keturis kartus lydėjau 3 šviesos diodus, kad šviesos diodai būtų tolygiai išdėstyti maždaug per 2 metrus
  • Aš lituodavau kiekvieno anodo aną prie vieno laido.
  • Tada kiekvieno šviesos diodo katodas į 4 atskirus laidus. Žinoma, su rezistoriumi
  • Aš pakartojau šį procesą 3 kartus, kad gaučiau 12 šviesos diodų eilutę, ir ant 5 laidų galo uždėjau antraščių kaiščius

Prijunkite teigiamus ir įžemintus bėgius prie duonos lentos

4 žingsnis: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Padėkite ULN2308 mikroschemą ant duonos lentos

ULN2308 yra tranzistorių matricos lustas; iš duomenų lapo, kurį matau

  • Šis 1 kaištis yra įvestis, įjungianti 18 kaištį
  • 2 kaištis įjungia 17. Ir tt
  • 9 kaištis yra sumaltas
  • Prijunkite lusto 9 kaištį prie įžeminimo bėgio
  • Prijunkite teigiamą bėgelį prie gnybtų juostelės, viena juosta virš 18 kaiščio. (Pamatysite, kodėl po minutės)
  • Prijunkite lusto 1 kaištį prie „Arduino“3 kaiščio
  • 2 eina į 4
  • 3 lusto eina į 5 ir
  • 4 eina į „Arduino“6 kaištį
  • Padėkite šviesos diodų eilutę ant duonos lentos. Kur bendras anodo laidas yra prijungtas prie juostos, prijungtos prie 5 voltų. Likusios pasakų šviesos smeigtukai turėtų patekti į lusto 18, 17, 16 ir 15 kaištį.

5 žingsnis: pridėkite garsą

Garso pridėjimas
Garso pridėjimas
  • Prijunkite pjezo garsiakalbį tarp 2 gnybtų
  • Prijunkite neigiamą Piezo elemento polių prie žemės ir
  • Kitas garsiakalbio galas prie 11 kaiščio

6 žingsnis: Išvada

Išvada
Išvada
Išvada
Išvada

Turiu šviesų eilutę, kuri atsitiktinai paleis skambinančius varpelius, kad primintų man, jog tai šventinis metas.

Rekomenduojamas: