Satura rādītājs:

Muzikālās pasaku gaismas: 6 soļi (ar attēliem)
Muzikālās pasaku gaismas: 6 soļi (ar attēliem)

Video: Muzikālās pasaku gaismas: 6 soļi (ar attēliem)

Video: Muzikālās pasaku gaismas: 6 soļi (ar attēliem)
Video: Joka pēc alfabēts / Funny Alphabet 2024, Novembris
Anonim
Image
Image

Ievērojiet vairāk autora:

Arduino intervāla mērītājs
Arduino intervāla mērītājs
Ne tikai stundu taimeris
Ne tikai stundu taimeris
Ne tikai stundu taimeris
Ne tikai stundu taimeris
Viens pikseļu termometrs
Viens pikseļu termometrs
Viens pikseļu termometrs
Viens pikseļu termometrs

Par: Man patīk veidot lietas no raķetēm līdz elektronikai. Vairāk par IanCumming »

Laipni lūdzam visus

Ir gandrīz svētku laiks, un daudzi veikali ir sākuši izlikt savus svētku rotājumus, es domāju, ka ir pienācis īstais laiks, lai izveidotu dažas muzikālas pasaku gaismas!

1. darbība. Izmantotās detaļas

Izmantotās detaļas
Izmantotās detaļas

Es izmantošu sekojošo:

  • 12 gaismas diodes
  • 12 Strāvas ierobežošanas rezistori
  • 1 ULN 2803 Darlingtonas tranzistora bloks
  • Daži džemperu vadi
  • Pjezo skaļrunis
  • Maizes dēlis un
  • un Arduino
  • Lai izveidotu pasaku gaismu virkni, es izmantoju 5 vadus no Ethernet kabeļa

2. darbība: kods

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000 ms baits nrLEDS = 4; // 4 Bāzes gaismas diodes, Jūs varat pievienot daudzas paralēlas baitu gaismas diodes = {3, 4, 5, 6}; baitu skaļrunis = 11; baitu modelisLength = 64; // raksts Garums baits songLength = 51; const byte song = {// Jingle Bells dati 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 ir piezīmju skaitlis tad // NoteLength 8. konstanta baitu rakstā = {// Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, // Bits Corrospond to Leds in a masīvs 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, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b0011 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Vispirms es paziņoju savus mainīgos, interesantākie ir dziesma un modelis.

  • Dziesma saglabā melodiju; šajā gadījumā tas ir Jingle bells.
  • Modelis saglabā un ieslēdz pozīcijas masīva vērtību bitos.

Pielāgotas funkcijas

// FUNKCIJAS int noteToHz (int note) {// Konvertēt piezīmi Nr. līdz Frekvences pludiņa frekvence = 440 * (pow (1.059463094359, 21. piezīme)); // -21 sniedz jums piezīmi 1 pie C3 (es domāju) return int (freq); // Rezultāti ir precīzi ar 1 Hz} tukšas gaismasLED (baits PORT_X) {// Vadības gaismas diodes stāvoklis (int q = 0; q

Manas divas funkcijas veiks šādas darbības:

  • Aprēķiniet toņa funkcijas frekvenci cilpā
  • ieslēdziet vai izslēdziet gaismas diodes atkarībā no funkcijai nodotās vērtības

Iestatīšanas funkcija

void setup () {// setup OUTPUT tapas pinMode (skaļrunis, OUTPUT); for (int t = 0; t <nrLEDS; t ++) {pinMode (gaismas diodes [t], OUTPUT); }}

Iestatīšanas funkcijā es iestatīju vajadzīgās tapas uz OUTPUT.

Cilpas funkcija

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Piezīmes, garums un melodijas atskaņošana int not = noteToHz (dziesma [t * 2]); int garums = ((dziesma [(t * 2) +1] * barTime) / 8); tonis (skaļrunis, piezīme, garums - 50); // Mirgojošas gaismas! lightLED (modelis [t % patternLength]); kavēšanās (garums); } // Klusuma cilpa int randomSilence = random (1000, 5000); par (int t = 0; t

Galvenās cilpas funkcijā man ir 2 cilpas. Dziesmu cilpa un klusuma cilpa

Dziesmas cilpa nolasīs datus no dziesmu masīva, atskaņos noti, izmantojot toņa funkciju

Dziesmu cilpa būs,

  • Lasiet datus no dziesmu masīva,
  • Pēc tam atskaņojiet piezīmi, izmantojot toņa funkciju
  • Iedegiet gaismas diodes, lasot rakstu masīvu.

Klusuma cilpā

iedegas tikai gaismas diodes

Pievienojiet Arduino un augšupielādējiet kodu. (Pēc tam atvienojiet to)

3. darbība: ķēdes palaišana

Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana
Ķēdes startēšana

Sākšu ar gaismas virteni

  • Es izmantoju vadu no Ethernet kabeļa un četras reizes paralēli lodēju 3 gaismas diodes, pārliecinoties, ka gaismas diodes vienmērīgi izvietojas aptuveni 2 metru attālumā
  • Es pielodēju katra anoda vadu pie viena stieples.
  • Tad katras gaismas diodes katods līdz 4 atsevišķiem vadiem. Protams, ar rezistoru
  • Es atkārtoju šo procesu 3 reizes, lai iegūtu 12 gaismas diožu virkni, un es ievietoju galvenes tapas 5 vadu galā

Savienojiet pozitīvās un zemes sliedes ar maizes dēli

4. solis: ULN2803

ULN2803
ULN2803
ULN2803
ULN2803
ULN2803
ULN2803

Novietojiet ULN2308 mikroshēmu uz maizes dēļa

ULN2308 ir tranzistora masīva mikroshēma; no datu lapas es redzu

  • Šī tapa 1 ir ievade, kas ieslēdz 18 tapu
  • Pin 2 ieslēdz 17. Utt.
  • 9. tapa ir noslīpēta
  • Savienojiet mikroshēmas 9. tapu ar zemes sliedi
  • Pievienojiet pozitīvo sliedi spaiļu sloksnei, vienu sloksni virs tapas 18. (Kāpēc, jūs redzēsit pēc minūtes)
  • Savienojiet mikroshēmas 1. tapu ar Arduino 3. tapu
  • 2 iet uz 4
  • 3 no mikroshēmas iet uz 5 un
  • 4 iet uz Arduino 6. tapu
  • Novietojiet LED virkni uz maizes dēļa. Kur kopējais anoda vads ir pievienots sloksnei, kas savienota ar 5 voltiem. Pārējām pasaku gaismas tapām vajadzētu iet uz mikroshēmas 18., 17., 16. un 15. tapu.

5. darbība: skaņas pievienošana

Skaņas pievienošana
Skaņas pievienošana
  • Pievienojiet pjezo skaļruni starp divām spaiļu sloksnēm
  • Savienojiet Pjezo elementa negatīvo polu ar zemi un
  • Skaļruņa otru galu piespraudiet 11

6. darbība. Secinājums

Secinājums
Secinājums
Secinājums
Secinājums

Man ir virkne gaismas, kas nejauši atskaņos zvaniņus, lai atgādinātu, ka ir svētku laiks.

Ieteicams: