Mundarija:

Musiqiy ertak chiroqlari: 6 qadam (rasmlar bilan)
Musiqiy ertak chiroqlari: 6 qadam (rasmlar bilan)

Video: Musiqiy ertak chiroqlari: 6 qadam (rasmlar bilan)

Video: Musiqiy ertak chiroqlari: 6 qadam (rasmlar bilan)
Video: Baxtiyor Rahmonovning "Kitob" qo'shig'i 2024, Noyabr
Anonim
Image
Image

IanCummingFollow tomonidan Muallifning yana:

Arduino intervalometri
Arduino intervalometri
Faqat soat taymeri emas
Faqat soat taymeri emas
Faqat soat taymeri emas
Faqat soat taymeri emas
Bir pikselli termometr
Bir pikselli termometr
Bir pikselli termometr
Bir pikselli termometr

Haqida: Men raketadan elektronikaga qadar buyumlar yasashni yaxshi ko'raman. IanCumming haqida ko'proq ma'lumot »

Hammaga Xush kelibsiz

Bu deyarli bayram mavsumi va ko'plab do'konlar bayramona bezaklarini chiqara boshladilar, menimcha, musiqiy ertaklarni yoqish vaqti keldi!

1 -qadam: Ishlatilgan qismlar

Ishlatilgan qismlar
Ishlatilgan qismlar

Men quyidagilarni ishlataman:

  • 12 ta LED
  • 12 oqim cheklovli rezistorlar
  • 1 ULN 2803 Darlington tranzistorli massiv
  • Ba'zi jumper simlari
  • Piezo karnay
  • Non paneli va
  • Arduino
  • Ertak chiroqlarini yaratish uchun Ethernet kabelidan 5 ta sim ishlatilgan

2 -qadam: Kod

// GLOBAL VARS int barTime = 1200; // 8/8 = 1000ms bayt nrLEDS = 4; // 4 ta asosiy LED, Siz parallel ravishda ko'p baytli LEDlarni qo'shishingiz mumkin = {3, 4, 5, 6}; bayt dinamik = 11; bayt naqshLength = 64; // naqsh Length bayt songLength = 51; const bayt qo'shig'i = {// Jingle Bells ma'lumotlari 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}; // Struktura - bu eslatma raqami, keyin // NoteLength 8 -chi const bayt naqshida = {// Pattern Data 0b0001, 0b0010, 0b0100, 0b1000, // Bitlar 0b0001, 0b0010, 0b0100, 0b1000, 0b0001 qatoridagi Ledsga mos keladi. 0b0010, 0b0100, 0b1000, 0b0001, 0b0010, 0b0100, 0b1000, 0b1000, 0b1100, 0b0100, 0b0110, 0b0010, 0b0011, 0b0001, 0b1001, 0b1000, 0b1100, 0b0100, 0b0100, 0b0100 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1010, 0b0101, 0b1100, 0b0011, 0b1100, 0b1100, 0b0000 0b0011, 0b1100, 0b0011, 0b1100, 0b0011,};

Birinchidan, men o'zgaruvchilarni e'lon qilaman, ularning eng qiziqlari qo'shiq va naqshdir.

  • Qo'shiq ohangni saqlaydi; bu holda bu Jingle qo'ng'iroqlari.
  • Naqsh qatordagi qiymatlarning bitlarida yoqish va o'chirish pozitsiyalarini saqlaydi.

Maxsus funktsiyalar

// FUNKSIYALAR int noteToHz (int note) {// Eslatmani Nr ga aylantiring. to Frequency float freq = 440 * (pow (1.059463094359, izoh-21)); // -21 sizga C3 da 1 -eslatmani beradi (Menimcha) return int (freq); // Natijalar 1 gigagertsli yorug'liksiz LEDlar (bayt PORT_X) {// Boshqarish LED holati uchun aniq (int q = 0; q

Menda mavjud bo'lgan ikkita funktsiya quyidagilarni bajaradi:

  • Loopdagi ohang funktsiyasi uchun chastotani hisoblang
  • funktsiyaga berilgan qiymatga qarab LEDni yoqing yoki o'chiring

O'rnatish funktsiyasi

void setup () {// sozlash OUTPUT pinlari pinMode (karnay, OUTPUT); uchun (int t = 0; t <nrLEDS; t ++) {pinMode (leds [t], OUTPUT); }}

O'rnatish funktsiyasida men kerakli pinlarni OUTPUT ga o'rnatdim.

Loop funktsiyasi

void loop () {// Music Loop for (int t = 0; t <songLength; t ++) {// Notes, Length va ohangni ijro etish int note = noteToHz (qo'shiq [t * 2]); int length = ((qo'shiq [(t * 2) +1] * barTime) / 8); ohang (karnay, eslatma, uzunlik - 50); // Yorqin chiroqlar! yorug'likli LEDlar (naqsh [t % patternLength]); kechikish (uzunlik); } // Silence Loop int randomSilence = tasodifiy (1000, 5000); uchun (int t = 0; t

Main Loop funktsiyasida 2 ta halqa bor. Qo'shiq va sukunat aylanishi

Qo'shiq tsikli qo'shiqlar majmuasidagi ma'lumotlarni o'qiydi, ohang funktsiyasidan foydalangan holda yozuvni ijro etadi

Qo'shiq aylanishi bo'ladi,

  • Qo'shiqlar majmuasidagi ma'lumotlarni o'qing,
  • Eslatmani ohang funksiyasi yordamida o'ynating
  • LEDlarning o'qish chizig'ini yoqing.

Silence loopida

faqat LEDlar yonadi

Arduino -ni ulang va kodni yuklang. (Keyin ajratib oling)

3 -qadam: davrani ishga tushirish

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

Men chiroqlar qatoridan boshlayman

  • Men Ethernet kabelidan sim ishlatardim va 3 LEDni to'rt marta parallel ravishda lehimladim, bu esa LEDni taxminan 2 metrga teng masofada joylashtirishga ishonch hosil qildi.
  • Men har birining anodini bitta simga lehimladim.
  • Keyin har bir LEDning katodini 4 ta alohida simga ulang. Albatta, qarshilik bilan
  • Men 12 ta LEDni olish uchun bu jarayonni 3 marta takrorladim va 5 ta simning uchiga bosh pimlarini qo'ydim.

Pozitiv va tuproqli relslarni non paneliga ulang

4 -qadam: ULN2803

ULN 2803
ULN 2803
ULN 2803
ULN 2803
ULN 2803
ULN 2803

ULN2308 chipini non taxtasiga joylashtiring

ULN2308 - tranzistorli massiv chip; ma'lumotlar sahifasidan men ko'rishim mumkin

  • Bu 1 -pin 18 -pinni "ON" ga aylantiradigan kirishdir.
  • 2 -pin 17 ga aylanadi. Va boshqalar.
  • 9 -pin erga ulangan
  • Chipning 9 -pinini tuproqli temir yo'lga ulang
  • Pozitiv temir yo'lni 18 -pin ustidagi bitta chiziqli terminalga ulang. (Buning sababini bir daqiqadan so'ng bilib olasiz)
  • Chipning 1 -pinini Arduino -ning 3 -piniga ulang
  • 2 4 ga o'tadi
  • Chipning 3 tasi 5 ga o'tadi
  • 4 Arduino 6 -piniga o'tadi
  • LED chizig'ini non paneliga qo'ying. Qaerda umumiy anodli sim 5 voltga ulangan chiziqqa ulangan bo'lsa. Qolgan peri nuri pinlari chipning 18, 17, 16 va 15 -pinlariga o'tishi kerak.

5 -qadam: Ovoz qo'shish

Ovoz qo'shish
Ovoz qo'shish
  • Piezo karnayini 2 ta terminal chizig'i orasiga ulang
  • Piezo elementining salbiy qutbini erga ulang va
  • Karnayning ikkinchi uchi 11 -pin

6 -qadam: Xulosa

Xulosa
Xulosa
Xulosa
Xulosa

Menda bayram chizig'i borligini eslatish uchun tasodifiy jiringlash qo'ng'iroqlarini o'ynaydigan yorug'lik simlari bor.

Tavsiya: