Агуулгын хүснэгт:

Arduino -той MP3 тоглуулагч: 6 алхам
Arduino -той MP3 тоглуулагч: 6 алхам
Anonim
Image
Image
Мэдээллийн хуудас
Мэдээллийн хуудас

Энэхүү чуулганд бид Arduino Uno бүхий mp3 тоглуулагч, дууны тохируулга бүхий мини PAM8403 дууны өсгөгч, mp3 модуль DFPlayer Mini, 3 ваттын чанга яригчийг ашигласан.

Энэхүү схем нь зөвхөн хөгжим тоглуулагч төдийгүй зогсоолын хаалт төхөөрөмж эсвэл роботын дуу хоолойны функцийг зөвшөөрдөг. Энэхүү угсралт нь төхөөрөмжид бичигдсэн дуу хоолойг байрлуулах боломжийг олгоно. Энэ дуу хоолой нь байгалийн шинж чанартай бөгөөд нийлэгждэггүй. Ихэнх хүмүүсийн хувьд эдгээр нь стандарт хувилбаруудтай харьцуулахад илүү тохиромжтой байдаг.

Энэхүү угсралтын хувьд бид Arduino Uno -г тусгайлан ашиглаж байгаа боловч та ESP8266 эсвэл ESP32 -тэй холбогдох боломжтой. Мэдээжийн хэрэг, тээглүүр дээр тохируулга хийх шаардлагатай болно.

Алхам 1: мэдээллийн хуудас

Алхам 2: DFPlayer модуль

DFPlayer модуль
DFPlayer модуль

DFPlayer модуль нь RX TX, VCC, GND цуваа холболтыг ашигладаг. Энэ нь хоёр чанга яригч болон аудио оролттой.

Алхам 3: PAM8403 мини өсгөгч

Мини өсгөгч PAM8403
Мини өсгөгч PAM8403

Алхам 4: угсрах

Чуулган
Чуулган

Алхам 5: Номын сан

Номын сан
Номын сан

Mp3 модультай холбогдохын тулд дараах "DFRobotDFPlayerMini" номын санг нэмнэ үү.

Зүгээр л "Ноорог >> Номын санг оруулах >> Номын санг удирдах …" хэсэгт очно уу.

Алхам 6: Эх код

Бид кодоороо ашиглах номын сан болон тогтмолуудыг тодорхойлохоос эхэлнэ.

Эхлэхийн тулд нэг объект, цуваа програм хангамж, нөгөө нь myDFPlayer юм.

String төрлийн buf хувьсагч нь MP3 модулийн тушаал болох Arduino Serial -аас ирж буй өгөгдлийг хадгалах үүрэгтэй. "Түр зогсоох" хувьсагч нь хөгжим тоглож байгаа эсвэл түр зогссон эсэхийг тодорхойлоход ашиглагдана (pause = true, мөн энэ нь түр зогссоныг илтгэнэ, тэгэхгүй бол тоглож байна).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia цуврал програм хангамжийн хувьд 10, 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Хариултууд нь MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // тоглогч String buf; // тоглогч (0: tocando; 1: pausado) boolean pausa = false; // variável responsável or armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Хэвийн, 1 = Поп, 2 = Рок, 3 = Жазз, 4 = Классик, 5 = Басс) "// олон тооны SD карт байхгүй. Int maxSongs = 0;

Тохируулах

Энэ алхамд бид хэлхээг холбож байгааг харуулахын тулд хэвлэмэл сонголтуудыг тавьдаг бөгөөд жишээ нь хуурамч нөхцлийг үнэлдэг.

void setup () {// Comunicacao цуврал ком эсвэл mySoftwareSerial.begin (9600); // Arduino Serial.begin (115200) цуврал цуврал нэвтрүүлэг хийх; // Үнэн зөв хариулт өгөх үү? // SD карт нь Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("DFPlayer модулийг албан ёсны болгох … (3 ~ 5 сегмент)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. DFPlayer Mini -ийг ижил төстэй байдлаар хийдэг"); Serial.println ("2. Insira um cartao SD"); байхад (үнэн); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms mydfPlayer.volume (10) цувралын хугацаа дууссан; // 10 -р боть 0 ба 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Сонголтын цэс

Та энэ угсралтыг бүхэлд нь цуваа дэлгэцээр хянадаг. Тиймээс, схем бүр нь танд байгаа Options цэсийг тушаал, чиглэлээр хэвлэх болно.

void menu_opcoes () {Serial.println (); Serial.println ("Командос:"); Serial.print ("[1-"); Цуваа.хэвлэх (maxSongs); Serial.println ("] MP3 эсвэл бусад хувилбаруудыг сонгоно уу"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ эсвэл -] aumenta ou diminui o volume"); Serial.println (); }

Гогцоо

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // música menu_opcoes () дээр тоглох; } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica…"); myDFPlayer.start (); } өөр {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println ("Хөгжмийн парада!"); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; if (equalizacao == 6) {equizizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Цуваа.хэвлэх (equalizacao); Serial.println ("(0 = Хэвийн, 1 = Поп, 2 = Рок, 3 = Жазз, 4 = Классик, 5 = Басс)"); menu_opcoes (); } // Aumenta эзлэхүүн if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Эзлэхүүн:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui эзлэхүүн if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Эзлэхүүн:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // давталт

Зөвлөмж болгож буй: