Mundarija:

Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak: 4 qadam
Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak: 4 qadam

Video: Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak: 4 qadam

Video: Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak: 4 qadam
Video: 7 проектов. Сборка светодиодного ЖК-будильника с использованием DS1307 и Arduino | Урок 105 2024, Noyabr
Anonim
Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak
Arduino bilan DFMini pleer MP3 modulidan qanday foydalanish kerak

Bir nechta loyihalar, qandaydir funktsiyalarni qo'shish uchun, ovozni ko'paytirishni talab qiladi. Ushbu loyihalar orasida biz quyidagilarni ajratib ko'rsatamiz: ko'zi ojizlar uchun imkoniyatlar, MP3 musiqa pleyerlari va robotlar tomonidan ovozli tovushlarni ijro etish.

Bu tizimlarning barchasida Arduino -ga ulanish uchun bizga MP3 ovozini qayta ishlab chiqaruvchi qurilma kerak. Shuning uchun, ushbu maqolada biz quyidagi fikrlarni bilib olamiz: DFMini Player MP3 ning asosiy operatsion sxemasi; Xotira kartasidagi ovozli fayllarni tashkil qilish va sozlash; Arduino bilan musiqiy boshqaruv.

Ta'minotlar

PCBWay maxsus PCB;

DFPlayer Mini MP3 moduli - UTSOURCE;

10kR qarshilik - UTSOURCE;

Kalit tugmasi - UTSOURCE;

Breadboard - UTSOURCE;

Arduino UNO - UTSOURCE;

Sarlavha pin - UTSOURCE;

1 -qadam: DF Mini pleer MP3 moduli nima?

DF Mini Player MP3 moduli nima
DF Mini Player MP3 moduli nima
DF Mini Player MP3 moduli nima
DF Mini Player MP3 moduli nima

DFMini Player moduli - bu xotira kartasida saqlanadigan tovushlarni qayta ishlab chiqarish uchun mo'ljallangan, kam musiqali pleyer, past va past quvvat.

Bunga asoslanib, modulni mustaqil rejim orqali boshqarish mumkin, ya'ni bu rejimda faqat DFMini moduli, quvvatlanadigan batareya, karnay, uni boshqarish tugmalari va qo'shiqlari bo'lgan SD -karta bo'ladi. Buni boshqarishning yana bir usuli - Arduino yoki boshqa boshqaruv moslamasidan foydalanish.

Masalan, Arduino DFMini pleer moduli bilan ketma -ket aloqa orqali buyruqlar yuboradi. DFMini Player moduli 1 -rasmda ko'rsatilgan.

Buni nazorat qilish uchun asosiy avtonom sxemadan foydalanish muhim ahamiyatga ega. Ushbu sxema 2 -rasmda ko'rsatilgan.

Yuqoridagi sxemada ko'rsatilgan ikkita tugma musiqa treklarini o'zgartirish va ovoz balandligini boshqarish uchun ishlatiladi. IO1 piniga ulangan tugma oldingi trekka o'tish va ovoz balandligini pasaytirish uchun ishlatiladi. Tez tegish bilan tizim avvalgi qo'shiqqa qaytadi, lekin tugmani 1 soniyadan ko'proq bosib tursangiz, tizim qo'shiq tovushini pasaytiradi.

IO2 piniga ulangan tugma keyingi trekka o'tish va ovoz balandligini oshirish uchun ishlatiladi. Tez bosish bilan tizim keyingi qo'shiqqa o'tadi, lekin tugmani 1 sekunddan ko'proq bosib tursangiz, tizim qo'shiq tovushini oshiradi.

2 -qadam:

Rasm
Rasm

Ushbu mustaqil usulda qo'shiqlar 3 -rasmda ko'rsatilgandek xotira kartasida saqlanishi kerak.

Shunday qilib, har tugma bosilganda, tizim har bir qo'shiqni ko'tarilish yoki tushish tartibida ijro etadi, biroq Arduino yoki boshqa boshqaruv moslamasidan foydalanganda biz SD -kartadagi musiqiy fayllarni tartibga solish usulini o'zgartirishimiz kerak.

Endi men ketma -ket aloqa orqali Arduino yordamida DFMini pleerini qanday boshqarishni tushuntiraman.

3 -qadam: Arduino yordamida DFMini pleerini boshqarish

Arduino yordamida DFMini pleerini boshqarish
Arduino yordamida DFMini pleerini boshqarish
Arduino yordamida DFMini pleerini boshqarish
Arduino yordamida DFMini pleerini boshqarish

Bu bosqichda tovushni boshqarish, diapazonni boshqarish, tenglashtirish buyruqlari va boshqa funktsiyalar Arduino tomonidan yuboriladi.

Arduino DFMini Player bilan serial orqali aloqa o'rnatishi va boshqaruv buyruqlarini yuborishi kerak.

Boshqaruv sxemasining elektron sxemasi 4 -rasmda ko'rsatilgan.

Birinchidan, biz quyidagi rasmda ko'rsatilgan sxemani yig'ishimiz kerak, bu sxemani yig'ib bo'lgach, siz xotira kartangizga qo'shiq qo'shishingiz kerak. Bu bosqichda qo'shiqlar, masalan, 01, 02, 03 deb o'zgartirilishi kerak.

Siz qo'shiqlarni nomlari bilan qoldirolmaysiz, chunki Arduino ma'lum trekni bajarish buyrug'ini yuborganida muammo bo'ladi. Shuning uchun siz quyida ko'rsatilgandek sozlashingiz kerak.

4 -qadam:

Fayllarni nomlaganingizdan so'ng, Arduino -ga quyidagi kodni yozing.

// Ma'lumotni ketma -ket kirishni kutadi (Serial.available ()> 0) {command = Serial.read (); if ((buyruq> = '1') && (buyruq <= '9')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }

// Ovozni oshiradi

agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}} void menu_opcoes () {Serial.println (); Serial.println (F ("======================================== ================================================= ===================================== "))); Serial.println (F ("Buyruqlar:")); Serial.println (F ("[1-3] MP3 faylini tanlash uchun")); Serial.println (F ("[s] reproduktsiyani to'xtatish")); Serial.println (F ("[p] pauza/musiqani davom ettirish"))); Serial.println (F ("[+ yoki -] ovoz balandligini oshiradi yoki kamaytiradi")); Serial.println (F (" trekni oldinga yoki orqaga")); Serial.println (); Serial.println (F ("======================================== ================================================= ==================================== "))); }

Yuqorida keltirilgan kod juda oddiy va sizga qo'shiqni raqami bo'yicha tanlash, to'xtatish, pauza qilish, ovoz balandligini boshqarish va treklarni uzatishga yordam beradi.

Musiqiy boshqaruv Arduino IDE seriyasidagi ma'lumotlarni Arduino platamizga yuborishdan iborat. Dastlab, tizim konfiguratsiyani o'rnatadi va modulga SD -karta o'rnatilganligini tekshiradi.

Agar u kiritilmagan bo'lsa, tizim foydalanuvchini ogohlantiruvchi xabarni taqdim etadi.

Bundan tashqari, tizim tizim konfiguratsiyasi imkoniyatlari bo'lgan xabarlarni ko'rsatadi.

void setup () {// mySoftwareSerial.begin (9600) modulli Comunicacao seriyali; // Arduino Serial.begin (115200) serialini rasmiylashtirish; // Verifica se o module esta answerendo e se o // cartao SD kodi Serial.println (); Serial.println (F ("DFRobot DFPlayer Mini")); Serial.println (F ("DFPlayer moduli ishga tushirilmoqda… kuting!")); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println (F ("Boshlanmagan:")); Serial.println (F ("1. DFPlayer Mini ulanishlarini tekshiring"))); Serial.println (F ("2. SD -kartani joylash"))); while (rost); } Serial.println (); Serial.println (F ("DFPlayer Mini moduli ishga tushirildi!")); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms myDFPlayer.volume (5) ketma -ketligi. // 5 -jild myDFPlayer. EQ (0); // Equalizacao oddiy menu_opcoes (); }

Agar xotira kartasi o'rnatilgan bo'lsa, kod oqimi pastadir funktsiyasiga kiradi.

void loop () {// Ma'lumotni ketma -ket kiritishni kutadi (Serial.available ()> 0) {command = Serial.read (); if ((buyruq> = '1') && (buyruq <= '3')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }

// Ovozni oshiradi

agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}}

Foydalanuvchi quyidagi nazorat belgilarini yuborishi mumkin:

1 dan 3 gacha raqamlar: ijro etiladigan qo'shiqni tanlang;

  • Harf s: qo'shiqni to'xtatish; p harfi: qo'shiqni pauza qilish;
  • + Belgisini yuboring: Qo'shiq tovushini oshiring;
  • - signalini yuborish: qo'shiq tovushini pasaytirish;
  • Signalni yuborish <: oldingi qo'shiqni tanlang;
  • Signal yuborish>: Keyingi qo'shiqni tanlang;

Bu signallar, harflar va raqamlardan Arduino ularni serial orqali qabul qiladi va ijro etiladigan musiqani boshqaradi.

Har bir shart quyida va ichkarida, unga tegishli buyruqlar bilan berilgan.

if ((buyruq> = '1') && (buyruq <= '3')) {Serial.print ("Musiqiy reproduktsiya"); Serial.println (buyruq); buyruq = buyruq - 48; myDFPlayer.play (buyruq); menu_opcoes (); } // Reproduktsiya // To'xtating, agar (buyruq == 's) {myDFPlayer.stop (); Serial.println ("Musiqa to'xtatildi!"); menu_opcoes (); } // Pausa/Continua a musica if (command == 'p') {pausa =! Pausa; if (pauza == 0) {Serial.println ("Davom et …"); myDFPlayer.start (); } if (pausa == 1) {Serial.println ("Musiqa to'xtatildi!"); myDFPlayer.pause (); } menu_opcoes (); }

// Ovozni oshiradi

agar (buyruq == '+') {myDFPlayer.volumeUp (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } agar (buyruq == '') {myDFPlayer.next (); Serial.println ("keyingi:"); Serial.print ("Hozirgi trek:"); Serial.println (myDFPlayer.readCurrentFileNumber ()+1); menu_opcoes (); } // Ovozni pasaytiradi, agar (buyruq == '-') {myDFPlayer.volumeDown (); Serial.print ("Joriy hajm:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }}

Shunday qilib, agar siz taqdim etilgan barcha qadamlarni qo'llasangiz, quyidagilarni bilib olishingiz mumkin edi:

  • DFMini Player MP3 ning asosiy ishchi davri;
  • Xotira kartasidagi ovozli fayllarni tashkil qilish va sozlash;
  • Arduino bilan musiqiy boshqaruv. Ushbu koddan siz tizimning funksionalligi sifatida ovozdan foydalanish kerak bo'lgan boshqa loyihalarni ishlab chiqa olasiz.

Rahmatlar

Oxirida, o'qiganingiz va sizga ushbu maqolani ishlab chiqarishda Silício Lab -ni qo'llab -quvvatlaganingiz uchun PCBWAY. COM -ni qo'llab -quvvatlaganingiz uchun tashakkur bildiramiz.

Silícios laboratoriyasi UTSOURCEga ushbu loyihani amalga oshirish uchun elektron komponentlarni taklif qilgani uchun minnatdorchilik bildiradi.

Tavsiya: