Բովանդակություն:

Երաժշտական հեքիաթային լույսեր. 6 քայլ (նկարներով)
Երաժշտական հեքիաթային լույսեր. 6 քայլ (նկարներով)

Video: Երաժշտական հեքիաթային լույսեր. 6 քայլ (նկարներով)

Video: Երաժշտական հեքիաթային լույսեր. 6 քայլ (նկարներով)
Video: Areg's Time - Tarva Eghanakner | Տարվա Եղանակներ 2024, Նոյեմբեր
Anonim
Image
Image

Հետևեք հեղինակի ավելին.

Arduino ինտերվալոմետր
Arduino ինտերվալոմետր
Ոչ միայն մեկ ժամաչափ
Ոչ միայն մեկ ժամաչափ
Ոչ միայն մեկ ժամաչափ
Ոչ միայն մեկ ժամաչափ
Մեկ պիքսել ջերմաչափ
Մեկ պիքսել ջերմաչափ
Մեկ պիքսել ջերմաչափ
Մեկ պիքսել ջերմաչափ

Ես սիրում եմ հրթիռներից մինչև էլեկտրոնիկա պատրաստել: Ավելին IanCumming- ի մասին »

Բարի գալուստ Բոլորին

Գրեթե տոնական շրջան է, և խանութների մեծ մասը սկսել է հարդարել իր տոնական զարդերը, ես մտածեցի, որ ճիշտ ժամանակն է երաժշտական հեքիաթային լույսեր կառուցելու:

Քայլ 1: Օգտագործված մասեր

Օգտագործված մասեր
Օգտագործված մասեր

Ես կօգտագործեմ հետևյալը.

  • 12 լուսադիոդ
  • 12 Ընթացիկ սահմանափակող ռեզիստորներ
  • 1 ULN 2803 Darlington Transistor Array
  • Որոշ Jumper լարեր
  • Պիեզո խոսնակ
  • A Breadboard և
  • մի Արդուինո
  • Հեքիաթային լույսերի շարանը պատրաստելու համար ես օգտագործեցի 5 լար `Ethernet մալուխից

Քայլ 2: Կոդ

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms բայթ nrLEDS = 4; // 4 բազային լուսադիոդներ, կարող եք ավելացնել բազմաթիվ զուգահեռ բայթեր = {3, 4, 5, 6}; բայթ բարձրախոս = 11; բայթ օրինակի երկարություն = 64; // օրինակը Երկարություն բայթ songLength = 51; const byte երգ = {// 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}; // Կառուցվածքը նշման թիվ է, ապա // NoteLength 8 -ի const byte օրինակում = {// 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, 0b0010, 0b0011, 0b0001, 0b1001, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Սկզբում ես հայտարարում եմ իմ փոփոխականների մասին, որոնցից ամենահետաքրքիրը երգը և նախշն են:

  • Երգը պահում է մեղեդին; այս դեպքում դա Jingle bells- ն է:
  • Կաղապարը պահում է միացման արժեքների բիթերում միացված և անջատված դիրքերը:

Պատվերով գործառույթներ

// FUNCTIONS int noteToHz (int note) {// Փոխարկել նշում Nr. դեպի Frequency float freq = 440 * (ուժ (1.059463094359, նշում -21)); // -21- ը ձեզ տալիս է 1 նշում C3- ում (կարծում եմ) return int (հաճախականություն); // Արդյունքները ճշգրիտ են 1 հց} դատարկ լուսադիոդների համար (բայթ PORT_X) {// Կառավարեք LED- ի վիճակը (int q = 0; q

Երկու գործառույթներ, որոնք ես ունեմ, կկատարեն հետևյալը.

  • Հաշվիր հանգույցում հնչերանգային գործառույթի հաճախականությունը
  • միացրեք կամ անջատեք LED- ները ՝ կախված գործառույթին փոխանցված արժեքից

Կարգավորման գործառույթ

void setup () {// setup OUTPUT կապում pinMode (խոսնակ, OUTPUT); համար (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

Կարգավորման գործառույթում ես սահմանում եմ PIN- ի պահանջվող PIN- ը:

Օղակի գործառույթ

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length and play the melody int note = noteToHz (song [t * 2]); int երկարություն = ((երգ

Main Loop գործառույթում ես ունեմ 2 օղակ: Երգի հանգույց և լռության օղակ

Երգի օղակը կարդալու է երգի զանգվածի տվյալները, նվագարկելու է նոտան `օգտագործելով տոնային գործառույթը

Երգի հանգույցը,

  • Կարդացեք երգի զանգվածի տվյալները,
  • Հետո նվագարկեք նոտան ՝ օգտագործելով տոնային գործառույթը
  • Լուսավորեք LED- ները, ընթերցման օրինակների զանգվածը:

Լռության օղակում

միայն լուսադիոդներն են լուսավորված

Միացրեք Arduino- ն և վերբեռնեք կոդը: (Ապա անջատեք այն վարդակից)

Քայլ 3: Շղթայի գործարկում

Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը
Շղթայի մեկնարկը

Սկսելու եմ լույսերի լարով

  • Ես օգտագործեցի մետաղալար Ethernet մալուխից և չորս LED զուգահեռաբար չորս անգամ զոդեցի ՝ համոզվելով, որ LED- ները հավասարաչափ տարածում են մոտ 2 մետր
  • Ես զոդեցի յուրաքանչյուր հանգույցի անոդը մեկ լարի հետ:
  • Այնուհետեւ յուրաքանչյուր LED- ի կաթոդ 4 առանձին լարերի: Իհարկե, ռեզիստորով
  • Ես կրկնում եմ այս գործընթացը 3 անգամ ՝ 12 LED լարի ստանալու համար, և 5 լարերի վերջում տեղադրում եմ վերնագրի կապում:

Միացրեք Դրական և աղացած ռելսերը հացահատիկին

Քայլ 4: ULN2803

ULN2803- ը
ULN2803- ը
ULN2803- ը
ULN2803- ը
ULN2803- ը
ULN2803- ը

Տեղադրեք ULN2308 չիպը սեղանի վրա

ULN2308- ը տրանզիստորային զանգվածի չիպ է. տվյալների թերթիկից ես տեսնում եմ

  • Այդ կապը 1 մուտք է, որը պտուտակը 18 -ը դարձնում է «ON»
  • Պին 2 -ը միանում է 17 -ին: Եւ այլն
  • 9 -րդ կապը հիմնավորված է
  • Միացրեք չիպի 9 -րդ կապը գետնին
  • Դրական երկաթուղին միացրեք տերմինալային ժապավենին, մեկ ժապավեն 18 -ի վերևում: (Տեսեք, թե ինչու մեկ րոպեից)
  • Միացրեք չիպի 1 -ին կապը Arduino- ի 3 -րդ կապին
  • 2 -ը գնում է 4 -ի
  • Չիպի 3 -ը գնում է 5 և
  • 4 -ը անցնում է Arduino- ի 6 -րդ կապին
  • Տեղադրեք LED տողը սեղանի վրա: Որտեղ ընդհանուր անոդի մետաղալարը միացված է 5 վոլտին միացված ժապավենին: Մնացած հեքիաթային թեթև կապում պետք է անցնել չիպի 18, 17, 16 և 15 կապում:

Քայլ 5: Ձայնի ավելացում

Ձայնի ավելացում
Ձայնի ավելացում
  • Միացրեք Piezo խոսնակին 2 տերմինալային շերտի միջև
  • Միացրեք Պիեզո տարրի բացասական բևեռը գետնին և
  • Բանախոսի մյուս ծայրը ՝ 11 -ի կապում

Քայլ 6: Եզրակացություն

Եզրակացություն
Եզրակացություն
Եզրակացություն
Եզրակացություն

Ես ունեմ մի շարք լույսի շղթաներ, որոնք պատահաբար կխաղան jingle զանգերը ՝ ինձ հիշեցնելու համար, որ տոնական շրջանն է:

Խորհուրդ ենք տալիս: