Мазмуну:

MP3 Player Arduino менен: 6 кадам
MP3 Player Arduino менен: 6 кадам

Video: MP3 Player Arduino менен: 6 кадам

Video: MP3 Player Arduino менен: 6 кадам
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Ноябрь
Anonim
Image
Image
Маалымат жадыбалы
Маалымат жадыбалы

Бул жыйында биз Arduino Uno менен mp3 ойноткучту, үнүн жөнгө салуу менен мини PAM8403 үн күчөткүчүн, DFPlayer Mini mp3 модулун жана жуп 3 Ватт динамиктерди колдондук.

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

Бул жыйын үчүн биз атайын Arduino Uno колдонобуз, бирок сиз ESP8266 же ESP32 менен туташа аласыз. Албетте, казыктарды тууралоо талап кылынат.

1 -кадам: маалымат жадыбалы

2 -кадам: DFPlayer модулу

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

DFPlayer модулу RX TX, VCC, GND сериялык байланышын колдонот. Бул эки спикерге жана аудио кирүүгө чыгууга ээ.

3 -кадам: Mini Amplifier PAM8403

Мини күчөткүч PAM8403
Мини күчөткүч PAM8403

4 -кадам: Ассамблея

Ассамблея
Ассамблея

5 -кадам: Китепканалар

Китепканалар
Китепканалар

Mp3 модулу менен байланышуу үчүн төмөнкү "DFRobotDFPlayerMini" китепканасын кошуңуз.

Жөн гана "Эскиз >> Китепканаларды кошуу >> Китепканаларды башкаруу…" кирүү

6 -кадам: Булак коду

Биз кодубуз менен колдоно турган китепканаларды жана константаларды аныктоодон баштайбыз.

Бир объектти, сериялык программалык камсыздоону жана башкасын түзүүдөн баштаңыз, бул myDFPlayer.

String түрүндөгү buf өзгөрмөсү MP3 модулунун буйруктары боло турган Arduino Serialден келген маалыматтарды сактоого кызмат кылат. "Пауза" өзгөрмөсү музыка ойноп жаткандыгын же тындырылганын көрсөтүү үчүн колдонулат (пауза = туура, жана ал тындырылганын көрсөтөт, болбосо ойнотулуп жатат).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia сериялык программалык камсыздоо 10 жана 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Түшүнүктүү жооптор MP3 же DFPlayer DFRobotDFPlayerMini myDFPlayer; // оюнчу String buf; // player жооптуу түрдө оюнчу (0: tocando; 1: pausado) логикалык пауза = жалган; // ар кандай жоопторду берүү менен сиз эквалайзерди алмаштырасыз // 0 0 5 int equizacao = 0; // (0 = Кадимки, 1 = Поп, 2 = Рок, 3 = Джаз, 4 = Классикалык, 5 = Бас) "// ар кандай жооптор SD картасын көрсөтпөйт. Int maxSongs = 0;

Жайгашуу

Бул кадамда биз, мисалы, жалган шарттарды баалоо менен, схеманы орнотуп жаткандыгын көрсөтүү үчүн басып чыгаруу варианттарын койдук.

void setup () {// MySoftwareSerial.begin (9600) модулунун Comunicacao сериялык кому; // Arduino Serial.begin (115200) сериясына кирүү; // Verifica se or modulo esta answerendo e se o // cartao SD encontrado 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"); while (true); } Serial.println (); Serial.println ("DFPlayer Mini модулу!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // 500ms убакыт сериясы myDFPlayer.volume (10); // 10 -том жана 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); // Командалардын менюсу боюнча меню_опко ();

Параметрлер менюсу

Сиз бул монтаждын бардыгын сериялык монитор аркылуу башкарасыз. Ошентип, ар бир жолу, схема буйруктар, көрсөтмөлөр менен сизде бар Жолдор Менюсун басып чыгарат.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Тандалмалар же MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equizacao"); Serial.println ("[+ же -] aumenta ou diminui o volume"); Serial.println (); }

Loop

void loop () {// Aguarda at serials while serials (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 (); } else {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Парада if (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; if (Equalizacao == 6) {Equalizacao = 0; } myDFPlayer. EQ (equizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = Нормалдуу, 1 = Поп, 2 = Рок, 3 = Джаз, 4 = Классикалык, 5 = Бас)"); menu_opcoes (); } // Кумтөрдүн көлөмү 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} // цикл

Сунушталууда: